ソースを参照

[search] Escape HTML cells in gridlayout

Romain Rigaux 11 年 前
コミット
d14fab1

+ 9 - 10
apps/search/src/search/models.py

@@ -19,6 +19,7 @@ import itertools
 import json
 import logging
 import math
+import numbers
 import re
 
 from django.db import models
@@ -30,8 +31,6 @@ from desktop.lib.i18n import smart_unicode
 
 from search.api import SolrApi
 from search.conf import SOLR_URL
-import numbers
-
 
 
 LOG = logging.getLogger(__name__)
@@ -533,14 +532,14 @@ def augment_solr_response2(response, collection, query, solr_query):
       # pivot_facet          
 
   # HTML escaping
-#  for doc in response['response']['docs']:  
-#    for field, value in doc.iteritems():
-#      if isinstance(value, numbers.Number):
-#        escaped_value = value
-#      else:
-#        value = smart_unicode(value, errors='replace')
-#        escaped_value = escape(value)
-#      doc[field] = escaped_value
+  for doc in response['response']['docs']:  
+    for field, value in doc.iteritems():
+      if isinstance(value, numbers.Number):
+        escaped_value = value
+      else:
+        value = smart_unicode(value, errors='replace')
+        escaped_value = escape(value)
+      doc[field] = escaped_value
       
   highlighted_fields = response.get('highlighting', {}).keys()
   if highlighted_fields:

+ 1 - 1
apps/search/src/search/templates/search2.mako

@@ -448,7 +448,7 @@ ${ commonheader(_('Search'), "search", user, "60px") | n,unicode }
       <!-- ko if: type() == 'range' -->
       <div data-bind="pieChart: {data: {counts: $parent.counts, widget_id: $parent.id}, transformer: rangePieChartDataTransformer,
          onClick: function(d){ viewModel.query.selectRangeFacet({count: d.data.obj.value, widget_id: d.data.obj.widget_id, from: d.data.obj.from, to: d.data.obj.to, cat: d.data.obj.field}) }, 
-         onComplete: function(){viewModel.getWidgetById($parent.id).isLoading(false)}}" />
+         onComplete: function(){ viewModel.getWidgetById($parent.id).isLoading(false)} }" />
       <!-- /ko -->
       <!-- ko if: type() != 'range' -->
       <div data-bind="pieChart: {data: {counts: $parent.counts, widget_id: $parent.id}, field: field, fqs: $root.query.fqs, transformer: pieChartDataTransformer, onClick: function(d){viewModel.query.toggleFacet({facet: d.data.obj, widget_id: d.data.obj.widget_id})}, onComplete: function(){viewModel.getWidgetById($parent.id).isLoading(false)}}" />

+ 1 - 0
apps/search/static/js/search.ko.js

@@ -421,6 +421,7 @@ var Collection = function (vm, collection) {
   };
   
   self.translateSelectedField = function (index, direction) {
+	var array = self.template.fieldsSelected();
     if (direction == 'left') {
 	  self.template.fieldsSelected.splice(index - 1, 2, array[index], array[index - 1]);
     } else {