summaryrefslogtreecommitdiffstats
path: root/app/views/queries/_query_form.html.erb
blob: fda9d80199261ecc506ad88d5fd9b70f610e170f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<%= hidden_field_tag 'set_filter', '1' %>
<%= hidden_field_tag 'type', @query.type, :disabled => true, :id => 'query_type' %>
<%= query_hidden_sort_tag(@query) %>

<div id="query_form_with_buttons" class="hide-when-print">
<div id="query_form_content">
  <fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
    <legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>"><%= l(:label_filter_plural) %></legend>
    <div style="<%= @query.new_record? ? "" : "display: none;" %>">
      <%= render :partial => 'queries/filters', :locals => {:query => @query} %>
    </div>
  </fieldset>

  <% if @query.available_columns.any? %>
    <fieldset id="options" class="collapsible collapsed">
      <legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_options) %></legend>
        <div class="hidden">
          <% if @query.available_display_types.size > 1 %>
          <div>
            <span class="field"><label for='display_type'><%= l(:label_display_type) %></label></span>
            <%= available_display_types_tags(@query) %>
          </div>
          <% end %>
          <table id="list-definition" class="<%= 'hidden' if (@query.display_type != 'list') %>">
          <% if @query.available_columns.any? %>
            <tr>
              <td class="field"><%= l(:field_column_names) %></td>
              <td><%= render_query_columns_selection(@query) %></td>
            </tr>
          <% end %>
          <% if @query.groupable_columns.any? %>
            <tr>
              <td class="field"><label for='group_by'><%= l(:field_group_by) %></label></td>
              <td><%= group_by_column_select_tag(@query) %></td>
            </tr>
          <% end %>
          <% if @query.available_block_columns.any? %>
            <tr>
              <td class="field"><%= l(:button_show) %></td>
              <td><%= available_block_columns_tags(@query) %></td>
            </tr>
          <% end %>
          <% if @query.available_totalable_columns.any? %>
            <tr>
              <td><%= l(:label_total_plural) %></td>
              <td><%= available_totalable_columns_tags(@query) %></td>
            </tr>
          <% end %>
        </table>
      </div>
    </fieldset>
  <% end %>
</div>

<p class="buttons">
  <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
  <%= link_to l(:button_clear), { :set_filter => 1, :sort => '', :project_id => @project }, :class => 'icon icon-reload'  %>
  <% if @query.new_record? %>
    <% if User.current.allowed_to?(:save_queries, @project, :global => true) %>
      <%= link_to_function l(:button_save_object, object_name: l(:label_query)).capitalize,
                           "$('#query_type').prop('disabled',false);$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit()",
                           :class => 'icon icon-save' %>
    <% end %>
  <% else %>
    <% if @query.editable_by?(User.current) %>
      <% redirect_params = (controller_name == 'admin' && action_name == 'projects') ? {:admin_projects => 1} : {} %>
      <%= link_to l(:button_edit_object, object_name: l(:label_query)).capitalize, edit_query_path(@query, redirect_params), :class => 'icon icon-edit' %>
      <%= delete_link query_path(@query, redirect_params), {}, l(:button_delete_object, object_name: l(:label_query)).capitalize %>
    <% end %>
  <% end %>
</p>
</div>

<%= error_messages_for @query %>

<%= javascript_tag do %>
$(function ($) {
  $('input[name=display_type]').change(function (e) {
    if ($("#display_type_list").is(':checked')) {
      $('table#list-definition').show();
    } else {
      $('table#list-definition').hide();
    }

  })
});

<% end %>