Skip to content

Commit f21da80

Browse files
committed
searchFolders
1 parent 145a8ca commit f21da80

File tree

3 files changed

+50
-7
lines changed

3 files changed

+50
-7
lines changed

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

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,17 +171,27 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
171171
if (
172172
!osparc.auth.Manager.getInstance().isLoggedIn() ||
173173
!osparc.utils.DisabledPlugins.isFoldersEnabled() ||
174-
this.getCurrentContext() !== "studiesAndFolders" ||
174+
this.getCurrentContext() === "workspaces" ||
175175
this.__loadingFolders
176176
) {
177177
return;
178178
}
179179

180-
const workspaceId = this.getCurrentWorkspaceId();
181-
const folderId = this.getCurrentFolderId();
182180
this.__loadingFolders = true;
181+
let request = null;
182+
switch (this.getCurrentContext()) {
183+
case "search":
184+
request = osparc.store.Folders.getInstance().searchFolders(this.getOrderBy());
185+
break;
186+
case "studiesAndFolders": {
187+
const workspaceId = this.getCurrentWorkspaceId();
188+
const folderId = this.getCurrentFolderId();
189+
request = osparc.store.Folders.getInstance().fetchFolders(folderId, workspaceId, this.getOrderBy());
190+
break;
191+
}
192+
}
183193
this.__setFoldersToList([]);
184-
osparc.store.Folders.getInstance().fetchFolders(folderId, workspaceId, this.getOrderBy())
194+
request
185195
.then(folders => {
186196
this.__setFoldersToList(folders);
187197
})
@@ -975,7 +985,7 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
975985
this._resourcesContainer.setResourcesToList([]);
976986

977987
if (context === "search") {
978-
this.__setFoldersToList([]);
988+
this.__reloadFolders();
979989
this.__reloadStudies();
980990
} else if (context === "workspaces") {
981991
this._searchBarFilter.resetFilters();

services/static-webserver/client/source/class/osparc/data/Resources.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,11 @@ qx.Class.define("osparc.data.Resources", {
301301
method: "GET",
302302
url: statics.API + "/folders?workspace_id={workspaceId}&folder_id={folderId}&offset={offset}&limit={limit}&order_by={orderBy}"
303303
},
304+
getPageSearch: {
305+
useCache: false,
306+
method: "GET",
307+
url: statics.API + "/folders:search?offset={offset}&limit={limit}&text={text}&order_by={orderBy}"
308+
},
304309
getOne: {
305310
method: "GET",
306311
url: statics.API + "/folders/{folderId}"
@@ -1368,7 +1373,7 @@ qx.Class.define("osparc.data.Resources", {
13681373
});
13691374
},
13701375

1371-
getAllPages: function(resource, params = {}) {
1376+
getAllPages: function(resource, params = {}, endpoint = "getPage") {
13721377
return new Promise((resolve, reject) => {
13731378
let resources = [];
13741379
let offset = 0;
@@ -1377,7 +1382,6 @@ qx.Class.define("osparc.data.Resources", {
13771382
}
13781383
params["url"]["offset"] = offset;
13791384
params["url"]["limit"] = 10;
1380-
const endpoint = "getPage";
13811385
const options = {
13821386
resolveWResponse: true
13831387
};

services/static-webserver/client/source/class/osparc/store/Folders.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,35 @@ qx.Class.define("osparc.store.Folders", {
7878
});
7979
},
8080

81+
searchFolders: function(
82+
orderBy = {
83+
field: "modified_at",
84+
direction: "desc"
85+
}
86+
) {
87+
if (osparc.auth.Data.getInstance().isGuest()) {
88+
return new Promise(resolve => {
89+
resolve([]);
90+
});
91+
}
92+
93+
const curatedOrderBy = this.self().curateOrderBy(orderBy);
94+
const params = {
95+
url: {
96+
orderBy: JSON.stringify(curatedOrderBy),
97+
}
98+
};
99+
return osparc.data.Resources.getInstance().getAllPages("folders", params, "getPageSearch")
100+
.then(foldersData => {
101+
const folders = [];
102+
foldersData.forEach(folderData => {
103+
const folder = this.__addToCache(folderData);
104+
folders.push(folder);
105+
});
106+
return folders;
107+
});
108+
},
109+
81110
postFolder: function(name, parentFolderId = null, workspaceId = null) {
82111
const newFolderData = {
83112
name,

0 commit comments

Comments
 (0)