diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-05-13 19:43:35 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-05-13 19:43:35 +0000 |
commit | bca5bd9c62769ca85f00259ac0e9a3c4538f7051 (patch) | |
tree | a14630132f58878681cc416aa86b20a8d448923c /app/controllers | |
parent | b90e84b9fe252df464d084f0222c65367407a4ba (diff) | |
download | redmine-bca5bd9c62769ca85f00259ac0e9a3c4538f7051.tar.gz redmine-bca5bd9c62769ca85f00259ac0e9a3c4538f7051.zip |
Added watchers for message boards (watchers controller modified to support any watchable model).
No notification yet when a new message is posted.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@530 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/boards_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/issues_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/watchers_controller.rb | 25 |
3 files changed, 22 insertions, 7 deletions
diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index b3be6b7a2..0ad2645f8 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -25,6 +25,8 @@ class BoardsController < ApplicationController include MessagesHelper helper :sort include SortHelper + helper :watchers + include WatchersHelper def index @boards = @project.boards diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index cec126dd3..0a8d19a31 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -27,6 +27,8 @@ class IssuesController < ApplicationController include IfpdfHelper helper :issue_relations include IssueRelationsHelper + helper :watchers + include WatchersHelper def show @status_options = @issue.status.find_new_statuses_allowed_to(logged_in_user.role_for_project(@project), @issue.tracker) if logged_in_user diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 09ec5bcd7..f617a5b5a 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -20,19 +20,30 @@ class WatchersController < ApplicationController before_filter :require_login, :find_project, :check_project_privacy def add - @issue.add_watcher(logged_in_user) - redirect_to :controller => 'issues', :action => 'show', :id => @issue + user = logged_in_user + @watched.add_watcher(user) + respond_to do |format| + format.html { render :text => 'Watcher added.', :layout => true } + format.js { render(:update) {|page| page.replace_html 'watcher', watcher_link(@watched, user)} } + end end def remove - @issue.remove_watcher(logged_in_user) - redirect_to :controller => 'issues', :action => 'show', :id => @issue + user = logged_in_user + @watched.remove_watcher(user) + respond_to do |format| + format.html { render :text => 'Watcher removed.', :layout => true } + format.js { render(:update) {|page| page.replace_html 'watcher', watcher_link(@watched, user)} } + end end private - def find_project - @issue = Issue.find(params[:issue_id]) - @project = @issue.project + klass = Object.const_get(params[:object_type].camelcase) + return false unless klass.respond_to?('watched_by') + @watched = klass.find(params[:object_id]) + @project = @watched.project + rescue + render_404 end end |