OSDN Git Service

Refactoring ApplicationHelper#link_to_issue.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 14 Nov 2009 12:53:50 +0000 (12:53 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 14 Nov 2009 12:53:50 +0000 (12:53 +0000)
Now displays issue subject by default.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3040 e93f8b46-1217-0410-a6f0-8f06a7374b81

12 files changed:
app/helpers/application_helper.rb
app/helpers/issues_helper.rb
app/helpers/timelog_helper.rb
app/views/common/_calendar.rhtml
app/views/issues/_relations.rhtml
app/views/issues/gantt.rhtml
app/views/my/blocks/_timelog.rhtml
app/views/projects/changelog.rhtml
app/views/projects/roadmap.rhtml
app/views/repositories/revision.rhtml
app/views/timelog/_list.rhtml
app/views/versions/show.rhtml

index 6fca5ea..cfc7717 100644 (file)
@@ -58,9 +58,29 @@ module ApplicationHelper
     end
   end
 
+  # Displays a link to +issue+ with its subject.
+  # Examples:
+  # 
+  #   link_to_issue(issue)                        # => Defect #6: This is the subject
+  #   link_to_issue(issue, :truncate => 6)        # => Defect #6: This i...
+  #   link_to_issue(issue, :subject => false)     # => Defect #6
+  #
   def link_to_issue(issue, options={})
-    options[:class] ||= issue.css_classes
-    link_to "#{issue.tracker.name} ##{issue.id}", {:controller => "issues", :action => "show", :id => issue}, options
+    title = nil
+    subject = nil
+    if options[:subject] == false
+      title = truncate(issue.subject, :length => 60)
+    else
+      subject = issue.subject
+      if options[:truncate]
+        subject = truncate(subject, :length => options[:truncate])
+      end
+    end
+    s = link_to "#{issue.tracker} ##{issue.id}", {:controller => "issues", :action => "show", :id => issue}, 
+                                                 :class => issue.css_classes,
+                                                 :title => title
+    s << ": #{h subject}" if subject
+    s
   end
 
   # Generates a link to an attachment.
index eb163e7..0f28cc0 100644 (file)
@@ -24,7 +24,7 @@ module IssuesHelper
     @cached_label_assigned_to ||= l(:field_assigned_to)
     @cached_label_priority ||= l(:field_priority)
     
-    link_to_issue(issue) + ": #{h(issue.subject)}<br /><br />" +
+    link_to_issue(issue) + "<br /><br />" +
       "<strong>#{@cached_label_start_date}</strong>: #{format_date(issue.start_date)}<br />" +
       "<strong>#{@cached_label_due_date}</strong>: #{format_date(issue.due_date)}<br />" +
       "<strong>#{@cached_label_assigned_to}</strong>: #{issue.assigned_to}<br />" +
index 01dcbb4..e8fff8c 100644 (file)
@@ -22,7 +22,7 @@ module TimelogHelper
     links = []
     links << link_to(l(:label_project_all), {:project_id => nil, :issue_id => nil})
     links << link_to(h(@project), {:project_id => @project, :issue_id => nil}) if @project
-    links << link_to_issue(@issue) if @issue
+    links << link_to_issue(@issue, :subject => false) if @issue
     breadcrumb links
   end
 
index d8a7f40..af525c8 100644 (file)
@@ -20,7 +20,7 @@ while day <= calendar.enddt %>
                image_tag('arrow_to.png') 
       end %>
   <%= h("#{i.project} -") unless @project && @project == i.project %>
-  <%= link_to_issue i %>: <%= h(truncate(i.subject, :length => 30)) %>
+  <%= link_to_issue i, :truncate => 30 %>
   <span class="tip"><%= render_issue_tooltip i %></span>
   </div>
   <% else %>
index 6f02d19..135bfa6 100644 (file)
@@ -11,8 +11,9 @@
 <% @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation| %>
 <tr>
 <td><%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
