Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,7 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
return;
}

if (!osparc.study.Utils.canCreateFunction(this.__resourceData["workbench"])) {
if (!osparc.study.Utils.isPotentialFunction(this.__resourceData["workbench"])) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,22 @@ qx.Class.define("osparc.study.Utils", {
return Array.from(services);
},

extractComputationalServices: function(workbench) {
const computationals = Object.values(workbench).filter(node => {
const metadata = osparc.store.Services.getMetadata(node["key"], node["version"]);
return metadata && osparc.data.model.Node.isComputational(metadata);
});
return computationals;
},

extractDynamicServices: function(workbench) {
const dynamics = Object.values(workbench).filter(node => {
const metadata = osparc.store.Services.getMetadata(node["key"], node["version"]);
return metadata && osparc.data.model.Node.isDynamic(metadata);
});
return dynamics;
},

extractFilePickers: function(workbench) {
const parameters = Object.values(workbench).filter(srv => srv["key"].includes("simcore/services/frontend/file-picker"));
return parameters;
Expand Down Expand Up @@ -277,20 +293,28 @@ qx.Class.define("osparc.study.Utils", {
return parameters;
},

canCreateFunction: function(workbench) {
isPotentialFunction: function(workbench) {
// in order to create a function, the pipeline needs:
// - at least one parameter (or file-picker (file type parameter))
// - at least one probe
// - at least one parameter or one probe
// - for now, only float types are allowed
// - at least one computational service
// - no dynamic services

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

// - for now, only float types are allowed
const parameters = osparc.study.Utils.extractFunctionableParameters(workbench);
const probes = osparc.study.Utils.extractFunctionableProbes(workbench);
return parameters.length && probes.length;
const computationals = osparc.study.Utils.extractComputationalServices(workbench);
const dynamics = osparc.study.Utils.extractDynamicServices(workbench);

return (
(parameters.length || probes.length) &&
computationals.length > 0 &&
dynamics.length === 0
);
},

getCantReadServices: function(studyServices = []) {
Expand Down
Loading