summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-10-01 10:44:45 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-10-01 10:44:45 +0000
commit96b4ac12cbc9a89a6e29d50764ed668102c3c93a (patch)
tree9e2fff63ce11ee5f678a35e3f20d99dac05deb3e
parente5f5671d66295100d719d4712a03015268d65e02 (diff)
downloadredmine-96b4ac12cbc9a89a6e29d50764ed668102c3c93a.tar.gz
redmine-96b4ac12cbc9a89a6e29d50764ed668102c3c93a.zip
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
-rw-r--r--app/controllers/queries_controller.rb4
-rw-r--r--app/models/query.rb11
-rw-r--r--app/views/queries/_columns.rhtml7
-rw-r--r--app/views/queries/_form.rhtml10
-rw-r--r--lang/bg.yml1
-rw-r--r--lang/cs.yml1
-rw-r--r--lang/de.yml1
-rw-r--r--lang/en.yml1
-rw-r--r--lang/es.yml1
-rw-r--r--lang/fr.yml1
-rw-r--r--lang/it.yml1
-rw-r--r--lang/ja.yml1
-rw-r--r--lang/nl.yml1
-rw-r--r--lang/pl.yml1
-rw-r--r--lang/pt-br.yml1
-rw-r--r--lang/pt.yml1
-rw-r--r--lang/ro.yml1
-rw-r--r--lang/sv.yml1
-rw-r--r--lang/zh.yml1
19 files changed, 36 insertions, 11 deletions
diff --git a/app/controllers/queries_controller.rb b/app/controllers/queries_controller.rb
index fce001cd8..7c8460dd7 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 c3d9d56e3..400572eb2 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 000000000..f233f8ef6
--- /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 %>
+<legend><%= l(:field_column_names) %></legend>
+<% query.available_columns.each do |column| %>
+<label><%= check_box_tag 'query[column_names][]', column.name, query.has_column?(column) %> <%= l("field_#{column.name}") %></label><br />
+<% end %>
+<%= hidden_field_tag 'query[column_names][]', '' %>
+<% end %>
diff --git a/app/views/queries/_form.rhtml b/app/views/queries/_form.rhtml
index b4a4987cd..a6b5a496c 100644
--- a/app/views/queries/_form.rhtml
+++ b/app/views/queries/_form.rhtml
@@ -10,13 +10,11 @@
<%= check_box 'query', 'is_public' %></p>
<% end %>
-<p><label for="query_column_names"><%=l(:field_column_names)%></label>
-<% @query.available_columns.each do |column| %>
-<%= check_box_tag 'query[column_names][]', column.name, @query.has_column?(column) %> <%= l("field_#{column.name}") %><br />
-<% end %>
-<%= hidden_field_tag 'query[column_names][]', '' %>
-</p>
+<p><label for="query_default_columns"><%=l(:label_default_columns)%></label>
+<%= 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")}' %></p>
</div>
+<%= render :partial => 'queries/columns', :locals => {:query => query}%>
<%= render :partial => 'queries/filters', :locals => {:query => query}%>
</div>
diff --git a/lang/bg.yml b/lang/bg.yml
index d576142d1..231d59329 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 569002636..3415677ef 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 f2b5b069f..c20cbf4e4 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 6e23f377f..383b49150 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 82b0908a7..e467a5678 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 68d329774..129e91e4a 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 54b008580..3b16097e3 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 0e2628c60..46c292b22 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 916040747..cc87f3110 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 a61974afa..a575caf21 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 e8f34b6d7..f10a4e9b7 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 f7cb5f91a..0bab2d3f8 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 d4cd69b37..bc9100ff1 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 ed5106a13..83488a4b9 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 ec286878d..07d57c855 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