فهرست منبع

HUE-6756 [home] Fix race condition when assist documents is open while visiting home with type parameter set

Johan Ahlen 8 سال پیش
والد
کامیت
a8f3b45
2فایلهای تغییر یافته به همراه21 افزوده شده و 9 حذف شده
  1. 19 8
      desktop/core/src/desktop/static/desktop/js/apiHelper.js
  2. 2 1
      desktop/core/src/desktop/templates/assist.mako

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

@@ -675,11 +675,19 @@ var ApiHelper = (function () {
   ApiHelper.prototype.fetchDocuments = function (options) {
     var self = this;
 
-    var promise = self.queueManager.getQueued(DOCUMENTS_API, options.uuid);
+    var id = '';
+    if (options.uuid) {
+      id += options.uuid;
+    }
+    if (options.type) {
+      id += options.type;
+    }
+
+    var promise = self.queueManager.getQueued(DOCUMENTS_API, id);
     var firstInQueue = typeof promise === 'undefined';
     if (firstInQueue) {
       promise = $.Deferred();
-      self.queueManager.addToQueue(promise, DOCUMENTS_API, options.uuid);
+      self.queueManager.addToQueue(promise, DOCUMENTS_API, id);
     }
 
     promise.done(options.successCallback).fail(self.assistErrorCallback(options));
@@ -688,15 +696,18 @@ var ApiHelper = (function () {
       return;
     }
 
-    var types = options.type ? [options.type, 'directory'] : ['directory'];
+    var data = {
+      uuid: options.uuid
+    };
+
+    if (options.type) {
+      data.type = ['directory', options.type];
+    }
 
     $.ajax({
       url: DOCUMENTS_API,
-      data: {
-        uuid: options.uuid,
-        type: types
-      },
-      traditional: !!options.type,
+      data: data,
+      traditional: true,
       success: function (data) {
         if (! self.successResponseIsError(data)) {
           promise.resolve(data);

+ 2 - 1
desktop/core/src/desktop/templates/assist.mako

@@ -1130,7 +1130,8 @@ from notebook.conf import get_ordered_interpreters
         self.activeEntry = ko.observable();
         var root = new HueFileEntry({
           activeEntry: self.activeEntry,
-          trashEntry: ko.observable,
+          trashEntry: ko.observable(),
+          serverTypeFilter: ko.observable(),
           apiHelper: options.apiHelper,
           app: 'documents',
           user: options.user,