From 286995696aa54f63c558a2a9421a33c168f6da4d Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 28 Nov 2012 14:03:02 +0100 Subject: [PATCH] SONAR-3825 move columns --- .../app/controllers/measures_controller.rb | 2 + .../WEB-INF/app/helpers/measures_helper.rb | 2 +- .../WEB-INF/app/models/measure_filter.rb | 1 - .../app/models/measure_filter_display_list.rb | 2 +- .../app/views/measures/_display_list.html.erb | 47 +++++++++++++++---- .../app/views/measures/search.html.erb | 32 +++++++++---- 6 files changed, 65 insertions(+), 21 deletions(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/measures_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/measures_controller.rb index 395b0f1690f..b2eaf2a9889 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/measures_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/measures_controller.rb @@ -31,7 +31,9 @@ class MeasuresController < ApplicationController else @filter = MeasureFilter.new end + puts "params:---------- #{params}" @filter.criteria=(params) + puts "criteria: ------------#{@filter.criteria}" @filter.enable_default_display @filter.execute(self, :user => current_user) end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/measures_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/measures_helper.rb index a3a14416f96..7d27e92ed4f 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/measures_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/measures_helper.rb @@ -22,7 +22,7 @@ module MeasuresHelper def list_column_html(filter, column) if column.sort? - html = link_to(h(column.name), filter.url_params.merge({:controller => 'measures', :action => 'search', :asc => (!filter.sort_asc?).to_s, :sort => column.key})) + html = link_to_function(h(column.name), "reloadParameters({asc:'#{(!filter.sort_asc?).to_s}', sort:'#{column.key}'})") else html=h(column.name) end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter.rb index ac5fdf6db2f..9ea3e4fe2a0 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter.rb @@ -102,7 +102,6 @@ class MeasureFilter < ActiveRecord::Base end def criteria=(hash) - @display = nil @criteria = {} hash.each_pair do |k, v| if k && v && !v.empty? && v!=[''] diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter_display_list.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter_display_list.rb index 9d7fb9771a1..90bdfe2188e 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter_display_list.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter_display_list.rb @@ -81,6 +81,6 @@ class MeasureFilterDisplayList < MeasureFilterDisplay PROPERTY_KEYS = Set.new(['cols', 'sort', 'asc', 'pageSize']) def url_params - @filter.criteria.delete_if { |k,v| !PROPERTY_KEYS.include?(k)} + @filter.criteria.select{ |k,v| PROPERTY_KEYS.include?(k)} end end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/measures/_display_list.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/measures/_display_list.html.erb index f690dc8a23e..5b32a375261 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/measures/_display_list.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/measures/_display_list.html.erb @@ -8,14 +8,40 @@ <% end @@ -41,17 +67,22 @@ $j("#add-metric").on("click", function (e) { var metric = $j("#select-metric option:selected").val(); cols.push('metric:' + metric); - window.location = window.location.href.replace(/&?cols\[\]=([^&]$|[^&]*)/g, '') + '&' + $j.map(cols, function (a) { + window.location = removeUrlAttr(decodeURI(window.location.href), 'cols\\[\\]') + '&' + $j.map(cols,function (a) { return 'cols[]=' + a; }).join('&'); }); $j("#exit-edit").on("click", function (e) { - window.location = window.location.href.replace(/&?edit=([^&]$|[^&]*)/g, ''); + var url = removeUrlAttr(decodeURI(window.location.href), 'cols\\[\\]'); + url = removeUrlAttr(url, 'edit'); + url += '&' + $j.map(cols,function (a) { + return 'cols[]=' + a; + }).join('&'); + window.location = url; }); <% end %> - +
<% if display_favourites %> @@ -70,10 +101,10 @@ <% end %> <% @filter.display.columns.each_with_index do |column, index| %> - <% end %> <% end %> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/measures/search.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/measures/search.html.erb index 7d8da93a2eb..ceedd209aa8 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/measures/search.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/measures/search.html.erb @@ -26,6 +26,18 @@ form.submit(); return false; } + function removeUrlAttr(url, attribute_key) { + var regexp = new RegExp("&?" + attribute_key + "=([^&]$|[^&]*)", "g"); + return url.replace(regexp, ''); + } + function reloadParameters(params) { + var url = decodeURI(window.location.href); + $j.each(params, function (key, value) { + url = removeUrlAttr(url, key); + url += '&'+ key + '=' + value; + }); + window.location = url; + } <% end %>
@@ -36,19 +48,19 @@ <% end %> <% if @filter.display - @filter.display.url_params.each_pair do |k, v| - if v.is_a?(String) + @filter.display.url_params.each do |k_v_array| + if k_v_array[1].is_a?(String) %> - <%= hidden_field_tag k, v -%> + <%= hidden_field_tag k_v_array[0], k_v_array[1] -%> <% else - v.each do |string_val| - %> - <%= hidden_field_tag "#{k}[]", string_val -%> - <% end - end - end - end + k_v_array[1].each do |string_val| %> + <%= hidden_field_tag "#{k_v_array[0]}[]", string_val -%> + <% end + end + end + end + %>
- <%= image_tag("controls/resultset_previous.png") -%> + + <%= image_tag("controls/resultset_previous.png") -%> <%= image_tag("bin_closed.png") -%> - <%= image_tag("controls/resultset_next.png") -%> + <%= image_tag("controls/resultset_next.png") -%>
-- 2.39.5