From 96b4ac12cbc9a89a6e29d50764ed668102c3c93a Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 1 Oct 2007 10:44:45 +0000 Subject: [PATCH] Added a checkbox on custom query form to explicitly say if the query uses default columns or not. git-svn-id: http://redmine.rubyforge.org/svn/trunk@783 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/queries_controller.rb | 4 +++- app/models/query.rb | 11 +++++++---- app/views/queries/_columns.rhtml | 7 +++++++ app/views/queries/_form.rhtml | 10 ++++------ lang/bg.yml | 1 + lang/cs.yml | 1 + lang/de.yml | 1 + lang/en.yml | 1 + lang/es.yml | 1 + lang/fr.yml | 1 + lang/it.yml | 1 + lang/ja.yml | 1 + lang/nl.yml | 1 + lang/pl.yml | 1 + lang/pt-br.yml | 1 + lang/pt.yml | 1 + lang/ro.yml | 1 + lang/sv.yml | 1 + lang/zh.yml | 1 + 19 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 app/views/queries/_columns.rhtml diff --git a/app/controllers/queries_controller.rb b/app/controllers/queries_controller.rb index fce001cd..7c8460dd 100644 --- a/app/controllers/queries_controller.rb +++ b/app/controllers/queries_controller.rb @@ -31,6 +31,7 @@ class QueriesController < ApplicationController @query.user = logged_in_user @query.executed_by = logged_in_user @query.is_public = false unless current_role.allowed_to?(:manage_public_queries) + @query.column_names = nil if params[:default_columns] params[:fields].each do |field| @query.add_filter(field, params[:operators][field], params[:values][field]) @@ -52,7 +53,8 @@ class QueriesController < ApplicationController end if params[:fields] @query.attributes = params[:query] @query.is_public = false unless current_role.allowed_to?(:manage_public_queries) - + @query.column_names = nil if params[:default_columns] + if @query.save flash[:notice] = l(:notice_successful_update) redirect_to :controller => 'projects', :action => 'list_issues', :id => @project, :query_id => @query diff --git a/app/models/query.rb b/app/models/query.rb index c3d9d56e..400572eb 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -208,11 +208,10 @@ class Query < ActiveRecord::Base end def columns - if column_names && !column_names.empty? - available_columns.select {|c| column_names.include?(c.name) } - else - # default columns + if has_default_columns? available_columns.select {|c| c.default? } + else + available_columns.select {|c| column_names.include?(c.name) } end end @@ -225,6 +224,10 @@ class Query < ActiveRecord::Base def has_column?(column) column_names && column_names.include?(column.name) end + + def has_default_columns? + column_names.nil? || column_names.empty? + end def statement # project/subprojects clause diff --git a/app/views/queries/_columns.rhtml b/app/views/queries/_columns.rhtml new file mode 100644 index 00000000..f233f8ef --- /dev/null +++ b/app/views/queries/_columns.rhtml @@ -0,0 +1,7 @@ +<% content_tag 'fieldset', :id => 'columns', :style => (query.has_default_columns? ? 'display:none;' : nil) do %> +<%= l(:field_column_names) %> +<% query.available_columns.each do |column| %> +
+<% end %> +<%= hidden_field_tag 'query[column_names][]', '' %> +<% end %> diff --git a/app/views/queries/_form.rhtml b/app/views/queries/_form.rhtml index b4a4987c..a6b5a496 100644 --- a/app/views/queries/_form.rhtml +++ b/app/views/queries/_form.rhtml @@ -10,13 +10,11 @@ <%= check_box 'query', 'is_public' %>

<% end %> -

-<% @query.available_columns.each do |column| %> -<%= check_box_tag 'query[column_names][]', column.name, @query.has_column?(column) %> <%= l("field_#{column.name}") %>
-<% end %> -<%= hidden_field_tag 'query[column_names][]', '' %> -

+

+<%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns', + :onchange => 'if (this.checked) {Element.hide("columns")} else {Element.show("columns")}' %>