-    <%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %> <%= link_to_issue relation.other_issue(@issue) %></td>
-<td><%=h relation.other_issue(@issue).subject %></td>
+    <%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>
+    <%= link_to_issue relation.other_issue(@issue) %>
+</td>
 <td><%= relation.other_issue(@issue).status.name %></td>
 <td><%= format_date(relation.other_issue(@issue).start_date) %></td>
 <td><%= format_date(relation.other_issue(@issue).due_date) %></td>
index 6dc4e7a..ce317ea 100644 (file)
@@ -83,7 +83,7 @@ top = headers_height + 8
     <div style="position: absolute;line-height:1.2em;height:16px;top:<%= top %>px;left:4px;overflow:hidden;"><small>    
     <% if i.is_a? Issue %>
        <%= h("#{i.project} -") unless @project && @project == i.project %>
-       <%= link_to_issue i %>: <%=h i.subject %>
+       <%= link_to_issue i %>
        <% else %>
                <span class="icon icon-package">
                <%= h("#{i.project} -") unless @project && @project == i.project %>
index ca66f7e..95679b2 100644 (file)
@@ -31,7 +31,7 @@ entries_by_day = entries.group_by(&:spent_on)
     <% entries_by_day[day].each do |entry| -%>
     <tr class="time-entry" style="border-bottom: 1px solid #f5f5f5;">
     <td class="activity"><%=h entry.activity %></td>
-    <td class="subject"><%=h entry.project %> <%= ' - ' + link_to_issue(entry.issue, :title => h("#{entry.issue.subject} (#{entry.issue.status})")) if entry.issue %></td>
+    <td class="subject"><%=h entry.project %> <%= ' - ' + link_to_issue(entry.issue, :truncate => 50) if entry.issue %></td>
     <td class="comments"><%=h entry.comments %></td>
     <td class="hours"><%= html_hours("%.2f" % entry.hours) %></td>
     <td align="center">
index e44d1d1..355a303 100644 (file)
@@ -19,7 +19,7 @@
     <% if !issues.empty? %>
     <ul>
       <% issues.each do |issue| %>
-        <li><%= link_to_issue(issue) %>: <%=h issue.subject %></li>
+        <li><%= link_to_issue(issue) %></li>
       <% end %>
     </ul>
     <% end %>
index bcba13a..cbad932 100644 (file)
@@ -20,7 +20,7 @@
     <fieldset class="related-issues"><legend><%= l(:label_related_issues) %></legend>
     <ul>
     <%- issues.each do |issue| -%>
-        <li><%= link_to_issue(issue) %>: <%=h issue.subject %></li>
+        <li><%= link_to_issue(issue) %></li>
     <%- end -%>
     </ul>
     </fieldset>
index b7bda45..b205be3 100644 (file)
@@ -30,7 +30,7 @@
 <h3><%= l(:label_related_issues) %></h3>
 <ul>
 <% @changeset.issues.visible.each do |issue| %>
-  <li><%= link_to_issue issue %>: <%=h issue.subject %></li>
+  <li><%= link_to_issue issue %></li>
 <% end %>
 </ul>
 <% end %>
index 019eda2..f6a1268 100644 (file)
@@ -20,7 +20,7 @@
 <td class="project"><%=h entry.project %></td>
 <td class="subject">
 <% if entry.issue -%>
-<%= link_to_issue entry.issue %>: <%= h(truncate(entry.issue.subject, :length => 50)) -%>
+<%= link_to_issue entry.issue, :truncate => 50 -%>
 <% end -%>
 </td>
 <td class="comments"><%=h entry.comments %></td>
index c98d542..5cea1ab 100644 (file)
@@ -39,7 +39,7 @@
 <fieldset class="related-issues"><legend><%= l(:label_related_issues) %></legend>
 <ul>
 <% issues.each do |issue| -%>
-    <li><%= link_to_issue(issue) %>: <%=h issue.subject %></li>
+    <li><%= link_to_issue(issue) %></li>
 <% end -%>
 </ul>
 </fieldset>