Feature #26081 » 0001-Show-full-width-layout-custom-fields-as-block-column.patch
app/models/query.rb | ||
---|---|---|
123 | 123 |
self.sortable = custom_field.order_statement || false |
124 | 124 |
self.groupable = custom_field.group_statement || false |
125 | 125 |
self.totalable = options.key?(:totalable) ? !!options[:totalable] : custom_field.totalable? |
126 |
@inline = true |
|
126 |
@inline = custom_field.full_width_layout? ? false : true
|
|
127 | 127 |
@cf = custom_field |
128 | 128 |
end |
129 | 129 |
app/views/issues/_list.html.erb | ||
---|---|---|
40 | 40 |
<% query.block_columns.each do |column| |
41 | 41 |
if (text = column_content(column, issue)) && text.present? -%> |
42 | 42 |
<tr class="<%= current_cycle %>"> |
43 |
<td colspan="<%= query.inline_columns.size + 2 %>" class="<%= column.css_classes %>"> |
|
43 |
<td colspan="<%= query.inline_columns.size + 2 %>" class="<%= column.css_classes %> block_column">
|
|
44 | 44 |
<% if query.block_columns.count > 1 %> |
45 | 45 |
<span><%= column.caption %></span> |
46 | 46 |
<% end %> |
public/stylesheets/application.css | ||
---|---|---|
264 | 264 |
tr.issue td.relations { text-align: left; } |
265 | 265 |
tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;} |
266 | 266 |
tr.issue td.relations span {white-space: nowrap;} |
267 |
table.issues td.description, table.issues td.last_notes {color:#777; font-size:90%; padding:4px 4px 4px 24px; text-align:left; white-space:normal;}
|
|
268 |
table.issues td.description pre, table.issues td.last_notes pre {white-space:normal;}
|
|
267 |
table.issues td.block_column {color:#777; font-size:90%; padding:4px 4px 4px 24px; text-align:left; white-space:normal;}
|
|
268 |
table.issues td.block_column pre {white-space:normal;}
|
|
269 | 269 | |
270 | 270 |
tr.issue.idnt td.subject {background: url(../images/arrow_right.png) no-repeat 2px 50%;} |
271 | 271 |
tr.issue.idnt-1 td.subject {padding-left: 24px; background-position: 8px 50%;} |
test/functional/issues_controller_test.rb | ||
---|---|---|
355 | 355 | |
356 | 356 |
def test_index_grouped_by_created_on |
357 | 357 |
skip unless IssueQuery.new.groupable_columns.detect {|c| c.name == :created_on} |
358 |
|
|
358 | ||
359 | 359 |
get :index, :params => { |
360 | 360 |
:set_filter => 1, |
361 | 361 |
:group_by => 'created_on' |
362 | 362 |
} |
363 | 363 |
assert_response :success |
364 |
|
|
364 | ||
365 | 365 |
assert_select 'tr.group span.name', :text => '07/19/2006' do |
366 | 366 |
assert_select '+ span.count', :text => '2' |
367 | 367 |
end |
368 | 368 |
end |
369 |
|
|
369 | ||
370 | 370 |
def test_index_grouped_by_created_on_as_pdf |
371 | 371 |
skip unless IssueQuery.new.groupable_columns.detect {|c| c.name == :created_on} |
372 |
|
|
372 | ||
373 | 373 |
get :index, :params => { |
374 | 374 |
:set_filter => 1, |
375 | 375 |
:group_by => 'created_on', |
... | ... | |
1398 | 1398 |
assert_select 'td.description[colspan="4"] span', :text => 'Description' |
1399 | 1399 |
end |
1400 | 1400 | |
1401 |
def test_index_with_full_width_layout_custom_field_column_should_show_column_as_block_column |
|
1402 |
field = IssueCustomField.create!(:name => 'Long text', :field_format => 'text', :full_width_layout => '1', |
|
1403 |
:tracker_ids => [1], :is_for_all => true) |
|
1404 |
issue = Issue.find(1) |
|
1405 |
issue.custom_field_values = {field.id => 'This is a long text'} |
|
1406 |
issue.save! |
|
1407 | ||
1408 |
get :index, :params => { |
|
1409 |
:set_filter => 1, |
|
1410 |
:c => ['subject', 'description', "cf_#{field.id}"] |
|
1411 |
} |
|
1412 |
assert_response :success |
|
1413 | ||
1414 |
assert_select 'td.description[colspan="4"] span', :text => 'Description' |
|
1415 |
assert_select "td.cf_#{field.id} span", :text => 'Long text' |
|
1416 |
end |
|
1417 | ||
1401 | 1418 |
def test_index_with_parent_column |
1402 | 1419 |
Issue.delete_all |
1403 | 1420 |
parent = Issue.generate! |
... | ... | |
1867 | 1884 |
with_settings :date_format => '%d/%m/%Y' do |
1868 | 1885 |
issue = Issue.generate!(:start_date => '2018-11-29', :due_date => '2018-12-01') |
1869 | 1886 |
IssueRelation.create!(:issue_from => Issue.find(1), :issue_to => issue, :relation_type => 'relates') |
1870 |
|
|
1887 | ||
1871 | 1888 |
get :show, :params => { |
1872 | 1889 |
:id => 1 |
1873 | 1890 |
} |
1874 | 1891 |
assert_response :success |
1875 |
|
|
1892 | ||
1876 | 1893 |
assert_select '#relations td.start_date', :text => '29/11/2018' |
1877 | 1894 |
assert_select '#relations td.due_date', :text => '01/12/2018' |
1878 | 1895 |
end |