+<%= render :partial => 'queries/columns', :locals => {:query => query}%> <%= render :partial => 'queries/filters', :locals => {:query => query}%> diff --git a/lang/bg.yml b/lang/bg.yml index d576142d..231d5932 100644 --- a/lang/bg.yml +++ b/lang/bg.yml @@ -512,3 +512,4 @@ enumeration_activities: Дейности (time tracking) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/cs.yml b/lang/cs.yml index 56900263..3415677e 100644 --- a/lang/cs.yml +++ b/lang/cs.yml @@ -512,3 +512,4 @@ label_added_time_by: Added by %s %s ago field_estimated_hours: Estimated time label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/de.yml b/lang/de.yml index f2b5b069..c20cbf4e 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -512,3 +512,4 @@ enumeration_activities: Aktivitäten (Zeiterfassung) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/en.yml b/lang/en.yml index 6e23f377..383b4915 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -423,6 +423,7 @@ label_updated_time: Updated %s ago label_jump_to_a_project: Jump to a project... label_file_plural: Files label_changeset_plural: Changesets +label_default_columns: Default columns button_login: Login button_submit: Submit diff --git a/lang/es.yml b/lang/es.yml index 82b0908a..e467a567 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -512,3 +512,4 @@ enumeration_activities: Activities (time tracking) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/fr.yml b/lang/fr.yml index 68d32977..129e91e4 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -423,6 +423,7 @@ label_updated_time: Mis à jour il y a %s label_jump_to_a_project: Aller à un projet... label_file_plural: Fichiers label_changeset_plural: Révisions +label_default_columns: Colonnes par défaut button_login: Connexion button_submit: Soumettre diff --git a/lang/it.yml b/lang/it.yml index 54b00858..3b16097e 100644 --- a/lang/it.yml +++ b/lang/it.yml @@ -512,3 +512,4 @@ enumeration_activities: Attività (time tracking) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/ja.yml b/lang/ja.yml index 0e2628c6..46c292b2 100644 --- a/lang/ja.yml +++ b/lang/ja.yml @@ -513,3 +513,4 @@ enumeration_activities: 作業分類 (時間トラッキング) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/nl.yml b/lang/nl.yml index 91604074..cc87f311 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -513,3 +513,4 @@ text_comma_separated: Multiple values allowed (comma separated). label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/pl.yml b/lang/pl.yml index a61974af..a575caf2 100644 --- a/lang/pl.yml +++ b/lang/pl.yml @@ -512,3 +512,4 @@ field_estimated_hours: Szacowany czas label_file_plural: Pliki label_changeset_plural: Zestawienia zmian field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/pt-br.yml b/lang/pt-br.yml index e8f34b6d..f10a4e9b 100644 --- a/lang/pt-br.yml +++ b/lang/pt-br.yml @@ -512,3 +512,4 @@ enumeration_activities: Atividades (time tracking) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/pt.yml b/lang/pt.yml index f7cb5f91..0bab2d3f 100644 --- a/lang/pt.yml +++ b/lang/pt.yml @@ -512,3 +512,4 @@ enumeration_activities: Atividades (time tracking) label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/ro.yml b/lang/ro.yml index d4cd69b3..bc9100ff 100644 --- a/lang/ro.yml +++ b/lang/ro.yml @@ -512,3 +512,4 @@ label_index_by_title: Index by title label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/sv.yml b/lang/sv.yml index ed5106a1..83488a4b 100644 --- a/lang/sv.yml +++ b/lang/sv.yml @@ -513,3 +513,4 @@ field_comments: Comment label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns diff --git a/lang/zh.yml b/lang/zh.yml index ec286878..07d57c85 100644 --- a/lang/zh.yml +++ b/lang/zh.yml @@ -515,3 +515,4 @@ label_wiki_page: Wiki page label_file_plural: Files label_changeset_plural: Changesets field_column_names: Columns +label_default_columns: Default columns