From 8eb52f2679632be7b8948e7233784a7840e385b8 Mon Sep 17 00:00:00 2001 From: ishikawa Date: Wed, 31 Jan 2018 09:32:53 +0900 Subject: [PATCH 2/2] Add switch the display for selected column --- app/models/issue_query.rb | 10 +++++++ app/views/gantts/show.html.erb | 8 ++++-- app/views/queries/_form.html.erb | 1 + config/locales/en.yml | 1 + public/javascripts/gantt.js | 42 +++++++++++++++++------------- test/functional/queries_controller_test.rb | 8 ++++-- 6 files changed, 48 insertions(+), 22 deletions(-) diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb index 6bb2bc217..9675cbdd5 100644 --- a/app/models/issue_query.rb +++ b/app/models/issue_query.rb @@ -73,10 +73,20 @@ class IssueQuery < Query options[:draw_progress_line] = (arg == '1' ? '1' : nil) end + def draw_selected_columns + r = options[:draw_selected_columns] + r == '1' + end + + def draw_selected_columns=(arg) + options[:draw_selected_columns] = (arg == '1' ? '1' : nil) + end + def build_from_params(params, defaults={}) super self.draw_relations = params[:draw_relations] || (params[:query] && params[:query][:draw_relations]) self.draw_progress_line = params[:draw_progress_line] || (params[:query] && params[:query][:draw_progress_line]) + self.draw_selected_columns = params[:draw_selected_columns] || (params[:query] && params[:query][:draw_selected_columns]) self end diff --git a/app/views/gantts/show.html.erb b/app/views/gantts/show.html.erb index 6a5b6b641..63617ce65 100644 --- a/app/views/gantts/show.html.erb +++ b/app/views/gantts/show.html.erb @@ -34,6 +34,10 @@ <%= l(:field_column_names) %> + <%= render_query_columns_selection(@query) %> @@ -413,8 +417,8 @@ disable_unavailable_columns('<%= Redmine::Helpers::Gantt::UNAVAILABLE_COLUMNS.map{|column| column.to_s }.join(',') %>'.split(',')); drawGanttHandler(); resizableSubjectColumn(); - $("#draw_relations").change(drawGanttHandler); - $("#draw_progress_line").change(drawGanttHandler); + drawSelectedColumns(); + $("#draw_relations, #draw_progress_line, #draw_selected_columns").change(drawGanttHandler); }); $(window).resize(function() { drawGanttHandler(); diff --git a/app/views/queries/_form.html.erb b/app/views/queries/_form.html.erb index f424e103c..094860865 100644 --- a/app/views/queries/_form.html.erb +++ b/app/views/queries/_form.html.erb @@ -42,6 +42,7 @@

+

<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 3fb86c14c..1fb7e3efc 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1025,6 +1025,7 @@ en: label_font_monospace: Monospaced font label_font_proportional: Proportional font label_last_notes: Last notes + label_gantt_selected_columns: Selected columns button_login: Login button_submit: Submit diff --git a/public/javascripts/gantt.js b/public/javascripts/gantt.js index 17a192970..60f02b298 100644 --- a/public/javascripts/gantt.js +++ b/public/javascripts/gantt.js @@ -162,25 +162,31 @@ function drawGanttProgressLines() { } function drawSelectedColumns(){ - if(isMobile()) { - $('td.gantt_selected_column').each(function(i) { - $(this).hide(); - }); - }else{ - $('#content').addClass("gantt_content"); - $('td.gantt_selected_column').each(function() { - $(this).show(); - var column_name = $(this).attr('id'); - $(this).resizable({ - alsoResize: `.gantt_${column_name}_container, .gantt_${column_name}_container > .gantt_hdr`, - minWidth: 20, - handles: "e", - create: function( event, ui ) { - $(".ui-resizable-e").css("cursor","ew-resize"); - } - }).on('resize', function (e) { - e.stopPropagation(); + if ($("#draw_selected_columns").prop('checked')) { + if(isMobile()) { + $('td.gantt_selected_column').each(function(i) { + $(this).hide(); }); + }else{ + $('#content').addClass("gantt_content"); + $('td.gantt_selected_column').each(function() { + $(this).show(); + var column_name = $(this).attr('id'); + $(this).resizable({ + alsoResize: `.gantt_${column_name}_container, .gantt_${column_name}_container > .gantt_hdr`, + minWidth: 20, + handles: "e", + create: function( event, ui ) { + $(".ui-resizable-e").css("cursor","ew-resize"); + } + }).on('resize', function (e) { + e.stopPropagation(); + }); + }); + } + }else{ + $('td.gantt_selected_column').each(function (i) { + $(this).hide(); }); } } diff --git a/test/functional/queries_controller_test.rb b/test/functional/queries_controller_test.rb index 387f70473..0b618a82d 100644 --- a/test/functional/queries_controller_test.rb +++ b/test/functional/queries_controller_test.rb @@ -283,7 +283,8 @@ class QueriesControllerTest < Redmine::ControllerTest :query => { :name => "test_create_from_gantt", :draw_relations => '1', - :draw_progress_line => '1' + :draw_progress_line => '1', + :draw_selected_columns => '1' } } assert_response 302 @@ -292,6 +293,7 @@ class QueriesControllerTest < Redmine::ControllerTest assert_redirected_to "/issues/gantt?query_id=#{query.id}" assert_equal true, query.draw_relations assert_equal true, query.draw_progress_line + assert_equal true, query.draw_selected_columns end def test_create_project_query_from_gantt @@ -309,7 +311,8 @@ class QueriesControllerTest < Redmine::ControllerTest :query => { :name => "test_create_from_gantt", :draw_relations => '0', - :draw_progress_line => '0' + :draw_progress_line => '0', + :draw_selected_columns => '0' } } assert_response 302 @@ -318,6 +321,7 @@ class QueriesControllerTest < Redmine::ControllerTest assert_redirected_to "/projects/ecookbook/issues/gantt?query_id=#{query.id}" assert_equal false, query.draw_relations assert_equal false, query.draw_progress_line + assert_equal false, query.draw_selected_columns end def test_create_project_public_query_should_force_private_without_manage_public_queries_permission -- 2.14.3 (Apple Git-98)