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> |
... | ... | |
22 | 23 |
<p><label for="query_is_for_all"><%=l(:field_is_for_all)%></label> |
23 | 24 |
<%= check_box_tag 'query_is_for_all', 1, @query.project.nil?, :class => (User.current.admin? ? '' : 'disable-unless-private') %></p> |
24 | 25 | |
26 |
<% unless params[:calendar] %> |
|
25 | 27 |
<fieldset id="options"><legend><%= l(:label_options) %></legend> |
26 | 28 |
<p><label for="query_default_columns"><%=l(:label_default_columns)%></label> |
27 | 29 |
<%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns', |
... | ... | |
45 | 47 |
<label class="inline"><%= check_box_tag "query[draw_progress_line]", "1", @query.draw_progress_line %> <%= l(:label_gantt_progress_line) %></label> |
46 | 48 |
<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> |
47 | 49 |
</p> |
48 |
<% end %> |
|
50 |
<% end # unless params[:gantt] %>
|
|
49 | 51 |
</fieldset> |
52 |
<% end # unless params[:calendar] %> |
|
50 | 53 |
</div> |
51 | 54 | |
52 | 55 |
<fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend> |
53 | 56 |
<%= render :partial => 'queries/filters', :locals => {:query => query}%> |
54 | 57 |
</fieldset> |
55 | 58 | |
59 |
<% unless params[:calendar] %> |
|
56 | 60 |
<% unless params[:gantt] %> |
57 | 61 |
<fieldset><legend><%= l(:label_sort) %></legend> |
58 | 62 |
<% 3.times do |i| %> |
... | ... | |
76 | 80 |
<legend><%= l(:field_column_names) %></legend> |
77 | 81 |
<%= render_query_columns_selection(query) %> |
78 | 82 |
<% end %> |
83 |
<% end # unless params[:calendar] %> |
|
79 | 84 | |
80 | 85 |
</div> |
81 | 86 |
test/functional/queries_controller_test.rb | ||
---|---|---|
100 | 100 |
assert_response :success |
101 | 101 |
end |
102 | 102 | |
103 |
def test_new_with_gantt_params |
|
104 |
@request.session[:user_id] = 2 |
|
105 |
get :new, :params => { :gantt => 1 } |
|
106 |
assert_response :success |
|
107 | ||
108 |
assert_select 'input[type="hidden"]#gantt', 1 |
|
109 |
assert_select 'fieldset#options' |
|
110 |
assert_select 'fieldset#filters' |
|
111 |
assert_select 'fieldset legend', { :text => 'Sort', :count => 0 } |
|
112 |
assert_select 'fieldset#columns' |
|
113 |
end |
|
114 | ||
115 |
def test_new_with_calendar_params |
|
116 |
@request.session[:user_id] = 2 |
|
117 |
get :new, :params => { :calendar => 1 } |
|
118 |
assert_response :success |
|
119 | ||
120 |
assert_select 'input[type="hidden"]#calendar', 1 |
|
121 |
assert_select 'fieldset#options', :count => 0 |
|
122 |
assert_select 'fieldset#filters' |
|
123 |
assert_select 'fieldset legend', { :text => 'Sort', :count => 0 } |
|
124 |
assert_select 'fieldset#columns', :count => 0 |
|
125 |
end |
|
126 | ||
127 |
def test_new_without_gantt_and_calendar_params |
|
128 |
@request.session[:user_id] = 2 |
|
129 |
get :new |
|
130 |
assert_response :success |
|
131 | ||
132 |
assert_select 'fieldset#options' |
|
133 |
assert_select 'fieldset#filters' |
|
134 |
assert_select 'fieldset legend', { :text => 'Sort' } |
|
135 |
assert_select 'fieldset#columns' |
|
136 |
end |
|
137 | ||
103 | 138 |
def test_create_project_public_query |
104 | 139 |
@request.session[:user_id] = 2 |
105 | 140 |
post :create, :params => { |