From 73f610de2e217edf96b8d72a2b88192d6a67eea8 Mon Sep 17 00:00:00 2001 From: ishikawa999 Date: Wed, 9 Oct 2019 04:18:16 +0000 Subject: [PATCH 1/2] Add manage custom query buttons on calendar --- app/controllers/queries_controller.rb | 6 +++++ app/views/calendars/show.html.erb | 10 +++++++++ app/views/queries/_form.html.erb | 7 +++++- test/functional/queries_controller_test.rb | 35 ++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) diff --git a/app/controllers/queries_controller.rb b/app/controllers/queries_controller.rb index 10051ab02..5a68f2cd6 100644 --- a/app/controllers/queries_controller.rb +++ b/app/controllers/queries_controller.rb @@ -147,6 +147,12 @@ class QueriesController < ApplicationController else redirect_to issues_gantt_path(options) end + elsif params[:calendar] + if @project + redirect_to project_calendar_path(@project, options) + else + redirect_to issues_calendar_path(options) + end else redirect_to _project_issues_path(@project, options) end diff --git a/app/views/calendars/show.html.erb b/app/views/calendars/show.html.erb index 9874ac15b..93cd12a2a 100644 --- a/app/views/calendars/show.html.erb +++ b/app/views/calendars/show.html.erb @@ -3,6 +3,7 @@ <%= form_tag({:controller => 'calendars', :action => 'show', :project_id => @project}, :method => :get, :id => 'query_form') do %> <%= hidden_field_tag 'set_filter', '1' %> +<%= hidden_field_tag 'calendar', '1' %>
@@ -26,6 +27,15 @@ <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %> <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 }, :class => 'icon icon-reload' %> + <% if @query.new_record? && User.current.allowed_to?(:save_queries, @project, :global => true) %> + <%= link_to_function l(:button_save), + "$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit();", + :class => 'icon icon-save' %> + <% end %> + <% if !@query.new_record? && @query.editable_by?(User.current) %> + <%= link_to l(:button_edit), edit_query_path(@query, :calendar => 1), :class => 'icon icon-edit' %> + <%= delete_link query_path(@query, :calendar => 1) %> + <% end %>

<% end %> diff --git a/app/views/queries/_form.html.erb b/app/views/queries/_form.html.erb index f1ef5ecac..372352082 100644 --- a/app/views/queries/_form.html.erb +++ b/app/views/queries/_form.html.erb @@ -3,6 +3,7 @@
<%= hidden_field_tag 'gantt', '1' if params[:gantt] %> +<%= hidden_field_tag 'calendar', '1' if params[:calendar] %>

<%= text_field 'query', 'name', :size => 80 %>

@@ -22,6 +23,7 @@

<%= check_box_tag 'query_is_for_all', 1, @query.project.nil?, :class => (User.current.admin? ? '' : 'disable-unless-private') %>

+<% unless params[:calendar] %>
<%= l(:label_options) %>

<%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns', @@ -45,14 +47,16 @@

-<% end %> +<% end # unless params[:gantt] %>
+<% end # unless params[:calendar] %>
<%= l(:label_filter_plural) %> <%= render :partial => 'queries/filters', :locals => {:query => query}%>
+<% unless params[:calendar] %> <% unless params[:gantt] %>
<%= l(:label_sort) %> <% 3.times do |i| %> @@ -76,6 +80,7 @@ <%= l(:field_column_names) %> <%= render_query_columns_selection(query) %> <% end %> +<% end # unless params[:calendar] %>
diff --git a/test/functional/queries_controller_test.rb b/test/functional/queries_controller_test.rb index 1439a908e..9de1a3089 100644 --- a/test/functional/queries_controller_test.rb +++ b/test/functional/queries_controller_test.rb @@ -100,6 +100,41 @@ class QueriesControllerTest < Redmine::ControllerTest assert_response :success end + def test_new_with_gantt_params + @request.session[:user_id] = 2 + get :new, :params => { :gantt => 1 } + assert_response :success + + assert_select 'input[type="hidden"]#gantt', 1 + assert_select 'fieldset#options' + assert_select 'fieldset#filters' + assert_select 'fieldset legend', { :text => 'Sort', :count => 0 } + assert_select 'fieldset#columns' + end + + def test_new_with_calendar_params + @request.session[:user_id] = 2 + get :new, :params => { :calendar => 1 } + assert_response :success + + assert_select 'input[type="hidden"]#calendar', 1 + assert_select 'fieldset#options', :count => 0 + assert_select 'fieldset#filters' + assert_select 'fieldset legend', { :text => 'Sort', :count => 0 } + assert_select 'fieldset#columns', :count => 0 + end + + def test_new_without_gantt_and_calendar_params + @request.session[:user_id] = 2 + get :new + assert_response :success + + assert_select 'fieldset#options' + assert_select 'fieldset#filters' + assert_select 'fieldset legend', { :text => 'Sort' } + assert_select 'fieldset#columns' + end + def test_create_project_public_query @request.session[:user_id] = 2 post :create, :params => { -- 2.11.0