Skip to content

Commit f826acf

Browse files
committed
duplicateStudy to utils
1 parent 87e26c3 commit f826acf

File tree

2 files changed

+86
-83
lines changed

2 files changed

+86
-83
lines changed

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

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1924,20 +1924,7 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
19241924
},
19251925

19261926
__duplicateStudy: function(studyData) {
1927-
const text = this.tr("Duplicate process started and added to the background tasks");
1928-
osparc.FlashMessenger.logAs(text, "INFO");
1929-
1930-
const params = {
1931-
url: {
1932-
"studyId": studyData["uuid"]
1933-
}
1934-
};
1935-
const options = {
1936-
pollTask: true
1937-
};
1938-
const fetchPromise = osparc.data.Resources.fetch("studies", "duplicate", params, options);
1939-
const pollTasks = osparc.store.PollTasks.getInstance();
1940-
return pollTasks.createPollingTask(fetchPromise)
1927+
osparc.study.Utils.duplicateStudy(studyData)
19411928
.then(task => {
19421929
this.__taskDuplicateReceived(task, studyData["name"]);
19431930
return task;

services/static-webserver/client/source/class/osparc/study/Utils.js

Lines changed: 85 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -23,75 +23,6 @@ qx.Class.define("osparc.study.Utils", {
2323
type: "static",
2424

2525
statics: {
26-
isAnyLinkedNodeMissing: function(studyData) {
27-
const existingNodeIds = Object.keys(studyData["workbench"]);
28-
const linkedNodeIds = osparc.data.model.Workbench.getLinkedNodeIds(studyData["workbench"]);
29-
const allExist = linkedNodeIds.every(linkedNodeId => existingNodeIds.includes(linkedNodeId));
30-
return !allExist;
31-
},
32-
33-
extractUniqueServices: function(workbench) {
34-
const services = new Set([]);
35-
Object.values(workbench).forEach(srv => {
36-
services.add({
37-
key: srv.key,
38-
version: srv.version
39-
});
40-
});
41-
return Array.from(services);
42-
},
43-
44-
getCantExecuteServices: function(studyServices = []) {
45-
return studyServices.filter(studyService => studyService["myAccessRights"]["execute"] === false);
46-
},
47-
48-
anyServiceRetired: function(studyServices) {
49-
const isRetired = studyServices.some(studyService => {
50-
if (studyService["release"] && studyService["release"]["retired"]) {
51-
const retirementDate = new Date(studyService["release"]["retired"]);
52-
const currentDate = new Date();
53-
return retirementDate < currentDate;
54-
}
55-
return false;
56-
});
57-
return isRetired;
58-
},
59-
60-
anyServiceDeprecated: function(studyServices) {
61-
const isDeprecated = studyServices.some(studyService => {
62-
if (studyService["release"] && studyService["release"]["retired"]) {
63-
const retirementDate = new Date(studyService["release"]["retired"]);
64-
const currentDate = new Date();
65-
return retirementDate > currentDate;
66-
}
67-
return false;
68-
});
69-
return isDeprecated;
70-
},
71-
72-
anyServiceUpdatable: function(studyServices) {
73-
const isUpdatable = studyServices.some(studyService => {
74-
if (studyService["release"] && studyService["release"]["compatibility"]) {
75-
return Boolean(studyService["release"]["compatibility"]);
76-
}
77-
return false;
78-
});
79-
return isUpdatable;
80-
},
81-
82-
updatableNodeIds: function(workbench, studyServices) {
83-
const nodeIds = [];
84-
for (const nodeId in workbench) {
85-
const node = workbench[nodeId];
86-
const studyServiceFound = studyServices.find(studyService => studyService["key"] === node["key"] && studyService["release"]["version"] === node["version"]);
87-
if (studyServiceFound && studyServiceFound["release"] && studyServiceFound["release"]["compatibility"]) {
88-
nodeIds.push(nodeId);
89-
}
90-
}
91-
return nodeIds;
92-
},
93-
94-
9526
createStudyFromService: function(key, version, existingStudies, newStudyLabel, contextProps = {}) {
9627
return new Promise((resolve, reject) => {
9728
osparc.store.Services.getService(key, version)
@@ -257,6 +188,91 @@ qx.Class.define("osparc.study.Utils", {
257188
});
258189
},
259190

191+
duplicateStudy: function(studyData) {
192+
const text = qx.locale.Manager.tr("Duplicate process started and added to the background tasks");
193+
osparc.FlashMessenger.logAs(text, "INFO");
194+
195+
const params = {
196+
url: {
197+
"studyId": studyData["uuid"]
198+
}
199+
};
200+
const options = {
201+
pollTask: true
202+
};
203+
const fetchPromise = osparc.data.Resources.fetch("studies", "duplicate", params, options);
204+
const pollTasks = osparc.store.PollTasks.getInstance();
205+
return pollTasks.createPollingTask(fetchPromise)
206+
},
207+
208+
isAnyLinkedNodeMissing: function(studyData) {
209+
const existingNodeIds = Object.keys(studyData["workbench"]);
210+
const linkedNodeIds = osparc.data.model.Workbench.getLinkedNodeIds(studyData["workbench"]);
211+
const allExist = linkedNodeIds.every(linkedNodeId => existingNodeIds.includes(linkedNodeId));
212+
return !allExist;
213+
},
214+
215+
extractUniqueServices: function(workbench) {
216+
const services = new Set([]);
217+
Object.values(workbench).forEach(srv => {
218+
services.add({
219+
key: srv.key,
220+
version: srv.version
221+
});
222+
});
223+
return Array.from(services);
224+
},
225+
226+
getCantExecuteServices: function(studyServices = []) {
227+
return studyServices.filter(studyService => studyService["myAccessRights"]["execute"] === false);
228+
},
229+
230+
anyServiceRetired: function(studyServices) {
231+
const isRetired = studyServices.some(studyService => {
232+
if (studyService["release"] && studyService["release"]["retired"]) {
233+
const retirementDate = new Date(studyService["release"]["retired"]);
234+
const currentDate = new Date();
235+
return retirementDate < currentDate;
236+
}
237+
return false;
238+
});
239+
return isRetired;
240+
},
241+
242+
anyServiceDeprecated: function(studyServices) {
243+
const isDeprecated = studyServices.some(studyService => {
244+
if (studyService["release"] && studyService["release"]["retired"]) {
245+
const retirementDate = new Date(studyService["release"]["retired"]);
246+
const currentDate = new Date();
247+
return retirementDate > currentDate;
248+
}
249+
return false;
250+
});
251+
return isDeprecated;
252+
},
253+
254+
anyServiceUpdatable: function(studyServices) {
255+
const isUpdatable = studyServices.some(studyService => {
256+
if (studyService["release"] && studyService["release"]["compatibility"]) {
257+
return Boolean(studyService["release"]["compatibility"]);
258+
}
259+
return false;
260+
});
261+
return isUpdatable;
262+
},
263+
264+
updatableNodeIds: function(workbench, studyServices) {
265+
const nodeIds = [];
266+
for (const nodeId in workbench) {
267+
const node = workbench[nodeId];
268+
const studyServiceFound = studyServices.find(studyService => studyService["key"] === node["key"] && studyService["release"]["version"] === node["version"]);
269+
if (studyServiceFound && studyServiceFound["release"] && studyServiceFound["release"]["compatibility"]) {
270+
nodeIds.push(nodeId);
271+
}
272+
}
273+
return nodeIds;
274+
},
275+
260276
isInDebt: function(studyData) {
261277
return Boolean("debt" in studyData && studyData["debt"] < 0);
262278
},

0 commit comments

Comments
 (0)