Browse Source

HUE-7875 [dashboard] Better experience when trying to retrieve a table document with no PK

Romain Rigaux 7 years ago
parent
commit
03cdf8f

+ 15 - 8
desktop/libs/dashboard/src/dashboard/static/dashboard/js/search.ko.js

@@ -2438,8 +2438,8 @@ var SearchViewModel = function (collection_json, query_json, initial_json, is_gr
         data = JSON.bigdataParse(data);
         var details = [];
         doc.details.removeAll();
-        if (data.status == 0) {
 
+        if (data.status == 0) {
           $.each(data.doc.doc, function (key, val) {
             var _field = ko.mapping.fromJS({
               key: key,
@@ -2452,17 +2452,24 @@ var SearchViewModel = function (collection_json, query_json, initial_json, is_gr
             });
             details.push(_field);
           });
-        }
-        else if (data.status == 1) {
-          $(document).trigger("info", data.message);
+        } else if (data.status == 1) {
           details.push(ko.mapping.fromJS({
-            key: '',
-            value: ''
+            key: 'Warning',
+            value: data.message
           }));
-        }
-        else {
+          $.each(doc.item, function (key, val) {
+            if (key != '__ko_mapping__') {
+              details.push(ko.mapping.fromJS({
+                key: key,
+                value: val,
+                hasChanged: false
+              }));
+            }
+          });
+        } else {
           $(document).trigger("error", data.message);
         }
+
         doc.details(details);
         doc.originalDetails(ko.toJSON(doc.details()));
         if (callback) {

+ 1 - 1
desktop/libs/dashboard/src/dashboard/templates/common_search.mako

@@ -1058,7 +1058,7 @@ ${ dashboard.layout_skeleton(suffix='search') }
       <a href="javascript:void(0)" data-bind="visible: showEdit() && originalDetails() != ko.toJSON(details), click: $root.updateDocument" title="${ _('Update this document') }">
         <i class="fa fa-save fa-fw"></i>
       </a>
-      <a href="javascript:void(0)" data-bind="visible: externalLink(), attr: { href: externalLink}" target="_blank" title="${ _('Show original document') }">
+      <a href="javascript:void(0)" data-bind="visible: externalLink(), attr: { href: externalLink }" target="_blank" title="${ _('Show original document') }">
         <i class="fa fa-external-link fa-fw"></i>
       </a>
     </div>