Bläddra i källkod

[search] Display whole json record when no fields are selected

Romain Rigaux 11 år sedan
förälder
incheckning
e9d9d0311b

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

@@ -337,7 +337,11 @@ ${ commonheader(_('Search'), "search", user, "60px") | n,unicode }
     <span>
       ## Todo add a toggle to show fields or not in non edit mode
       <strong>${ _('Fields') }</strong>
-      &nbsp;<a href="javascript: void(0)" id="selectAll" class="btn btn-inverse" data-bind="click: function(){$root.collection.template.fields([]); $('#selectAll').removeClass('btn-inverse')}"><i class="fa fa-check"></i></a>
+      &nbsp;
+      <a href="javascript: void(0)" id="selectAll" class="btn btn-inverse"
+        data-bind="click: function(){$root.collection.template.fields([]); $('#selectAll').removeClass('btn-inverse')}">
+        <i class="fa fa-square-o"></i>
+      </a>
       <div data-bind="foreach: $root.collection.fields">
         <input type="checkbox" data-bind="value: $data, checked: $root.collection.template.fields" />
         <span data-bind="text: '&nbsp;' + $data"></span>
@@ -359,6 +363,9 @@ ${ commonheader(_('Search'), "search", user, "60px") | n,unicode }
         <tr data-bind="visible: $root.results().length > 0, foreach: $root.collection.template.fields">
           <th data-bind="text: $data"></th>
         </tr>
+        <tr data-bind="visible: $root.collection.template.fields().length == 0">
+          <th>${ ('Document') }</th>
+        </tr>
       </thead>
       <tbody data-bind="foreach: $root.results">
         <tr class="result-row" data-bind="foreach: $data">

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

@@ -95,6 +95,7 @@ def search(request):
       
       response = SolrApi(SOLR_URL.get(), request.user).query2(solr_query, collection)
       response = augment_solr_response2(response, collection, solr_query)
+      print response
     except RestException, e:
       try:
         response['error'] = json.loads(e.message)['error']['msg']

+ 9 - 3
apps/search/static/js/search.ko.js

@@ -276,9 +276,15 @@ var SearchViewModel = function (collection_json, query_json) {
           // Table view
           $.each(data.response.docs, function (index, item) {
             var row = [];
-            $.each(self.collection.template.fields(), function (index, column) {
-              row.push(item[column]); // TODO: if null + some escaping
-            });
+            var fields = self.collection.template.fields();
+            // Field selection or whole record
+            if (fields.length != 0) {
+              $.each(self.collection.template.fields(), function (index, column) {
+                row.push(item[column]);
+              });
+            } else {
+              row.push(ko.mapping.toJSON(item)); 
+            }
             self.results.push(row);
           });
         }