Every repository with this icon (
Every repository with this icon (
| Description: | A Project Management and Collaboration tool inspired by Basecamp edit |
-
Ideally sometime in the future RailsCollab needs to support emails coming in through the system. Emails should do something along the lines of:
- Create new messages
- Create new tasks in task lists
- Add comments to messages or tasks
With each "task list", "message" and "task" having a unique email address and/or identifier.
As for processing incoming emails, needs to be a system which is easy to incorporate for the typical RC user...
Comments
-
RailsCollab has been in a perpetual beta state for quite a while now, would be nice to come up with a nice shiny spec for version 1.0.
Comments
-
I noticed that in the database schema there is support for ordering the task lists on the projects, but I haven't been able to find this functionality built into the UI. Maybe I am just missing it, but it would be great if this could be implemented.
Again, just reporting it. This is by far not an urgent request, just figured I would report it so it is documented rather than it going unnoticed.
Comments
Tried the priority field? I'm sure it is exposed on the edit form...
Ideally should use a funky reordering system which would make more sense.
Didn't even think to try that one. Just tried it tho and it doesn't seem to be working. Looking at the database schema, there is a priority field on the project_task_lists, and the form is saving in there, but the field that I discovered actually influences the ranking is the order field on that same table. So either switching that input field or switching the order by field should get a working thing going.
Though I agree, a sorting system similar to how individual task sorting would be very handy, especially for the less savvy users
-
New line to <br> in tasks list (other places as well?) - Low priority
4 comments Created about 1 month ago by maciel310Just noticed that if you add a line break to the text in a task, it removes it when saved and displayed on the web page (normal HTML behavior). The breaks are still there (if you edit they reappear), there just isn't anything converting them over to br tags on display.
I am reading over some Ruby stuff, so in the next few days I will likely take a stab at getting this functionality in there, just posting about it.
Comments
This should be approached with caution as currently the hover controls assume most of the text is located in a single block.
Hmm, ok, I will keep that in mind. If I understand you right, that would be an issue if I used a p tag, but a br tag shouldn't really be an issue, since it would still be the same block. Is that correct?
Ok, got this done. Tested it in IE8, Chrome, and FF and all and it seems to be working just fine, both display wise and functionality. Shall I do a
git push, or how should I get the change to you? It was a simple change, so if you want you can just make the modifications yourself. All I did was change line 25 on /views/tasks/_show.html.erb from:
<%= h task_item.text %>to:
<%= (h task_item.text).gsub(/(\r\n|\r|\n)/, '<br />') %>Just tested on windows, so you might want to test on a Mac, too (if you can), since their new line character sequence is different. That should account for it, but just to be sure. Oh, and I didn't implement it using ror's simple_format because of the fact that it uses paragraph tags to replace double new lines, and with what you said I figured this way would be simpler and less prone to error.
-
Just tried clicking on the RSS feed for the recent activities on the Dashboard, and was greeted with a 500 server error. It doesn't happen on the specific project's rss feeds, just the dashboard one. Not urgent, just reporting.
Processing FeedController#recent_activities to rss (for 127.0.0.1 at 2009-10-13 10:47:02) [GET]
Parameters: {"token"=>"fb4a704acf7c9ee0d485ef217c0e0c89f82aea82", "user"=>"2"} Rendering feed/recent_activitiesActionView::TemplateError (undefined method `display_name' for nil:NilClass) on line #16 of app/views/feed/recent_activities.rxml:
13: item_url = activity.rel_object ? activity.rel_object.object_url(AppConfig.site_url) : root_url
14:
15: xml.title "#{activity.friendly_action} #{activity.object_name}"
16: xml.category activity.project.name, activity.created_by.display_name
17: xml.link item_url
18: xml.guid item_url
19: xml.pubDate CGI.rfc1123_date(activity.created_on)app/views/feed/recent_activities.rxml:16:in `_run_rxml_app47views47feed47recent_activities46rxml' builder (2.1.2) lib/builder/xmlbase.rb:134:in `call' builder (2.1.2) lib/builder/xmlbase.rb:134:in `_nested_structures' builder (2.1.2) lib/builder/xmlbase.rb:58:in `method_missing' app/views/feed/recent_activities.rxml:12:in `_run_rxml_app47views47feed47recent_activities46rxml' app/views/feed/recent_activities.rxml:11:in `each' app/views/feed/recent_activities.rxml:11:in `_run_rxml_app47views47feed47recent_activities46rxml' builder (2.1.2) lib/builder/xmlbase.rb:134:in `call' builder (2.1.2) lib/builder/xmlbase.rb:134:in `_nested_structures' builder (2.1.2) lib/builder/xmlbase.rb:58:in `method_missing' app/views/feed/recent_activities.rxml:5:in `_run_rxml_app47views47feed47recent_activities46rxml' builder (2.1.2) lib/builder/xmlbase.rb:134:in `call' builder (2.1.2) lib/builder/xmlbase.rb:134:in `_nested_structures' builder (2.1.2) lib/builder/xmlbase.rb:58:in `method_missing' app/views/feed/recent_activities.rxml:3:in `_run_rxml_app47views47feed47recent_activities46rxml' /dh/passenger/lib/phusion_passenger/rack/request_handler.rb:95:in `process_request' /dh/passenger/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop' /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:378:in `start_request_handler' /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:336:in `handle_spawn_application' /dh/passenger/lib/phusion_passenger/utils.rb:183:in `safe_fork' /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:334:in `handle_spawn_application' /dh/passenger/lib/phusion_passenger/abstract_server.rb:352:in `__send__' /dh/passenger/lib/phusion_passenger/abstract_server.rb:352:in `main_loop' /dh/passenger/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously' /dh/passenger/lib/phusion_passenger/abstract_server.rb:163:in `start' /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:213:in `start' /dh/passenger/lib/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application' /dh/passenger/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add' /dh/passenger/lib/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application' /dh/passenger/lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize' /dh/passenger/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize' /dh/passenger/lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application' /dh/passenger/lib/phusion_passenger/spawn_manager.rb:154:in `spawn_application' /dh/passenger/lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application' /dh/passenger/lib/phusion_passenger/abstract_server.rb:352:in `__send__' /dh/passenger/lib/phusion_passenger/abstract_server.rb:352:in `main_loop' /dh/passenger/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'Rendering /public/500.html (500 Internal Server Error)
Comments
Sounds like you have deleted a user. Really need better handling for deleted users.
Ah, gotcha. Maybe instead of deleting users, you have the option for disabling them? Or, you have the "Delete User" option only as long as there are no objects related to that user (at least not important ones such as tasks or times), and after they have something that can't be deleted then the user can be disabled, that way they are still in the database, just can't log in, can't be assigned tasks, etc.
-
Not sure where the correct place is to post this, but I'm having trouble getting this running. I've tried installing on the last three versions of Ubuntu and keep getting stuck at the same place.
I currently run through the entire install process with no errors, but when I load the page in my browser I get: We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly.
I've placed a rough outline of my install process here: http://www.jaylark.com/wiki/index.php/Installing_RailsCollab
If someone can point me in the right direction I'd be very grateful. I'd gladly make a more complete install doc if I can get this running.
Comments
Glancing over it I don't see anything you missed, but that doesn't mean too much. It would probably be much more helpful if you included the log file from ruby, that way we can see more than just the generic error message. It should be located in the log directory inside of your RailsCollab installation folder, and might be named production.log or development.log, depending on your Ruby configuration (but based on what you said it seems like it will be production.log).
Thank you for taking the time. I created the 3 DBs because that is what the example config had and I wasn't sure what DB was used for what. I can see tables in my railscollab DB but the railscollab_production DB seems to be empty. After looking at the logs, it seems that may be my problem.
Processing DashboardController#index (for 192.168.250.153 at 2009-10-14 16:50:14) [GET]
ActiveRecord::StatementInvalid (Mysql::Error: Table 'railscollab_production.companies' doesn't exist: SELECT * FROM
companiesWHERE (client_of_id IS NULL) LIMIT 1):
app/models/company.rb:53:inowner' app/controllers/application_controller.rb:49:inreload_owner' passenger (2.2.5) lib/phusion_passenger/rack/request_handler.rb:95:inprocess_request' passenger (2.2.5) lib/phusion_passenger/abstract_request_handler.rb:207:inmain_loop' passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:378:instart_request_handler' passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:336:inhandle_spawn_application' passenger (2.2.5) lib/phusion_passenger/utils.rb:183:insafe_fork' passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:334:inhandle_spawn_application' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:in__send__' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:inmain_loop' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:196:instart_synchronously' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:163:instart' passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:213:instart' passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:262:inspawn_rails_application' passenger (2.2.5) lib/phusion_passenger/abstract_server_collection.rb:126:inlookup_or_add' passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:256:inspawn_rails_application' passenger (2.2.5) lib/phusion_passenger/abstract_server_collection.rb:80:insynchronize' passenger (2.2.5) lib/phusion_passenger/abstract_server_collection.rb:79:insynchronize' passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:255:inspawn_rails_application' passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:154:inspawn_application' passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:287:inhandle_spawn_application' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:insend' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:inmain_loop' passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:196:instart_synchronously'Rendering /var/www/basecamp/public/500.html (500 Internal Server Error)
Ah, yeah, that would do it. I am not certain how you are supposed to do it, but when I set up mine I just set the production and the development to the same DB. Probably not the best way, but it worked. There is probably a switch or something in the rake installation to set up the different databases. What would likely be simpler would be to dump the data from the railscollab database and simply import it into the railscollab_production db, that way all the tables will be there and it should be able to continue as normal.
I am sure there is a better way, and jamesu could probably tell you how it should be done (especially if you do write up some documentation on it), but I think that should at least get you up and running on it.
Works! Thank you! I need to do some testing over the next few days, but I'll make sure I get a complete install doc up soon.
-
I am trying to install Railscollab on a CentOS machine.
I have all the ruby stuff installed, I created the apache conf file just fine and loaded the passenger module.
When I browse to my railscollab folder though, I get just a list of files like this:
[DIR] Parent Directory -
[TXT] 404.html 01-Nov-2009 16:07 947
[TXT] 500.html 01-Nov-2009 16:07 941
[ ] dispatch.cgi 01-Nov-2009 16:07 479
[TXT] dispatch.fcgi 01-Nov-2009 16:07 861
[ ] dispatch.rb 01-Nov-2009 16:07 479
[TXT] favicon.ico 01-Nov-2009 16:07 0
[DIR] images/ 01-Nov-2009 16:07 -
[DIR] javascripts/ 01-Nov-2009 16:07 -
[TXT] robots.txt 01-Nov-2009 16:07 99
[DIR] stylesheets/ 01-Nov-2009 16:07 -
[DIR] themes/ 01-Nov-2009 16:07 -
Can anyone help me? I don't knwo where else to look because there is not much documentation outside of this website.
Thanks,
John
Comments
-
Deleted users need to be handled better. Either through ensuring references to them are deleted, or said users need to be disabled.
Comments
-
Even all of the steps are done and crossed out, it still displays the welcome message in the Dashboard overview. How can user hide this?
Comments
There is a link to "Hide this info permanently" on the bottom of the note. The user needs to explicitly click on this in order to make the note vanish.
Would it be better to hide it automatically? Thoughts please...
I do not find the link in ordinary user login. In the source code (app/views/dashboard/index.rhtml), it seems that only admin user will display this link. I do not know if it will cause other problems if I delete this condition.
It is sufficient for me if this link is available for ordinary user.
-
I installed RC in subfolder, say, http://127.0.0.1/railscollab. However, many dashboard and theme links are hardcoded in absolute path from root, for instance http://127.0.0.1/dashboard rather than http://127.0.0.1/railscollab/dashboard.
>I am not very familiar with RoR. I fixed by appending #{AppConfig.site_url} to those paths. Not sure if there are other better ways to handle this issue.
Comments
RailsCollab generally assumes that you stick files in your web server's root folder. You might end up having a whole subdomain (e.g. projects.company.com) to handle RailsCollab.
Currently it will not work optimally in a subdirectory, considering there are a lot of paths hardcoded beginning with "/".
Will put on the TODO list.
-
Wrong display when user deletes task w/o permission
0 comments Created 13 days ago by man2004When user who does not have permission deletes a task, at first the task is displayed as deleted. Then when user clicks task list, it will warn Insufficient permissions and the task re-displays again.
Comments
-
Will go to login page when user does not have permission for particular tab
0 comments Created 13 days ago by man2004Two symptoms for this issue:
The system will remember the last state. So, I first login as administrator. Then I logout from Adminstrator index page. Then I login as user again with same PC. As the user does not have permission to go to Administrator index page, it will still remain in Login page with message "Login successful".
Login as user. Then I click Account. I will then be in Administration People page. Then when I click Index, it will go to login page.
Comments












I've done some looking into this, and it seems like the best way to do this might be with a Ruby Daemon that is constantly running on the server, checking for new email via POP or IMAP. This requires no extra leg work on the server configuration side (which I am sure would be hellish with all the different mail servers, host configurations, and versions in use). Also, it would allow those of us who outsource our email hosting to 3rd parties such as Google Apps to take advantage of the feature. Initially I was thinking that configuring postfix to redirect the email input would be best, but looking into it many people brought up the very valid point that the server would have to fork a new Ruby process for every new email, which would be very expensive.
I was also able to find a plugin that handles basically all of the legwork when it comes to checking for new email, available here on github at http://github.com/look/fetcher . All you have to do is create an object that subclasses the ActionMailer class, and implement the email receipt logic in the receive method. The plugin handles both IMAP and POP3 accounts, and you simply have to specify the login credentials.
One issue with this would be making sure that the daemon doesn't die, but monit and god have been suggested for keeping it running. I haven't messed with these yet, though, so I am not sure how easy or difficult they will be to get configured.
Another issue I thought of is the fact that it would have to have multiple inboxes for each different function, so we would likely need to have a subject tag, but then I realized we could use subaddressing to our advantage. In case you aren't familiar with it, a lot (most?) email servers will ignore anything after the plus sign when it is routing the email to a particular inbox. So, user+tasks@example.com gets directed to user@example.com's inbox. Then, in the receive method, we can access the header that the email was supposed to be sent to, parse out what is after the plus sign, and then route accordingly. That way there is one inbox to check, and it supports an infinite number of "virtual" mailboxes, without any extra work on our end. As a fallback we could add a configuration option to disable the + addressing, and rely on processing a tag in the subject.
I am tinkering with developing this further, and will update here if I come up with anything worthwhile. Any thoughts/suggestions from anyone?