Skip to content

Commit 5b7b6d4

Browse files
committed
untrashStudy
1 parent 22c0734 commit 5b7b6d4

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ qx.Class.define("osparc.dashboard.CardBase", {
788788
if (moveToButton) {
789789
moveToButton.setEnabled(osparc.study.Utils.canMoveTo(resourceData));
790790
}
791-
const deleteButton = menuButtons.find(menuBtn => "deleteButton" in menuBtn);
791+
const deleteButton = menuButtons.find(menuBtn => "trashButton" in menuBtn);
792792
if (deleteButton) {
793793
deleteButton.setEnabled(osparc.study.Utils.canBeDeleted(resourceData));
794794
}

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

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,9 +1340,25 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
13401340
const menu = card.getMenu();
13411341
const studyData = card.getResourceData();
13421342

1343+
const trashed = Boolean(studyData["trashedAt"]);
13431344
const writeAccess = osparc.data.model.Study.canIWrite(studyData["accessRights"]);
13441345
const deleteAccess = osparc.data.model.Study.canIDelete(studyData["accessRights"]);
13451346

1347+
if (this.getCurrentContext() === "trash") {
1348+
if (trashed) {
1349+
if (writeAccess) {
1350+
const untrashButton = this.__getUntrashStudyMenuButton(studyData);
1351+
menu.add(untrashButton);
1352+
}
1353+
if (deleteAccess) {
1354+
const deleteButton = this.__getDeleteStudyMenuButton(studyData, false);
1355+
menu.addSeparator();
1356+
menu.add(deleteButton);
1357+
}
1358+
}
1359+
return;
1360+
}
1361+
13461362
const openButton = this._getOpenMenuButton(studyData);
13471363
if (openButton) {
13481364
menu.add(openButton);
@@ -1401,9 +1417,9 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
14011417
}
14021418

14031419
if (deleteAccess) {
1404-
const deleteButton = this.getCurrentContext() === "trash" ? this.__getDeleteStudyMenuButton(studyData, false) : this.__getTrashStudyMenuButton(studyData, false);
1420+
const trashButton = this.__getTrashStudyMenuButton(studyData, false);
14051421
menu.addSeparator();
1406-
menu.add(deleteButton);
1422+
menu.add(trashButton);
14071423
}
14081424

14091425
card.evaluateMenuButtons();
@@ -1618,7 +1634,7 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
16181634

16191635
__getTrashStudyMenuButton: function(studyData) {
16201636
const trashButton = new qx.ui.menu.Button(this.tr("Trash"), "@FontAwesome5Solid/trash/12");
1621-
trashButton["deleteButton"] = true;
1637+
trashButton["trashButton"] = true;
16221638
trashButton.set({
16231639
appearance: "menu-button"
16241640
});
@@ -1627,6 +1643,16 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
16271643
return trashButton;
16281644
},
16291645

1646+
__getUntrashStudyMenuButton: function(studyData) {
1647+
const trashButton = new qx.ui.menu.Button(this.tr("Restore"), "@FontAwesome5Solid/trash/12");
1648+
trashButton["untrashButton"] = true;
1649+
trashButton.set({
1650+
appearance: "menu-button"
1651+
});
1652+
trashButton.addListener("execute", () => this.__untrashStudy(studyData), this);
1653+
return trashButton;
1654+
},
1655+
16301656
__getDeleteStudyMenuButton: function(studyData) {
16311657
const deleteButton = new qx.ui.menu.Button(this.tr("Delete"), "@FontAwesome5Solid/trash/12");
16321658
deleteButton["deleteButton"] = true;
@@ -1789,6 +1815,16 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
17891815
req.send(body);
17901816
},
17911817

1818+
__untrashStudy: function(studyData) {
1819+
osparc.store.Store.getInstance().untrashStudy(studyData.uuid)
1820+
.then(() => this.__removeFromStudyList(studyData.uuid))
1821+
.catch(err => {
1822+
console.error(err);
1823+
osparc.FlashMessenger.getInstance().logAs(err, "ERROR");
1824+
})
1825+
.finally(() => this.resetSelection());
1826+
},
1827+
17921828
__trashStudy: function(studyData) {
17931829
const myGid = osparc.auth.Data.getInstance().getGroupId();
17941830
const collabGids = Object.keys(studyData["accessRights"]);

0 commit comments

Comments
 (0)