index.html.erb 5.67 KB
Newer Older
1
<div class="contextual">
2
  <% if User.current.allowed_to?(:add_issues, @project, :global => true) && (@project.nil? || Issue.allowed_target_trackers(@project).any?) %>
3
    <%= link_to l(:label_issue_new), _new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
4
  <% end %>
5 6
</div>

jplang's avatar
jplang committed
7
<h2><%= @query.new_record? ? l(:label_issue_plural) : @query.name %></h2>
8
<% html_title(@query.new_record? ? l(:label_issue_plural) : @query.name) %>
9

jplang's avatar
jplang committed
10
<%= form_tag({ :controller => 'issues', :action => 'index', :project_id => @project },
11
            :method => :get, :id => 'query_form') do %>
12
  <div id="query_form_with_buttons" class="hide-when-print">
13
    <%= hidden_field_tag 'set_filter', '1' %>
14
    <div id="query_form_content">
15
    <fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
16 17 18 19
      <legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
      <div style="<%= @query.new_record? ? "" : "display: none;" %>">
        <%= render :partial => 'queries/filters', :locals => {:query => @query} %>
      </div>
jplang's avatar
jplang committed
20
    </fieldset>
21
    <fieldset id="options" class="collapsible collapsed">
22 23 24 25
      <legend onclick="toggleFieldset(this);"><%= l(:label_options) %></legend>
      <div style="display: none;">
        <table>
          <tr>
26
            <td class="field"><%= l(:field_column_names) %></td>
27
            <td><%= render_query_columns_selection(@query) %></td>
28 29
          </tr>
          <tr>
30
            <td class="field"><label for='group_by'><%= l(:field_group_by) %></label></td>
31 32 33 34 35
            <td><%= select_tag('group_by',
                               options_for_select(
                                 [[]] + @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]},
                                 @query.group_by)
                       ) %></td>
36
          </tr>
37
          <tr>
38
            <td class="field"><%= l(:button_show) %></td>
39 40
            <td><%= available_block_columns_tags(@query) %></td>
          </tr>
41 42 43 44
          <tr>
            <td><%= l(:label_total_plural) %></td>
            <td><%= available_totalable_columns_tags(@query) %></td>
          </tr>
45 46 47 48
        </table>
      </div>
    </fieldset>
    </div>
49
    <p class="buttons">
jplang's avatar
jplang committed
50
    <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
51
    <%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload'  %>
52 53
    <% if @query.new_record? %>
      <% if User.current.allowed_to?(:save_queries, @project, :global => true) %>
54
        <%= link_to_function l(:button_save),
jplang's avatar
jplang committed
55
                             "$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit()",
56
                             :class => 'icon icon-save' %>
57 58 59 60 61 62
      <% end %>
    <% else %>
      <% if @query.editable_by?(User.current) %>
        <%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %>
        <%= delete_link query_path(@query) %>
      <% end %>
63
    <% end %>
64
    </p>
65
  </div>
66
<% end %>
jplang's avatar
jplang committed
67

68 69 70
<%= error_messages_for 'query' %>
<% if @query.valid? %>
<% if @issues.empty? %>
71
<p class="nodata"><%= l(:label_no_data) %></p>
72
<% else %>
73
<%= render_query_totals(@query) %>
74
<%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %>
75
<span class="pagination"><%= pagination_links_full @issue_pages, @issue_count %></span>
76
<% end %>
77

78
<% other_formats_links do |f| %>
jplang's avatar
jplang committed
79 80 81
  <%= f.link_to_with_query_parameters 'Atom', :key => User.current.rss_key %>
  <%= f.link_to_with_query_parameters 'CSV', {}, :onclick => "showModal('csv-export-options', '350px'); return false;" %>
  <%= f.link_to_with_query_parameters 'PDF' %>
82 83
<% end %>

84
<div id="csv-export-options" style="display:none;">
85 86 87
  <h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
  <%= form_tag(_project_issues_path(@project, :format => 'csv'), :method => :get, :id => 'csv-export-form') do %>
  <%= query_as_hidden_field_tags(@query) %>
88
  <%= hidden_field_tag 'sort', @sort_criteria.to_param, :id => nil %>
89
  <p>
90 91
    <label><%= radio_button_tag 'csv[columns]', '', true %> <%= l(:description_selected_columns) %></label><br />
    <label><%= radio_button_tag 'csv[columns]', 'all' %> <%= l(:description_all_columns) %></label>
92 93
  </p>
  <p>
94
    <label><%= check_box_tag 'csv[description]', '1', @query.has_column?(:description) %> <%= l(:field_description) %></label>
95
  </p>
96 97 98 99 100
  <% if @issue_count > Setting.issues_export_limit.to_i %>
  <p class="icon icon-warning">
    <%= l(:setting_issues_export_limit) %>: <%= Setting.issues_export_limit.to_i %>
  </p>
  <% end %>
jplang's avatar
jplang committed
101
  <p class="buttons">
102 103 104 105 106 107
    <%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);" %>
    <%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %>
  </p>
  <% end %>
</div>

108
<% end %>
109
<%= call_hook(:view_issues_index_bottom, { :issues => @issues, :project => @project, :query => @query }) %>
110 111 112

<% content_for :sidebar do %>
    <%= render :partial => 'issues/sidebar' %>
113
<% end %>
114 115

<% content_for :header_tags do %>
116 117 118 119 120 121 122 123 124
    <%= auto_discovery_link_tag(:atom,
                                {:query_id => @query, :format => 'atom',
                                 :page => nil, :key => User.current.rss_key},
                                :title => l(:label_issue_plural)) %>
    <%= auto_discovery_link_tag(:atom,
                                {:controller => 'journals', :action => 'index',
                                 :query_id => @query, :format => 'atom',
                                 :page => nil, :key => User.current.rss_key},
                                :title => l(:label_changes_details)) %>
125
<% end %>
126

127
<%= context_menu issues_context_menu_path %>