From 32c09fd5cfe4a5973cc52b298d7cd193e3981240 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Lang <jp_lang@yahoo.fr>
Date: Sat, 25 Apr 2009 11:28:48 +0000
Subject: [PATCH] Adds more css classes to the roadmap issues (#3214).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2694 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
 app/helpers/application_helper.rb   |  4 +---
 app/helpers/issues_helper.rb        | 10 ----------
 app/models/issue.rb                 | 10 ++++++++++
 app/views/common/_calendar.rhtml    |  2 +-
 app/views/issues/_list.rhtml        |  2 +-
 app/views/issues/_list_simple.rhtml |  2 +-
 app/views/issues/show.rhtml         |  2 +-
 7 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 479b2a293..b7865ecde 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -54,9 +54,7 @@ module ApplicationHelper
   end
 
   def link_to_issue(issue, options={})
-    options[:class] ||= ''
-    options[:class] << ' issue'
-    options[:class] << ' closed' if issue.closed?
+    options[:class] ||= issue.css_classes
     link_to "#{issue.tracker.name} ##{issue.id}", {:controller => "issues", :action => "show", :id => issue}, options
   end
 
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 7eae3314c..a85a83a23 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -33,16 +33,6 @@ module IssuesHelper
       "<strong>#{@cached_label_priority}</strong>: #{issue.priority.name}"
   end
   
-  # Returns a string of css classes that apply to the given issue
-  def css_issue_classes(issue)
-    s = "issue status-#{issue.status.position} priority-#{issue.priority.position}"
-    s << ' closed' if issue.closed?
-    s << ' overdue' if issue.overdue?
-    s << ' created-by-me' if User.current.logged? && issue.author_id == User.current.id
-    s << ' assigned-to-me' if User.current.logged? && issue.assigned_to_id == User.current.id
-    s
-  end
-  
   def sidebar_queries
     unless @sidebar_queries
       # User can see public queries and his own queries
diff --git a/app/models/issue.rb b/app/models/issue.rb
index c3627ddb2..23035b927 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -269,6 +269,16 @@ class Issue < ActiveRecord::Base
     "#{tracker} ##{id}: #{subject}"
   end
   
+  # Returns a string of css classes that apply to the issue
+  def css_classes
+    s = "issue status-#{status.position} priority-#{priority.position}"
+    s << ' closed' if closed?
+    s << ' overdue' if overdue?
+    s << ' created-by-me' if User.current.logged? && author_id == User.current.id
+    s << ' assigned-to-me' if User.current.logged? && assigned_to_id == User.current.id
+    s
+  end
+  
   private
   
   # Callback on attachment deletion
diff --git a/app/views/common/_calendar.rhtml b/app/views/common/_calendar.rhtml
index f3d02d433..d8a7f4088 100644
--- a/app/views/common/_calendar.rhtml
+++ b/app/views/common/_calendar.rhtml
@@ -11,7 +11,7 @@ while day <= calendar.enddt %>
 <p class="day-num"><%= day.day %></p>	
 <% calendar.events_on(day).each do |i| %>
   <% if i.is_a? Issue %>
-  <div class="<%= css_issue_classes(i) %> tooltip">
+  <div class="<%= i.css_classes %> tooltip">
   <%= if day == i.start_date && day == i.due_date
         image_tag('arrow_bw.png')
       elsif day == i.start_date
diff --git a/app/views/issues/_list.rhtml b/app/views/issues/_list.rhtml
index 932676015..b19e1d719 100644
--- a/app/views/issues/_list.rhtml
+++ b/app/views/issues/_list.rhtml
@@ -11,7 +11,7 @@
 	</tr></thead>
 	<tbody>
 	<% issues.each do |issue| -%>
-	<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= css_issue_classes(issue) %>">
+	<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %>">
 	    <td class="checkbox"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
 		<td><%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %></td>
         <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.name %><% end %>
diff --git a/app/views/issues/_list_simple.rhtml b/app/views/issues/_list_simple.rhtml
index 3391e0735..f57b19e84 100644
--- a/app/views/issues/_list_simple.rhtml
+++ b/app/views/issues/_list_simple.rhtml
@@ -9,7 +9,7 @@
 		</tr></thead>
 		<tbody>	
 		<% for issue in issues %>
-		<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= css_issue_classes(issue) %>">
+		<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %>">
 			<td class="id">
 			  <%= check_box_tag("ids[]", issue.id, false, :style => 'display:none;') %>
 				<%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %>
diff --git a/app/views/issues/show.rhtml b/app/views/issues/show.rhtml
index ed14fe3f8..bd0eec41f 100644
--- a/app/views/issues/show.rhtml
+++ b/app/views/issues/show.rhtml
@@ -9,7 +9,7 @@
 
 <h2><%= @issue.tracker.name %> #<%= @issue.id %></h2>
 
-<div class="<%= css_issue_classes(@issue) %> details">
+<div class="<%= @issue.css_classes %> details">
         <%= avatar(@issue.author, :size => "64") %>
         <h3><%=h @issue.subject %></h3>
         <p class="author">
-- 
GitLab