watchers_helper.rb
41 lines
| 1.7 KiB
| text/x-ruby
|
RubyLexer
|
r450 | # redMine - project management software | ||
# Copyright (C) 2006-2007 Jean-Philippe Lang | ||||
# | ||||
# 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. | ||||
# | ||||
# 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. | ||||
# | ||||
# 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. | ||||
module WatchersHelper | ||||
|
r527 | def watcher_tag(object, user) | ||
content_tag("span", watcher_link(object, user), :id => 'watcher') | ||||
end | ||||
def watcher_link(object, user) | ||||
|
r663 | return '' unless user && user.logged? && object.respond_to?('watched_by?') | ||
|
r527 | watched = object.watched_by?(user) | ||
url = {:controller => 'watchers', | ||||
|
r1711 | :action => (watched ? 'unwatch' : 'watch'), | ||
|
r527 | :object_type => object.class.to_s.underscore, | ||
:object_id => object.id} | ||||
link_to_remote((watched ? l(:button_unwatch) : l(:button_watch)), | ||||
{:url => url}, | ||||
:href => url_for(url), | ||||
:class => (watched ? 'icon icon-fav' : 'icon icon-fav-off')) | ||||
end | ||||
|
r1711 | |||
# Returns a comma separated list of users watching the given object | ||||
def watchers_list(object) | ||||
object.watcher_users.collect {|u| content_tag('span', link_to_user(u), :class => 'user') }.join(",\n") | ||||
end | ||||
|
r450 | end | ||