From e605973ec4f5915abbfc14aea742cb5aff4bbb99 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 13 Mar 2010 17:45:41 +0000 Subject: [PATCH] Move issue watchers to the sidebar. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3579 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/helpers/watchers_helper.rb | 12 +++++++----- app/views/issues/show.rhtml | 17 ++++++++--------- app/views/watchers/_watchers.rhtml | 27 ++++++++++++++------------- public/stylesheets/application.css | 7 +++++++ 4 files changed, 36 insertions(+), 27 deletions(-) diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb index 3529b8e00..2695ce9f6 100644 --- a/app/helpers/watchers_helper.rb +++ b/app/helpers/watchers_helper.rb @@ -48,8 +48,8 @@ module WatchersHelper # Returns a comma separated list of users watching the given object def watchers_list(object) remove_allowed = User.current.allowed_to?("delete_#{object.class.name.underscore}_watchers".to_sym, object.project) - object.watcher_users.collect do |user| - s = content_tag('span', link_to_user(user), :class => 'user') + lis = object.watcher_users.collect do |user| + s = avatar(user, :size => "16").to_s + link_to_user(user, :class => 'user').to_s if remove_allowed url = {:controller => 'watchers', :action => 'destroy', @@ -59,9 +59,11 @@ module WatchersHelper s += ' ' + link_to_remote(image_tag('delete.png'), {:url => url}, :href => url_for(url), - :style => "vertical-align: middle") + :style => "vertical-align: middle", + :class => "delete") end - s - end.join(",\n") + "
  • #{ s }
  • " + end + lis.empty? ? "" : "" end end diff --git a/app/views/issues/show.rhtml b/app/views/issues/show.rhtml index a551efb80..3be765d0c 100644 --- a/app/views/issues/show.rhtml +++ b/app/views/issues/show.rhtml @@ -77,14 +77,6 @@ <% end %> -<% if User.current.allowed_to?(:add_issue_watchers, @project) || - (@issue.watchers.any? && User.current.allowed_to?(:view_issue_watchers, @project)) %> -
    -
    -<%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %> -
    -<% end %> - <% if @changesets.any? %> @@ -121,7 +113,14 @@ <% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %> <% content_for :sidebar do %> - <%= render :partial => 'issues/sidebar' %> + <%= render :partial => 'issues/sidebar' %> + + <% if User.current.allowed_to?(:add_issue_watchers, @project) || + (@issue.watchers.any? && User.current.allowed_to?(:view_issue_watchers, @project)) %> +
    + <%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %> +
    + <% end %> <% end %> <% content_for :header_tags do %> diff --git a/app/views/watchers/_watchers.rhtml b/app/views/watchers/_watchers.rhtml index bf04e1bcb..8e361ede6 100644 --- a/app/views/watchers/_watchers.rhtml +++ b/app/views/watchers/_watchers.rhtml @@ -6,20 +6,21 @@ :object_id => watched} if User.current.allowed_to?(:add_issue_watchers, @project) %> -

    <%= l(:label_issue_watchers) %>

    -<%= watchers_list(watched) %> +

    <%= l(:label_issue_watchers) %> (<%= watched.watcher_users.size %>)

    <% unless @watcher.nil? %> -<% remote_form_for(:watcher, @watcher, - :url => {:controller => 'watchers', - :action => 'new', - :object_type => watched.class.name.underscore, - :object_id => watched}, - :method => :post, - :html => {:id => 'new-watcher-form'}) do |f| %> -

    <%= f.select :user_id, (watched.addable_watcher_users.collect {|m| [m.name, m.id]}), :prompt => "--- #{l(:actionview_instancetag_blank_option)} ---" %> + <% remote_form_for(:watcher, @watcher, + :url => {:controller => 'watchers', + :action => 'new', + :object_type => watched.class.name.underscore, + :object_id => watched}, + :method => :post, + :html => {:id => 'new-watcher-form'}) do |f| %> +

    <%= f.select :user_id, (watched.addable_watcher_users.collect {|m| [m.name, m.id]}), :prompt => "--- #{l(:actionview_instancetag_blank_option)} ---" %> -<%= submit_tag l(:button_add) %> -<%= toggle_link l(:button_cancel), 'new-watcher-form'%>

    -<% end %> + <%= submit_tag l(:button_add) %> + <%= toggle_link l(:button_cancel), 'new-watcher-form'%>

    + <% end %> <% end %> + +<%= watchers_list(watched) %> diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 4623ff961..9c4dcdffe 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -195,6 +195,13 @@ div.members h3 { background: url(../images/group.png) no-repeat 0% 50%; padding- div.news h3 { background: url(../images/news.png) no-repeat 0% 50%; padding-left: 20px; } div.projects h3 { background: url(../images/projects.png) no-repeat 0% 50%; padding-left: 20px; } +#watchers ul {margin: 0; padding: 0;} +#watchers li {list-style-type:none;margin: 0px 2px 0px 0px; padding: 0px 0px 0px 0px;} +#watchers select {width: 95%; display: block;} +#watchers a.delete {opacity: 0.4;} +#watchers a.delete:hover {opacity: 1;} +#watchers img.gravatar {vertical-align: middle;margin-right: 4px;} + .highlight { background-color: #FCFD8D;} .highlight.token-1 { background-color: #faa;} .highlight.token-2 { background-color: #afa;}