Эх сурвалжийг харах

[search] Preparation for JSON queries

Enrico Berti 12 жил өмнө
parent
commit
d722b97

+ 0 - 10
apps/search/src/search/templates/admin_core_template.mako

@@ -543,16 +543,6 @@ ${ commonheader(_('Search'), "search", user) | n,unicode }
     });
     $("#content-editor").freshereditor("edit", true);
 
-    function genericFormatDate(val, item, format){
-      var d = moment(Mustache.render(val, item));
-      if (d.isValid()) {
-        return d.format(format);
-      }
-      else {
-        return Mustache.render(val, item);
-      }
-    }
-
     // Force refresh on tab change
     $("a[data-toggle='tab']").on("shown", function (e) {
       if ($(e.target).attr("href") == "#source") {

+ 0 - 10
apps/search/src/search/templates/search.mako

@@ -152,16 +152,6 @@ ${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
             doc.update(response['highlighting'][doc['id']])
         %>
 
-        function genericFormatDate(val, item, format){
-          var d = moment(Mustache.render(val, item));
-          if (d.isValid()) {
-            return d.format(format);
-          }
-          else {
-            return Mustache.render(val, item);
-          }
-        }
-
         var _mustacheTmpl = fixTemplateDots($("#mustacheTmpl").text());
         $.each(${ json.dumps([result for result in docs]) | n,unicode }, function (index, item) {
           addTemplateFunctions(item);

+ 3 - 0
apps/search/src/search/views.py

@@ -73,6 +73,9 @@ def index(request):
     core = request.COOKIES.get('hueSearchLastCore', cores['status'].keys()[0])
     hue_core = Core.objects.get_or_create(name=core)
 
+  if request.GET.get('format') == 'json':
+    return HttpResponse(json.dumps(augment_solr_response(response, hue_core.facets.get_data())), mimetype="application/json")
+
   return render('search.mako', request, {
     'search_form': search_form,
     'response': augment_solr_response(response, hue_core.facets.get_data()),

+ 9 - 0
apps/search/static/js/search.utils.js

@@ -18,6 +18,15 @@ function addTemplateFunctions(item) {
   if (Mustache == "undefined") {
     return;
   }
+  function genericFormatDate(val, item, format) {
+    var d = moment(Mustache.render(val, item));
+    if (d.isValid()) {
+      return d.format(format);
+    }
+    else {
+      return Mustache.render(val, item);
+    }
+  }
 
   item.preview = function () {
     return function (val) {