Просмотр исходного кода

[home2] Rename HueDirectory to HueFileEntry and drop the open observable

Johan Ahlen 10 лет назад
Родитель
Сommit
accf07d531

+ 16 - 29
desktop/core/src/desktop/static/desktop/js/documents/hueDirectory.js → desktop/core/src/desktop/static/desktop/js/fileBrowser/hueFileEntry.js

@@ -20,7 +20,7 @@
       'knockout'
     ], factory);
   } else {
-    root.HueDirectory = factory(ko);
+    root.HueFileEntry = factory(ko);
   }
 }(this, function (ko) {
 
@@ -34,13 +34,14 @@
    *
    * @constructor
    */
-  function HueDirectory (options) {
+  function HueFileEntry (options) {
     var self = this;
     self.parent = options.parent;
     self.definition = options.definition;
     self.assistHelper = options.assistHelper;
     self.name = self.definition.name.substring(self.definition.name.lastIndexOf('/') + 1);
     self.isRoot = self.name === '';
+    self.isDirectory = self.definition.type === 'directory';
     self.path = self.definition.name;
     self.app = options.app;
 
@@ -50,9 +51,8 @@
 
     self.uploading = ko.observable(false);
     self.uploadComplete = ko.observable(false);
-    self.uploadFailed = ko.observable(false)
+    self.uploadFailed = ko.observable(false);
 
-    self.open = ko.observable(false);
     self.entries = ko.observableArray([]);
 
     self.breadcrumbs = [];
@@ -61,15 +61,9 @@
       self.breadcrumbs.unshift(lastParent);
       lastParent = lastParent.parent;
     }
-
-    self.open.subscribe(function () {
-      if (! self.loaded()) {
-        self.load();
-      }
-    })
   }
 
-  HueDirectory.prototype.load = function () {
+  HueFileEntry.prototype.load = function () {
     var self = this;
     if (self.loading()) {
       return;
@@ -85,19 +79,12 @@
             return definition.name !== '/';
           });
           self.entries($.map(cleanEntries, function (definition) {
-            if (definition.type === "directory") {
-              return new HueDirectory({
-                assistHelper: self.assistHelper,
-                definition: definition,
-                app: self.app,
-                parent: self
-              })
-            } else {
-              return {
-                definition: definition,
-                path: self.path + definition.name
-              }
-            }
+            return new HueFileEntry({
+              assistHelper: self.assistHelper,
+              definition: definition,
+              app: self.app,
+              parent: self
+            })
           }));
           self.loading(false);
           self.loaded(true);
@@ -111,7 +98,7 @@
     }
   };
 
-  HueDirectory.prototype.delete = function () {
+  HueFileEntry.prototype.delete = function () {
     var self = this;
     if (self.app === 'documents') {
       self.assistHelper.deleteDocument({
@@ -121,7 +108,7 @@
     }
   };
 
-  HueDirectory.prototype.closeUploadModal = function () {
+  HueFileEntry.prototype.closeUploadModal = function () {
     var self = this;
     if (self.app === 'documents') {
       $('#importDocumentsModal').modal('hide');
@@ -135,7 +122,7 @@
     }, 400);
   };
 
-  HueDirectory.prototype.upload = function () {
+  HueFileEntry.prototype.upload = function () {
     var self = this;
     if (self.app === 'documents') {
       self.uploading(true);
@@ -160,7 +147,7 @@
     }
   };
 
-  HueDirectory.prototype.createDirectory = function (name) {
+  HueFileEntry.prototype.createDirectory = function (name) {
     var self = this;
     if (self.app === 'documents') {
       self.assistHelper.createDocumentsFolder({
@@ -171,5 +158,5 @@
     }
   };
 
-  return HueDirectory;
+  return HueFileEntry;
 }));

+ 5 - 5
desktop/core/src/desktop/static/desktop/js/home2.vm.js

@@ -19,13 +19,13 @@
     define([
       'knockout',
       'desktop/js/assist/assistHelper',
-      'desktop/js/documents/hueDirectory',
+      'desktop/js/fileBrowser/hueFileEntry',
       'knockout-mapping'
     ], factory);
   } else {
-    root.HomeViewModel = factory(ko, assistHelper, HueDirectory);
+    root.HomeViewModel = factory(ko, assistHelper, HueFileEntry);
   }
-}(this, function (ko, AssistHelper, HueDirectory) {
+}(this, function (ko, AssistHelper, HueFileEntry) {
 
   function HomeViewModel(options) {
     var self = this;
@@ -36,7 +36,7 @@
 
     self.documents = ko.observableArray([]);
 
-    self.currentDirectory = ko.observable(new HueDirectory({
+    self.currentDirectory = ko.observable(new HueFileEntry({
       assistHelper: self.assistHelper,
       app: 'documents',
       definition: {
@@ -44,7 +44,7 @@
       }
     }));
 
-    self.currentDirectory().open();
+    self.currentDirectory().load();
 
     self.shareFormDocId = ko.observable('');
     self.exportFormDocIds = ko.observable('');

+ 2 - 2
desktop/core/src/desktop/templates/file_browser.mako

@@ -277,7 +277,7 @@ from desktop.views import _ko
             <div class="fb-primary-col">
               <i class="fa fa-fw" data-bind="css: { 'fa-folder-o' : definition.type === 'directory', 'fa-file-o': definition.type !== 'directory' }"></i>
               <!-- ko if: definition.type === 'directory' -->
-              <a href="javascript: void(0);" data-bind="text: name, click: function () { $data.open(true); $parents[1].currentDirectory($data); }"></a>
+              <a href="javascript: void(0);" data-bind="text: name, click: function () { $data.load(); $parents[1].currentDirectory($data); }"></a>
               <!-- /ko -->
               <!-- ko ifnot: definition.type === 'directory' -->
               <a data-bind="text: definition.name, attr: { href: definition.absoluteUrl }"></a>
@@ -309,7 +309,7 @@ from desktop.views import _ko
 
       /**
        * @param {Object} params
-       * @param {HueDirectory} params.currentDirectory - Observable holding the current directory
+       * @param {HueFileEntry} params.currentDirectory - Observable holding the current directory
        * @constructor
        */
       function FileBrowser (params) {

+ 0 - 1
desktop/core/src/desktop/templates/home2.mako

@@ -266,7 +266,6 @@ ${ fileBrowser.fileBrowser() }
       if (location.getParameter('path')) {
         viewModel.openPath(location.getParameter('path'));
       }
-      viewModel.currentDirectory().open(true);
       ko.applyBindings(viewModel, $('#documentList')[0]);
 
 ##       ShareViewModel.initSharing("#documentShareModal");