Project

General

Profile

Feature #32818 » 32818.patch

Takenori TAKAKI, 2020-02-03 14:16

View differences:

app/models/project_query.rb
74 74
    @available_columns
75 75
  end
76 76

  
77
  def display_type
78
    options[:display_type] || Setting.project_list_display_type || self.available_display_types.first
79
  end
80

  
81
  def display_type=(type)
82
    unless type || self.available_display_types.include?(type)
83
      type = Setting.project_list_display_type || self.available_display_types.first
84
    end
85
    options[:display_type] = type
86
  end
87

  
77 88
  def available_display_types
78 89
    ['board', 'list']
79 90
  end
app/views/settings/_projects.html.erb
19 19
<fieldset class="box">
20 20
  <legend><%= l(:setting_project_list_defaults) %></legend>
21 21
  <% query = ProjectQuery.new(Setting.project_list_defaults) %>
22
  <p>
23
    <label><%= l(:setting_project_list_display_type) %></label>
24
    <% query.available_display_types.each do |t| %>
25
      <%= radio_button_tag('settings[project_list_display_type]', t, Setting.project_list_display_type == t, :id => "setting_project_list_display_type_#{t}") %>
26
      <%= content_tag('label', l(:"label_display_type_#{t}"), :for => "settings_project_list_display_type_#{t}", :class => "inline") %>
27
    <% end %>
28
  </p>
22 29
  <%= render_query_columns_selection(query,
23 30
        :name => 'settings[project_list_defaults][column_names]') %>
24 31
</fieldset>
config/locales/en.yml
485 485
  setting_timelog_max_hours_per_day: Maximum hours that can be logged per day and user
486 486
  setting_timelog_accept_future_dates: Accept time logs on future dates
487 487
  setting_show_status_changes_in_mail_subject: Show status changes in issue mail notifications subject
488
  setting_project_list_display_type: Display results as
488 489
  setting_project_list_defaults: Projects list defaults
489 490

  
490 491
  permission_add_project: Create project
config/settings.yml
230 230
    - hours
231 231
    totalable_names:
232 232
    - hours
233
project_list_display_type:
234
  default: board
233 235
project_list_defaults:
234 236
  serialized: true
235 237
  default:
test/unit/project_query_test.rb
60 60
    query = ProjectQuery.new
61 61
    assert_include :cf_3, query.available_columns.map(&:name)
62 62
  end
63

  
64
  def test_display_type_default_should_equal_with_setting_project_list_display_type
65
    ProjectQuery.new.available_display_types.each do |t|
66
      with_settings :project_list_display_type => t do
67
        q = ProjectQuery.new
68
        assert_equal t, q.display_type
69
      end
70
    end
71
  end
63 72
end
(2-2/3)