Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@19322 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/4.2.0
@@ -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 |
@@ -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' %> | |||
<div id="query_form_with_buttons" class="hide-when-print"> | |||
<div id="query_form_content"> | |||
@@ -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 %> | |||
</p> | |||
</div> | |||
<% end %> |
@@ -3,6 +3,7 @@ | |||
<div class="box"> | |||
<div class="tabular"> | |||
<%= hidden_field_tag 'gantt', '1' if params[:gantt] %> | |||
<%= hidden_field_tag 'calendar', '1' if params[:calendar] %> | |||
<p><label for="query_name"><%=l(:field_name)%></label> | |||
<%= text_field 'query', 'name', :size => 80 %></p> | |||
@@ -27,6 +28,7 @@ | |||
<%= check_box_tag 'query_is_for_all', 1, @query.project.nil?, :class => (User.current.admin? ? '' : 'disable-unless-private') %></p> | |||
<% end %> | |||
<% unless params[:calendar] %> | |||
<fieldset id="options"><legend><%= l(:label_options) %></legend> | |||
<% if @query.available_display_types.size > 1 %> | |||
<p><label for='display_type'><%= l(:label_display_type) %></label> | |||
@@ -60,15 +62,16 @@ | |||
<label class="inline"><%= check_box_tag "query[draw_progress_line]", "1", @query.draw_progress_line %> <%= l(:label_gantt_progress_line) %></label> | |||
<label class="inline"><%= check_box_tag "query[draw_selected_columns]", "1", @query.draw_selected_columns, :data => { :enables => 'span.query-columns select, span.query-columns input'} %> <%= l(:description_selected_columns) %></label> | |||
</p> | |||
<% end %> | |||
<% end # unless params[:gantt] %> | |||
</fieldset> | |||
<% end # unless params[:calendar] %> | |||
</div> | |||
<fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend> | |||
<%= render :partial => 'queries/filters', :locals => {:query => query}%> | |||
</fieldset> | |||
<% unless params[:gantt] %> | |||
<% if params[:calendar].nil? && params[:gantt].nil? %> | |||
<fieldset id="sort"><legend><%= l(:label_sort) %></legend> | |||
<% 3.times do |i| %> | |||
<%= content_tag(:span, "#{i+1}:", :class => 'query_sort_criteria_count')%> | |||
@@ -87,10 +90,12 @@ | |||
</fieldset> | |||
<% end %> | |||
<% unless params[:calendar] %> | |||
<%= content_tag 'fieldset', :id => 'columns' do %> | |||
<legend><%= l(:field_column_names) %></legend> | |||
<%= render_query_columns_selection(query) %> | |||
<% end %> | |||
<% end %> | |||
</div> | |||
@@ -153,6 +153,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 => { |