You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

_form.html.erb 6.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <%= error_messages_for 'query' %>
  2. <div class="box">
  3. <div class="tabular">
  4. <%= hidden_field_tag 'gantt', '1' if params[:gantt] %>
  5. <%= hidden_field_tag 'calendar', '1' if params[:calendar] %>
  6. <%= hidden_field_tag 'admin_projects', '1' if params[:admin_projects] %>
  7. <p><label for="query_name"><%=l(:field_name)%></label>
  8. <%= text_field 'query', 'name', :size => 80 %></p>
  9. <% if User.current.admin? ||
  10. User.current.allowed_to?(:manage_public_queries, @query.project) %>
  11. <p><label><%=l(:field_visible)%></label>
  12. <label class="block"><%= radio_button 'query', 'visibility', Query::VISIBILITY_PRIVATE %> <%= l(:label_visibility_private) %></label>
  13. <label class="block"><%= radio_button 'query', 'visibility', Query::VISIBILITY_PUBLIC %> <%= l(:label_visibility_public) %></label>
  14. <% unless @query.type == 'ProjectQuery' %>
  15. <label class="block"><%= radio_button 'query', 'visibility', Query::VISIBILITY_ROLES %> <%= l(:label_visibility_roles) %>:</label>
  16. <% Role.givable.sorted.each do |role| %>
  17. <label class="block role-visibility"><%= check_box_tag 'query[role_ids][]', role.id, @query.roles.include?(role), :id => nil %> <%= role.name %></label>
  18. <% end %>
  19. <%= hidden_field_tag 'query[role_ids][]', '' %>
  20. <% end %>
  21. </p>
  22. <% end %>
  23. <% unless @query.type == 'ProjectQuery' %>
  24. <p><label for="query_is_for_all"><%=l(:field_is_for_all)%></label>
  25. <%= check_box_tag 'query_is_for_all', 1, @query.project.nil?, :class => (User.current.admin? ? '' : 'disable-unless-private') %></p>
  26. <% end %>
  27. <% unless params[:calendar] %>
  28. <fieldset id="options"><legend><%= l(:label_options) %></legend>
  29. <% if @query.available_display_types.size > 1 %>
  30. <p><label for='display_type'><%= l(:label_display_type) %></label>
  31. <%= available_display_types_tags(@query) %>
  32. </p>
  33. <% elsif @query.available_display_types.size == 1 %>
  34. <%= hidden_field_tag 'query[display_type]', @query.available_display_types.first %>
  35. <% end %>
  36. <p id ="default_columns"><label for="query_default_columns"><%=l(:label_default_columns)%></label>
  37. <%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns',
  38. :data => {:disables => "#columns, .block_columns input"} %></p>
  39. <% unless params[:gantt] %>
  40. <p id="group_by"><label for="query_group_by"><%= l(:field_group_by) %></label>
  41. <%= select 'query', 'group_by', @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, :include_blank => true %></p>
  42. <% unless @query.available_block_columns.empty? %>
  43. <p class="block_columns"><label><%= l(:button_show) %></label>
  44. <%= available_block_columns_tags(@query) %></p>
  45. <% end %>
  46. <% unless @query.available_totalable_columns.empty? %>
  47. <p class="totable_columns"><label><%= l(:label_total_plural) %></label>
  48. <%= available_totalable_columns_tags(@query) %></p>
  49. <% end %>
  50. <% else %>
  51. <p><label><%= l(:button_show) %></label>
  52. <%= hidden_field_tag 'query[draw_relations]', '0' %>
  53. <%= hidden_field_tag 'query[draw_progress_line]', '0' %>
  54. <%= hidden_field_tag 'query[draw_selected_columns]', '0' %>
  55. <label class="inline"><%= check_box_tag "query[draw_relations]", "1", @query.draw_relations %> <%= l(:label_related_issues) %></label>
  56. <label class="inline"><%= check_box_tag "query[draw_progress_line]", "1", @query.draw_progress_line %> <%= l(:label_gantt_progress_line) %></label>
  57. <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>
  58. </p>
  59. <% end %>
  60. </fieldset>
  61. <% end %>
  62. </div>
  63. <fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend>
  64. <%= render :partial => 'queries/filters', :locals => {:query => query}%>
  65. </fieldset>
  66. <% if params[:calendar].nil? && params[:gantt].nil? %>
  67. <fieldset id="sort"><legend><%= l(:label_sort) %></legend>
  68. <% 3.times do |i| %>
  69. <%= content_tag(:span, "#{i+1}:", :class => 'query_sort_criteria_count')%>
  70. <%= label_tag "query_sort_criteria_attribute_" + i.to_s,
  71. l(:description_query_sort_criteria_attribute), :class => "hidden-for-sighted" %>
  72. <%= select_tag("query[sort_criteria][#{i}][]",
  73. options_for_select([[]] + query.available_columns.select(&:sortable?).collect {|column| [column.caption, column.name.to_s]}, @query.sort_criteria_key(i)),
  74. :id => "query_sort_criteria_attribute_" + i.to_s)%>
  75. <%= label_tag "query_sort_criteria_direction_" + i.to_s,
  76. l(:description_query_sort_criteria_direction), :class => "hidden-for-sighted" %>
  77. <%= select_tag("query[sort_criteria][#{i}][]",
  78. options_for_select([[], [l(:label_ascending), 'asc'], [l(:label_descending), 'desc']], @query.sort_criteria_order(i)),
  79. :id => "query_sort_criteria_direction_" + i.to_s) %>
  80. <br />
  81. <% end %>
  82. </fieldset>
  83. <% end %>
  84. <% unless params[:calendar] %>
  85. <%= content_tag 'fieldset', :id => 'columns' do %>
  86. <legend><%= l(:field_column_names) %></legend>
  87. <div id="list-definition">
  88. <div>
  89. <%= render_query_columns_selection(query) %>
  90. </div>
  91. </div>
  92. <% end %>
  93. <% end %>
  94. </div>
  95. <%= javascript_tag do %>
  96. $(document).ready(function(){
  97. $("input[name='query[visibility]']").change(function(){
  98. var roles_checked = $('#query_visibility_1').is(':checked');
  99. var private_checked = $('#query_visibility_0').is(':checked');
  100. $("input[name='query[role_ids][]'][type=checkbox]").attr('disabled', !roles_checked);
  101. if (!private_checked) $("input.disable-unless-private").attr('checked', false);
  102. $("input.disable-unless-private").attr('disabled', !private_checked);
  103. }).trigger('change');
  104. });
  105. $(function ($) {
  106. $('input[name=display_type]').change(function () {
  107. var option = $('input[name=display_type]:checked').val();
  108. if (option == 'board') {
  109. $('fieldset#columns, fieldset#sort, p#default_columns, p#group_by').hide();
  110. } else {
  111. $('fieldset#columns, fieldset#sort, p#default_columns, p#group_by').show();
  112. }
  113. }).change();
  114. });
  115. <% end %>