]> source.dussan.org Git - redmine.git/commitdiff
Wrap text custom fields in the issue list (#8064).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 5 Apr 2011 22:18:49 +0000 (22:18 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 5 Apr 2011 22:18:49 +0000 (22:18 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5332 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/query.rb
app/views/issues/_list.rhtml
public/stylesheets/application.css
test/functional/issues_controller_test.rb

index 87663aca8e020546d92e7b84676ba3092024909f..9f4d6d5c209b4d0e0d14d225be16990cdc0b09e4 100644 (file)
@@ -42,6 +42,10 @@ class QueryColumn
   def value(issue)
     issue.send name
   end
+  
+  def css_classes
+    name
+  end
 end
 
 class QueryCustomFieldColumn < QueryColumn
@@ -68,6 +72,10 @@ class QueryCustomFieldColumn < QueryColumn
     cv = issue.custom_values.detect {|v| v.custom_field_id == @cf.id}
     cv && @cf.cast_value(cv.value)
   end
+  
+  def css_classes
+    @css_classes ||= "#{name} #{@cf.field_format}"
+  end
 end
 
 class Query < ActiveRecord::Base
index 7d3a03c2ef2c47b2e9c52a39cf5d4b083bd5edfb..1d08d54988c820b3428190b8ff05aa3dae589290 100644 (file)
@@ -28,7 +28,7 @@
        <tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
          <td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
                <td class="id"><%= 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 %>
+        <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.css_classes %><% end %>
        </tr>
        <% end -%>
        </tbody>
index 2589b327fe0bc206d7ec4a27a12e6edbaba49981..83e786b49dd17e7e497df7775581f359794ad6a5 100644 (file)
@@ -127,9 +127,10 @@ tr.project.idnt-8 td.name {padding-left: 11em;}
 tr.project.idnt-9 td.name {padding-left: 12.5em;}
 
 tr.issue { text-align: center; white-space: nowrap; }
-tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
+tr.issue td.subject, tr.issue td.category, td.assigned_to, tr.issue td.string, tr.issue td.text { white-space: normal; }
 tr.issue td.subject { text-align: left; }
 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
+tr.issue td.
 
 tr.issue.idnt td.subject a {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
 tr.issue.idnt-1 td.subject {padding-left: 0.5em;}
index 2630e96847de95eeeb0db09ca524055bfbf54ded..4c6e33266e49688ed70b0d692a85e12dee772e8f 100644 (file)
@@ -261,6 +261,21 @@ class IssuesControllerTest < ActionController::TestCase
     assert_kind_of Array, session[:query][:column_names]
     assert_equal columns, session[:query][:column_names].map(&:to_s)
   end
+  
+  def test_index_with_custom_field_column
+    columns = %w(tracker subject cf_2)
+    get :index, :set_filter => 1, :c => columns
+    assert_response :success
+    
+    # query should use specified columns
+    query = assigns(:query)
+    assert_kind_of Query, query
+    assert_equal columns, query.column_names.map(&:to_s)
+    
+    assert_tag :td,
+      :attributes => {:class => 'cf_2 string'},
+      :ancestor => {:tag => 'table', :attributes => {:class => /issues/}}
+  end
 
   def test_show_by_anonymous
     get :show, :id => 1