Browse Source

HUE-3352 [home] If the user only has one folder that is shared with the user open it by default

Johan Ahlen 9 years ago
parent
commit
13bb359

+ 15 - 1
desktop/core/src/desktop/static/desktop/js/fileBrowser/hueFileEntry.js

@@ -34,6 +34,7 @@
    * @param {Function} options.trashEntry - The observable keeping track of the trash directory
    * @param {HueFolder} options.parent
    * @param {string} options.app - Currently only 'documents' is supported
+   * @param {string} options.user
    *
    * @constructor
    */
@@ -45,6 +46,7 @@
     self.definition = ko.observable(options.definition);
     self.assistHelper = options.assistHelper;
     self.app = options.app;
+    self.user = options.user;
 
     self.document = ko.observable();
 
@@ -72,6 +74,10 @@
       return perms && (perms.read.users.length || perms.read.groups.length || perms.write.users.length || perms.write.groups.length);
     });
 
+    self.isSharedWithMe = ko.pureComputed(function () {
+      return self.user !== self.definition().owner;
+    });
+
     self.entriesToDelete = ko.observableArray();
 
     self.selected = ko.observable(false);
@@ -205,6 +211,7 @@
         name: '"' + query + '"'
       },
       app: self.app,
+      user: self.user,
       parent: owner
     });
 
@@ -226,6 +233,7 @@
             assistHelper: self.assistHelper,
             definition: definition,
             app: self.app,
+            user: self.user,
             parent: self
           });
           if (!entry.isTrash()) {
@@ -292,6 +300,7 @@
               assistHelper: self.assistHelper,
               definition: definition,
               app: self.app,
+              user: self.user,
               parent: self
             });
             if (entry.isTrash()) {
@@ -318,12 +327,17 @@
               assistHelper: self.assistHelper,
               definition: data.parent,
               app: self.app,
+              user: self.user,
               parent: null
             });
           }
           self.loading(false);
           self.loaded(true);
-          if (callback && typeof callback === 'function') {
+
+          if (self.isRoot() && self.entries().length === 1 && self.entries()[0].definition().type === 'directory' && self.entries()[0].isSharedWithMe()) {
+            self.activeEntry(self.entries()[0]);
+            self.activeEntry().load(callback);
+          } else if (callback && typeof callback === 'function') {
             callback();
           }
         },

+ 12 - 0
desktop/core/src/desktop/static/desktop/js/home2.vm.js

@@ -27,9 +27,18 @@
   }
 }(this, function (ko, AssistHelper, HueFileEntry) {
 
+
+  /**
+   * @param {Object} options
+   * @param {string} options.user
+   * @param {Object} options.i18n
+   *
+   * @constructor
+   */
   function HomeViewModel(options) {
     var self = this;
 
+    self.user = options.user;
     self.assistHelper = AssistHelper.getInstance(options);
     self.isLeftPanelVisible = ko.observable();
     self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
@@ -41,6 +50,7 @@
       trashEntry: self.trashEntry,
       assistHelper: self.assistHelper,
       app: 'documents',
+      user: self.user,
       definition: {
         name: '/'
       }
@@ -63,6 +73,7 @@
       trashEntry: self.trashEntry,
       assistHelper: self.assistHelper,
       app: 'documents',
+      user: self.user,
       definition: {
         uuid: location.getParameter('uuid'),
         name: 'unknown',
@@ -95,6 +106,7 @@
       trashEntry: self.trashEntry,
       assistHelper: self.assistHelper,
       app: 'documents',
+      user: self.user,
       definition: {
         name: '',
         type: 'directory',

+ 3 - 0
desktop/core/src/desktop/templates/assist.mako

@@ -897,6 +897,7 @@ from desktop.views import _ko
       /**
        * @param {Object} options
        * @param {AssistHelper} options.assistHelper
+       * @param {string} options.user
        * @param {Object} options.i18n
        * @constructor
        **/
@@ -909,6 +910,7 @@ from desktop.views import _ko
           trashEntry: ko.observable,
           assistHelper: options.assistHelper,
           app: 'documents',
+          user: options.user,
           definition: {
             name: '/',
             type: 'directory'
@@ -1026,6 +1028,7 @@ from desktop.views import _ko
           % if USE_NEW_EDITOR.get():
           self.availablePanels.push(new AssistInnerPanel({
             panelData: new AssistDocumentsPanel({
+              user: params.user,
               assistHelper: self.assistHelper,
               i18n: i18n
             }),