Skip to content

Commit 8c72d88

Browse files
committed
load next level too
1 parent 2a9d847 commit 8c72d88

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

services/static-webserver/client/source/class/osparc/dashboard/WorkspacesAndFoldersTree.js

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,18 @@ qx.Class.define("osparc.dashboard.WorkspacesAndFoldersTree", {
108108
bindItem: (c, item, id) => {
109109
c.bindDefaultProperties(item, id);
110110
c.bindProperty("", "open", {
111-
converter(value, model, source, target) {
111+
converter(value, _model, _source, target) {
112112
const isOpen = target.isOpen();
113-
if (isOpen && !value.getLoaded()) {
113+
if (isOpen) {
114114
// eslint-disable-next-line no-underscore-dangle
115-
that.__populateFolder(value, value.getWorkspaceId(), value.getFolderId());
115+
that.__populateFolder(value, value.getWorkspaceId(), value.getFolderId())
116+
.then(folderModels => {
117+
// load next level too
118+
folderModels.forEach(folderModel => {
119+
// eslint-disable-next-line no-underscore-dangle
120+
that.__populateFolder(folderModel, folderModel.getWorkspaceId(), folderModel.getFolderId());
121+
})
122+
});
116123
}
117124
that.fireEvent("openChanged");
118125
return isOpen;
@@ -159,6 +166,9 @@ qx.Class.define("osparc.dashboard.WorkspacesAndFoldersTree", {
159166
const myWorkspaceModel = qx.data.marshal.Json.createModel(myWorkspaceData, true);
160167
this.__models.push(myWorkspaceModel);
161168
rootModel.getChildren().append(myWorkspaceModel);
169+
170+
// load next level too
171+
this.__populateFolder(myWorkspaceModel, workspaceId, folderId);
162172
},
163173

164174
__addSharedWorkspaces: function(rootModel) {
@@ -200,6 +210,9 @@ qx.Class.define("osparc.dashboard.WorkspacesAndFoldersTree", {
200210

201211
const sharedWorkspaceModel = this.__getModel(-1, null);
202212
sharedWorkspaceModel.getChildren().append(workspaceModel);
213+
214+
// load next level too
215+
this.__populateFolder(workspaceModel, workspace.getWorkspaceId(), null);
203216
},
204217

205218
__removeWorkspace: function(workspace) {
@@ -222,16 +235,22 @@ qx.Class.define("osparc.dashboard.WorkspacesAndFoldersTree", {
222235
this.__models.push(folderModel);
223236
folder.bind("name", folderModel, "label");
224237
parentModel.getChildren().push(folderModel);
238+
return folderModel;
225239
},
226240

227241
__populateFolder: function(model, workspaceId, folderId) {
228-
osparc.store.Folders.getInstance().fetchFolders(folderId, workspaceId)
242+
if (model.getLoaded()) {
243+
return new Promise(resolve => resolve(model.getChildren()));
244+
}
245+
return osparc.store.Folders.getInstance().fetchFolders(folderId, workspaceId)
229246
.then(folders => {
230247
model.setLoaded(true);
231248
model.getChildren().removeAll();
249+
const newFolderModels = [];
232250
folders.forEach(folder => {
233-
this.__addFolder(folder, model);
251+
newFolderModels.push(this.__addFolder(folder, model));
234252
});
253+
return newFolderModels;
235254
});
236255
},
237256

0 commit comments

Comments
 (0)