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 |