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