Defect #32194 » 0001-Add-manage-custom-query-buttons-on-calendar.patch
| app/controllers/queries_controller.rb | ||
|---|---|---|
| 147 | 147 |
else |
| 148 | 148 |
redirect_to issues_gantt_path(options) |
| 149 | 149 |
end |
| 150 |
elsif params[:calendar] |
|
| 151 |
if @project |
|
| 152 |
redirect_to project_calendar_path(@project, options) |
|
| 153 |
else |
|
| 154 |
redirect_to issues_calendar_path(options) |
|
| 155 |
end |
|
| 150 | 156 |
else |
| 151 | 157 |
redirect_to _project_issues_path(@project, options) |
| 152 | 158 |
end |
| app/views/calendars/show.html.erb | ||
|---|---|---|
| 3 | 3 |
<%= form_tag({:controller => 'calendars', :action => 'show', :project_id => @project},
|
| 4 | 4 |
:method => :get, :id => 'query_form') do %> |
| 5 | 5 |
<%= hidden_field_tag 'set_filter', '1' %> |
| 6 |
<%= hidden_field_tag 'calendar', '1' %> |
|
| 6 | 7 | |
| 7 | 8 |
<div id="query_form_with_buttons" class="hide-when-print"> |
| 8 | 9 |
<div id="query_form_content"> |
| ... | ... | |
| 26 | 27 | |
| 27 | 28 |
<%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
|
| 28 | 29 |
<%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 }, :class => 'icon icon-reload' %>
|
| 30 |
<% if @query.new_record? && User.current.allowed_to?(:save_queries, @project, :global => true) %> |
|
| 31 |
<%= link_to_function l(:button_save), |
|
| 32 |
"$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit();",
|
|
| 33 |
:class => 'icon icon-save' %> |
|
| 34 |
<% end %> |
|
| 35 |
<% if !@query.new_record? && @query.editable_by?(User.current) %> |
|
| 36 |
<%= link_to l(:button_edit), edit_query_path(@query, :calendar => 1), :class => 'icon icon-edit' %> |
|
| 37 |
<%= delete_link query_path(@query, :calendar => 1) %> |
|
| 38 |
<% end %> |
|
| 29 | 39 |
</p> |
| 30 | 40 |
</div> |
| 31 | 41 |
<% end %> |
| app/views/queries/_form.html.erb | ||
|---|---|---|
| 3 | 3 |
<div class="box"> |
| 4 | 4 |
<div class="tabular"> |
| 5 | 5 |
<%= hidden_field_tag 'gantt', '1' if params[:gantt] %> |
| 6 |
<%= hidden_field_tag 'calendar', '1' if params[:calendar] %> |
|
| 6 | 7 | |
| 7 | 8 |
<p><label for="query_name"><%=l(:field_name)%></label> |
| 8 | 9 |
<%= text_field 'query', 'name', :size => 80 %></p> |
| ... | ... | |
| 27 | 28 |
<%= check_box_tag 'query_is_for_all', 1, @query.project.nil?, :class => (User.current.admin? ? '' : 'disable-unless-private') %></p> |
| 28 | 29 |
<% end %> |
| 29 | 30 | |
| 31 |
<% unless params[:calendar] %> |
|
| 30 | 32 |
<fieldset id="options"><legend><%= l(:label_options) %></legend> |
| 31 | 33 |
<% if @query.available_display_types.size > 1 %> |
| 32 | 34 |
<p><label for='display_type'><%= l(:label_display_type) %></label> |
| ... | ... | |
| 60 | 62 |
<label class="inline"><%= check_box_tag "query[draw_progress_line]", "1", @query.draw_progress_line %> <%= l(:label_gantt_progress_line) %></label> |
| 61 | 63 |
<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>
|
| 62 | 64 |
</p> |
| 63 |
<% end %> |
|
| 65 |
<% end # unless params[:gantt] %>
|
|
| 64 | 66 |
</fieldset> |
| 67 |
<% end # unless params[:calendar] %> |
|
| 65 | 68 |
</div> |
| 66 | 69 | |
| 67 | 70 |
<fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend> |
| 68 | 71 |
<%= render :partial => 'queries/filters', :locals => {:query => query}%>
|
| 69 | 72 |
</fieldset> |
| 70 | 73 | |
| 71 |
<% unless params[:gantt] %>
|
|
| 74 |
<% if params[:calendar].nil? && params[:gantt].nil? %>
|
|
| 72 | 75 |
<fieldset id="sort"><legend><%= l(:label_sort) %></legend> |
| 73 | 76 |
<% 3.times do |i| %> |
| 74 | 77 |
<%= content_tag(:span, "#{i+1}:", :class => 'query_sort_criteria_count')%>
|
| ... | ... | |
| 87 | 90 |
</fieldset> |
| 88 | 91 |
<% end %> |
| 89 | 92 | |
| 93 |
<% unless params[:calendar] %> |
|
| 90 | 94 |
<%= content_tag 'fieldset', :id => 'columns' do %> |
| 91 | 95 |
<legend><%= l(:field_column_names) %></legend> |
| 92 | 96 |
<%= render_query_columns_selection(query) %> |
| 93 | 97 |
<% end %> |
| 98 |
<% end %> |
|
| 94 | 99 | |
| 95 | 100 |
</div> |
| 96 | 101 | |
| test/functional/queries_controller_test.rb | ||
|---|---|---|
| 153 | 153 |
assert_response :success |
| 154 | 154 |
end |
| 155 | 155 | |
| 156 |
def test_new_with_gantt_params |
|
| 157 |
@request.session[:user_id] = 2 |
|
| 158 |
get :new, :params => { :gantt => 1 }
|
|
| 159 |
assert_response :success |
|
| 160 | ||
| 161 |
assert_select 'input[type="hidden"]#gantt', 1 |
|
| 162 |
assert_select 'fieldset#options' |
|
| 163 |
assert_select 'fieldset#filters' |
|
| 164 |
assert_select 'fieldset legend', { :text => 'Sort', :count => 0 }
|
|
| 165 |
assert_select 'fieldset#columns' |
|
| 166 |
end |
|
| 167 | ||
| 168 |
def test_new_with_calendar_params |
|
| 169 |
@request.session[:user_id] = 2 |
|
| 170 |
get :new, :params => { :calendar => 1 }
|
|
| 171 |
assert_response :success |
|
| 172 | ||
| 173 |
assert_select 'input[type="hidden"]#calendar', 1 |
|
| 174 |
assert_select 'fieldset#options', :count => 0 |
|
| 175 |
assert_select 'fieldset#filters' |
|
| 176 |
assert_select 'fieldset legend', { :text => 'Sort', :count => 0 }
|
|
| 177 |
assert_select 'fieldset#columns', :count => 0 |
|
| 178 |
end |
|
| 179 | ||
| 180 |
def test_new_without_gantt_and_calendar_params |
|
| 181 |
@request.session[:user_id] = 2 |
|
| 182 |
get :new |
|
| 183 |
assert_response :success |
|
| 184 | ||
| 185 |
assert_select 'fieldset#options' |
|
| 186 |
assert_select 'fieldset#filters' |
|
| 187 |
assert_select 'fieldset legend', { :text => 'Sort' }
|
|
| 188 |
assert_select 'fieldset#columns' |
|
| 189 |
end |
|
| 190 | ||
| 156 | 191 |
def test_create_project_public_query |
| 157 | 192 |
@request.session[:user_id] = 2 |
| 158 | 193 |
post :create, :params => {
|