Skip to content

Commit 2bfd6d9

Browse files
committed
signature
1 parent 4652068 commit 2bfd6d9

File tree

4 files changed

+34
-30
lines changed

4 files changed

+34
-30
lines changed

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

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ qx.Class.define("osparc.dashboard.DragDropHelpers", {
2020

2121
statics: {
2222
moveStudy: {
23-
dragStart: function(event, studyDataOrigin, studyItem) {
23+
dragStart: function(event, studyItem, studyDataOrigin) {
2424
event.addAction("move");
2525
event.addType("osparc-moveStudy");
2626
event.addData("osparc-moveStudy", {
@@ -93,7 +93,7 @@ qx.Class.define("osparc.dashboard.DragDropHelpers", {
9393
},
9494

9595
moveFolder: {
96-
dragStart: function(event, folderOrigin, folderItem) {
96+
dragStart: function(event, folderItem, folderOrigin) {
9797
event.addAction("move");
9898
event.addType("osparc-moveFolder");
9999
event.addData("osparc-moveFolder", {
@@ -112,26 +112,35 @@ qx.Class.define("osparc.dashboard.DragDropHelpers", {
112112
folderItem.setOpacity(0.2);
113113
},
114114

115-
dragOver: function(event, folderItem, folderDest) {
115+
dragOver: function(event, folderItem, workspaceDestId) {
116116
let compatible = false;
117-
// Compatibility checks:
118-
// - It's not the same folder
119-
// - My workspace
120-
// - None
121-
// - Shared workspace
122-
// - write access on workspace
123117
const folderOrigin = event.getData("osparc-moveFolder")["folderOrigin"];
124-
compatible = folderDest !== folderOrigin;
125-
const workspaceId = folderOrigin.getWorkspaceId();
126-
if (compatible) {
127-
if (workspaceId) {
128-
const workspace = osparc.store.Workspaces.getInstance().getWorkspace(workspaceId);
129-
if (workspace) {
130-
compatible = workspace.getMyAccessRights()["write"];
131-
}
132-
} else {
133-
compatible = true;
134-
}
118+
const workspaceIdOrigin = folderOrigin.getWorkspaceId();
119+
const workspaceOrigin = osparc.store.Workspaces.getInstance().getWorkspace(workspaceIdOrigin);
120+
const workspaceDest = osparc.store.Workspaces.getInstance().getWorkspace(workspaceDestId);
121+
// Compatibility checks:
122+
// - Drag over "Shared Workspaces" (0)
123+
// - No
124+
// - My Workspace -> My Workspace (1)
125+
// - Yes
126+
// - My Workspace -> Shared Workspace (2)
127+
// - ~~Delete on Study~~
128+
// - Write on dest Workspace
129+
// - Shared Workspace -> My Workspace (3)
130+
// - Delete on origin Workspace
131+
// - Shared Workspace -> Shared Workspace (4)
132+
// - Delete on origin Workspace
133+
// - Write on dest Workspace
134+
if (workspaceDestId === -1) { // (0)
135+
compatible = false;
136+
} else if (workspaceIdOrigin === null && workspaceDestId === null) { // (1)
137+
compatible = true;
138+
} else if (workspaceIdOrigin === null && workspaceDest) { // (2)
139+
compatible = workspaceDest.getMyAccessRights()["write"];
140+
} else if (workspaceOrigin && workspaceDestId === null) { // (3)
141+
compatible = workspaceOrigin.getMyAccessRights()["delete"];
142+
} else if (workspaceOrigin && workspaceDest) { // (4)
143+
compatible = workspaceOrigin.getMyAccessRights()["delete"] && workspaceDest.getMyAccessRights()["write"];
135144
}
136145

137146
if (compatible) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ qx.Class.define("osparc.dashboard.FolderButtonItem", {
164164

165165
this.addListener("dragstart", e => {
166166
const folderOrigin = this.getFolder();
167-
osparc.dashboard.DragDropHelpers.moveFolder.dragStart(e, folderOrigin, this);
167+
osparc.dashboard.DragDropHelpers.moveFolder.dragStart(e, this, folderOrigin);
168168
});
169169

170170
this.addListener("dragend", () => {
@@ -180,7 +180,7 @@ qx.Class.define("osparc.dashboard.FolderButtonItem", {
180180
if (e.supportsType("osparc-moveStudy")) {
181181
osparc.dashboard.DragDropHelpers.moveStudy.dragOver(e, this, folderDest.getWorkspaceId());
182182
} else if (e.supportsType("osparc-moveFolder")) {
183-
osparc.dashboard.DragDropHelpers.moveFolder.dragOver(e, this, folderDest);
183+
osparc.dashboard.DragDropHelpers.moveFolder.dragOver(e, this, folderDest.getWorkspaceId());
184184
}
185185
});
186186

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
661661

662662
card.addListener("dragstart", e => {
663663
const studyDataOrigin = card.getResourceData();
664-
osparc.dashboard.DragDropHelpers.moveStudy.dragStart(e, studyDataOrigin, card);
664+
osparc.dashboard.DragDropHelpers.moveStudy.dragStart(e, card, studyDataOrigin);
665665
});
666666

667667
card.addListener("dragend", () => {

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ qx.Class.define("osparc.dashboard.WorkspacesAndFoldersTreeItem", {
7676
e.preventDefault();
7777
return;
7878
}
79-
osparc.dashboard.DragDropHelpers.moveFolder.dragStart(e, folderOrigin, this);
79+
osparc.dashboard.DragDropHelpers.moveFolder.dragStart(e, this, folderOrigin);
8080
});
8181

8282
this.addListener("dragend", () => {
@@ -92,12 +92,7 @@ qx.Class.define("osparc.dashboard.WorkspacesAndFoldersTreeItem", {
9292
if (e.supportsType("osparc-moveStudy")) {
9393
osparc.dashboard.DragDropHelpers.moveStudy.dragOver(e, this, workspaceDestId);
9494
} else if (e.supportsType("osparc-moveFolder")) {
95-
const folderDest = this.__getFolder();
96-
if (folderDest == null) {
97-
e.preventDefault();
98-
return;
99-
}
100-
osparc.dashboard.DragDropHelpers.moveFolder.dragOver(e, this, folderDest);
95+
osparc.dashboard.DragDropHelpers.moveFolder.dragOver(e, this, workspaceDestId);
10196
}
10297
});
10398

0 commit comments

Comments
 (0)