Fixed JSON escaping of filters (#11929).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10465 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-09-25 18:23:11 +00:00
parent 18d1c62ca8
commit 917a89fbf7
4 changed files with 24 additions and 11 deletions
+5
View File
@@ -1029,6 +1029,11 @@ module ApplicationHelper
content_tag(:a, name, {:href => '#', :onclick => "#{function}; return false;"}.merge(html_options))
end
# Helper to render JSON in views
def raw_json(arg)
arg.to_json.to_s.gsub('/', '\/').html_safe
end
def back_url
url = params[:back_url]
if url.nil? && referer = request.env['HTTP_REFERER']
+5 -5
View File
@@ -1,12 +1,12 @@
<%= javascript_tag do %>
var operatorLabels = <%= raw Query.operators_labels.to_json %>;
var operatorByType = <%= raw Query.operators_by_filter_type.to_json %>;
var availableFilters = <%= raw query.available_filters_as_json.to_json %>;
var labelDayPlural = "<%= raw escape_javascript(l(:label_day_plural)) %>";
var operatorLabels = <%= raw_json Query.operators_labels %>;
var operatorByType = <%= raw_json Query.operators_by_filter_type %>;
var availableFilters = <%= raw_json query.available_filters_as_json %>;
var labelDayPlural = <%= raw_json l(:label_day_plural) %>;
$(document).ready(function(){
initFilters();
<% query.filters.each do |field, options| %>
addFilter("<%= field %>", <%= raw query.operator_for(field).to_json %>, <%= raw query.values_for(field).to_json %>);
addFilter("<%= field %>", <%= raw_json query.operator_for(field) %>, <%= raw_json query.values_for(field) %>);
<% end %>
});
<% end %>