Skip to content

Commit dbc5166

Browse files
committed
more checks
1 parent 6041cec commit dbc5166

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -886,7 +886,7 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
886886
return null;
887887
}
888888

889-
if (!osparc.study.Utils.canCreateFunction(this.__resourceData["workbench"])) {
889+
if (!osparc.study.Utils.isPotentialFunction(this.__resourceData["workbench"])) {
890890
return null;
891891
}
892892

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

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,16 @@ qx.Class.define("osparc.study.Utils", {
250250
return Array.from(services);
251251
},
252252

253+
extractComputationalServices: function(workbench) {
254+
const computationals = Object.values(workbench).filter(srv => osparc.data.model.Node.isComputational(srv));
255+
return computationals;
256+
},
257+
258+
extractDynamicServices: function(workbench) {
259+
const dynamics = Object.values(workbench).filter(srv => osparc.data.model.Node.isDynamic(srv));
260+
return dynamics;
261+
},
262+
253263
extractFilePickers: function(workbench) {
254264
const parameters = Object.values(workbench).filter(srv => srv["key"].includes("simcore/services/frontend/file-picker"));
255265
return parameters;
@@ -277,20 +287,28 @@ qx.Class.define("osparc.study.Utils", {
277287
return parameters;
278288
},
279289

280-
canCreateFunction: function(workbench) {
290+
isPotentialFunction: function(workbench) {
281291
// in order to create a function, the pipeline needs:
282-
// - at least one parameter (or file-picker (file type parameter))
283-
// - at least one probe
292+
// - at least one parameter or one probe
293+
// - for now, only float types are allowed
294+
// - at least one computational service
295+
// - no dynamic services
284296

285297
// const filePickers = osparc.study.Utils.extractFilePickers(workbench);
286298
// const parameters = osparc.study.Utils.extractParameters(workbench);
287299
// const probes = osparc.study.Utils.extractProbes(workbench);
288300
// return (filePickers.length + parameters.length) && probes.length;
289301

290-
// - for now, only float types are allowed
291302
const parameters = osparc.study.Utils.extractFunctionableParameters(workbench);
292303
const probes = osparc.study.Utils.extractFunctionableProbes(workbench);
293-
return parameters.length && probes.length;
304+
const computationals = osparc.study.Utils.extractComputationalServices(workbench);
305+
const dynamics = osparc.study.Utils.extractDynamicServices(workbench);
306+
307+
return (
308+
(parameters.length || probes.length) &&
309+
computationals.length > 0 &&
310+
dynamics.length === 0
311+
);
294312
},
295313

296314
getCantReadServices: function(studyServices = []) {

0 commit comments

Comments
 (0)