##// END OF EJS Templates
Update the issue subject when choosing an issue from the drop down menu....
Update the issue subject when choosing an issue from the drop down menu. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11083 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r10690:536747b74708
r10853:6be315c1ff8e
Show More
watcher.rb
66 lines | 2.0 KiB | text/x-ruby | RubyLexer
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390 # Redmine - project management software
Jean-Philippe Lang
Copyright update....
r9453 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390 #
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390 #
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Watcher < ActiveRecord::Base
belongs_to :watchable, :polymorphic => true
belongs_to :user
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 validates_presence_of :user
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 validates_uniqueness_of :user_id, :scope => [:watchable_type, :watchable_id]
Toshi MARUYAMA
Rails3: model: replace deprecated validate method at watcher model...
r7952 validate :validate_user
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053
# Unwatch things that users are no longer allowed to view
def self.prune(options={})
if options.has_key?(:user)
prune_single_user(options[:user], options)
else
pruned = 0
Jean-Philippe Lang
Replaces find(:all) calls....
r10690 User.where("id IN (SELECT DISTINCT user_id FROM #{table_name})").all.each do |user|
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 pruned += prune_single_user(user, options)
end
pruned
end
end
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 protected
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Toshi MARUYAMA
Rails3: model: replace deprecated validate method at watcher model...
r7952 def validate_user
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 errors.add :user_id, :invalid unless user.nil? || user.active?
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 end
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 private
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 def self.prune_single_user(user, options={})
return unless user.is_a?(User)
pruned = 0
Jean-Philippe Lang
Replaces find(:all) calls....
r10690 where(:user_id => user.id).all.each do |watcher|
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 next if watcher.watchable.nil?
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 if options.has_key?(:project)
next unless watcher.watchable.respond_to?(:project) && watcher.watchable.project == options[:project]
end
Toshi MARUYAMA
remove trailing white-spaces from app/models/watcher.rb....
r6390
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 if watcher.watchable.respond_to?(:visible?)
unless watcher.watchable.visible?(user)
watcher.destroy
pruned += 1
end
end
end
pruned
end
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 end