Mercurial > hg > soundsoftware-site
diff app/helpers/queries_helper.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | 0c939c159af4 |
children | 433d4f72a19b |
line wrap: on
line diff
--- a/app/helpers/queries_helper.rb Fri Feb 24 18:36:29 2012 +0000 +++ b/app/helpers/queries_helper.rb Fri Feb 24 19:09:32 2012 +0000 @@ -1,3 +1,5 @@ +# encoding: utf-8 +# # Redmine - project management software # Copyright (C) 2006-2011 Jean-Philippe Lang # @@ -5,31 +7,31 @@ # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module QueriesHelper - + def operators_for_select(filter_type) Query.operators_by_filter_type[filter_type].collect {|o| [l(Query.operators[o]), o]} end - + def column_header(column) column.sortable ? sort_header_tag(column.name.to_s, :caption => column.caption, - :default_order => column.default_order) : - content_tag('th', column.caption) + :default_order => column.default_order) : + content_tag('th', h(column.caption)) end - + def column_content(column, issue) value = column.value(issue) - + case value.class.name when 'String' if column.name == :subject @@ -45,7 +47,7 @@ if column.name == :done_ratio progress_bar(value, :width => '80px') else - value.to_s + h(value.to_s) end when 'User' link_to_user value @@ -74,27 +76,30 @@ @query.project = @project session[:query] = {:id => @query.id, :project_id => @query.project_id} sort_clear + elsif api_request? || params[:set_filter] || session[:query].nil? || session[:query][:project_id] != (@project ? @project.id : nil) + # Give it a name, required to be valid + @query = Query.new(:name => "_") + @query.project = @project + build_query_from_params + session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} else - if api_request? || params[:set_filter] || session[:query].nil? || session[:query][:project_id] != (@project ? @project.id : nil) - # Give it a name, required to be valid - @query = Query.new(:name => "_") - @query.project = @project - if params[:fields] || params[:f] - @query.filters = {} - @query.add_filters(params[:fields] || params[:f], params[:operators] || params[:op], params[:values] || params[:v]) - else - @query.available_filters.keys.each do |field| - @query.add_short_filter(field, params[field]) if params[field] - end - end - @query.group_by = params[:group_by] - @query.column_names = params[:c] || (params[:query] && params[:query][:column_names]) - session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :group_by => @query.group_by, :column_names => @query.column_names} - else - @query = Query.find_by_id(session[:query][:id]) if session[:query][:id] - @query ||= Query.new(:name => "_", :project => @project, :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names]) - @query.project = @project + # retrieve from session + @query = Query.find_by_id(session[:query][:id]) if session[:query][:id] + @query ||= Query.new(:name => "_", :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names]) + @query.project = @project + end + end + + def build_query_from_params + if params[:fields] || params[:f] + @query.filters = {} + @query.add_filters(params[:fields] || params[:f], params[:operators] || params[:op], params[:values] || params[:v]) + else + @query.available_filters.keys.each do |field| + @query.add_short_filter(field, params[field]) if params[field] end end + @query.group_by = params[:group_by] || (params[:query] && params[:query][:group_by]) + @query.column_names = params[:c] || (params[:query] && params[:query][:column_names]) end end