Pārlūkot izejas kodu

HUE-7296 [frontend] Improve ApiHelper fetchDocument function to optionally also return the contents

Johan Ahlen 8 gadi atpakaļ
vecāks
revīzija
5a21282

+ 19 - 10
desktop/core/src/desktop/static/desktop/js/apiHelper.js

@@ -307,6 +307,7 @@ var ApiHelper = (function () {
       if (options.errorCallback) {
       if (options.errorCallback) {
         options.errorCallback(errorMessage);
         options.errorCallback(errorMessage);
       }
       }
+      return errorMessage;
     };
     };
   };
   };
 
 
@@ -807,25 +808,33 @@ var ApiHelper = (function () {
    * @param {Function} options.successCallback
    * @param {Function} options.successCallback
    * @param {Function} [options.errorCallback]
    * @param {Function} [options.errorCallback]
    * @param {boolean} [options.silenceErrors]
    * @param {boolean} [options.silenceErrors]
+   * @param {boolean} [options.fetchContents]
    *
    *
    * @param {number} options.uuid
    * @param {number} options.uuid
    */
    */
   ApiHelper.prototype.fetchDocument = function (options) {
   ApiHelper.prototype.fetchDocument = function (options) {
     var self = this;
     var self = this;
+    var promise = $.Deferred();
     $.ajax({
     $.ajax({
       url: DOCUMENTS_API,
       url: DOCUMENTS_API,
       data: {
       data: {
-        uuid: options.uuid
+        uuid: options.uuid,
+        data: !!options.fetchContents
       },
       },
       success: function (data) {
       success: function (data) {
         if (! self.successResponseIsError(data)) {
         if (! self.successResponseIsError(data)) {
-          options.successCallback(data);
+          promise.resolve(data)
         } else {
         } else {
-          self.assistErrorCallback(options)(data);
+          promise.reject(self.assistErrorCallback({
+            silenceErrors: options.silenceErrors
+          }));
         }
         }
       }
       }
     })
     })
-    .fail(self.assistErrorCallback(options));
+    .fail(function (errorResponse) {
+      promise.reject(self.assistErrorHandler(errorResponse))
+    });
+    return promise;
   };
   };
 
 
   /**
   /**
@@ -839,7 +848,7 @@ var ApiHelper = (function () {
    */
    */
   ApiHelper.prototype.createDocumentsFolder = function (options) {
   ApiHelper.prototype.createDocumentsFolder = function (options) {
     var self = this;
     var self = this;
-    self.simplePost("/desktop/api2/doc/mkdir", {
+    self.simplePost(DOCUMENTS_API + 'mkdir', {
       parent_uuid: ko.mapping.toJSON(options.parentUuid),
       parent_uuid: ko.mapping.toJSON(options.parentUuid),
       name: ko.mapping.toJSON(options.name)
       name: ko.mapping.toJSON(options.name)
     }, options);
     }, options);
@@ -856,7 +865,7 @@ var ApiHelper = (function () {
    */
    */
   ApiHelper.prototype.updateDocument = function (options) {
   ApiHelper.prototype.updateDocument = function (options) {
     var self = this;
     var self = this;
-    self.simplePost("/desktop/api2/doc/update", {
+    self.simplePost(DOCUMENTS_API + 'update', {
       uuid: ko.mapping.toJSON(options.uuid),
       uuid: ko.mapping.toJSON(options.uuid),
       name: options.name
       name: options.name
     }, options);
     }, options);
@@ -874,7 +883,7 @@ var ApiHelper = (function () {
   ApiHelper.prototype.uploadDocument = function (options) {
   ApiHelper.prototype.uploadDocument = function (options) {
     var self = this;
     var self = this;
     $.ajax({
     $.ajax({
-      url: '/desktop/api2/doc/import',
+      url: DOCUMENTS_API + 'import',
       type: 'POST',
       type: 'POST',
       success: function (data) {
       success: function (data) {
         if (! self.successResponseIsError(data)) {
         if (! self.successResponseIsError(data)) {
@@ -910,7 +919,7 @@ var ApiHelper = (function () {
    */
    */
   ApiHelper.prototype.moveDocument = function (options) {
   ApiHelper.prototype.moveDocument = function (options) {
     var self = this;
     var self = this;
-    self.simplePost("/desktop/api2/doc/move", {
+    self.simplePost(DOCUMENTS_API + 'move', {
       source_doc_uuid: ko.mapping.toJSON(options.sourceId),
       source_doc_uuid: ko.mapping.toJSON(options.sourceId),
       destination_doc_uuid: ko.mapping.toJSON(options.destinationId)
       destination_doc_uuid: ko.mapping.toJSON(options.destinationId)
     }, options);
     }, options);
@@ -927,7 +936,7 @@ var ApiHelper = (function () {
    */
    */
   ApiHelper.prototype.deleteDocument = function (options) {
   ApiHelper.prototype.deleteDocument = function (options) {
     var self = this;
     var self = this;
-    self.simplePost("/desktop/api2/doc/delete", {
+    self.simplePost(DOCUMENTS_API + 'delete', {
       uuid: ko.mapping.toJSON(options.uuid),
       uuid: ko.mapping.toJSON(options.uuid),
       skip_trash: ko.mapping.toJSON(options.skipTrash || false)
       skip_trash: ko.mapping.toJSON(options.skipTrash || false)
     }, options);
     }, options);
@@ -943,7 +952,7 @@ var ApiHelper = (function () {
    */
    */
   ApiHelper.prototype.restoreDocument = function (options) {
   ApiHelper.prototype.restoreDocument = function (options) {
     var self = this;
     var self = this;
-    self.simplePost("/desktop/api2/doc/restore", {
+    self.simplePost(DOCUMENTS_API + 'restore', {
       uuids: ko.mapping.toJSON(options.uuids)
       uuids: ko.mapping.toJSON(options.uuids)
     }, options);
     }, options);
   };
   };

+ 11 - 13
desktop/core/src/desktop/static/desktop/js/document/hueDocument.js

@@ -161,19 +161,17 @@ var HueDocument = (function() {
 
 
     var fetchFunction = function () {
     var fetchFunction = function () {
       self.apiHelper.fetchDocument({
       self.apiHelper.fetchDocument({
-        uuid: self.fileEntry.definition().uuid,
-        successCallback: function (data) {
-          self.prettifyUserNames(data.document.perms.write.users);
-          self.prettifyUserNames(data.document.perms.read.users);
-          self.definition(data.document);
-          self.loading(false);
-          self.loaded(true);
-        },
-        errorCallback: function () {
-          self.hasErrors(true);
-          self.loading(false);
-          self.loaded(true);
-        }
+        uuid: self.fileEntry.definition().uuid
+      }).done(function (data) {
+        self.prettifyUserNames(data.document.perms.write.users);
+        self.prettifyUserNames(data.document.perms.read.users);
+        self.definition(data.document);
+        self.loading(false);
+        self.loaded(true);
+      }).fail(function () {
+        self.hasErrors(true);
+        self.loading(false);
+        self.loaded(true);
       })
       })
     };
     };