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 => { |