Skip to content

Commit 5b16b42

Browse files
odeimaizCopilot
andauthored
🎨 [Frontend] Functions: Show Preview only when requested from MMUX (#7948)
Co-authored-by: Copilot <[email protected]>
1 parent 6bdc814 commit 5b16b42

File tree

3 files changed

+45
-15
lines changed

3 files changed

+45
-15
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
3737
latestPromise = osparc.data.Resources.fetch("studies", "getOne", params);
3838
break;
3939
}
40+
case "function": {
41+
latestPromise = osparc.store.Templates.fetchTemplate(resourceData["uuid"]);
42+
break;
43+
}
4044
case "service": {
4145
latestPromise = osparc.store.Services.getService(resourceData["key"], resourceData["version"]);
4246
break;
@@ -57,6 +61,7 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
5761
case "template":
5862
case "tutorial":
5963
case "hypertool":
64+
case "function":
6065
// when getting the latest study data, the debt information was lost
6166
if (osparc.study.Utils.isInDebt(this.__resourceData)) {
6267
const mainStore = osparc.store.Store.getInstance();
@@ -372,6 +377,16 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
372377
// removeAll
373378
osparc.utils.Utils.removeAllChildren(tabsView);
374379

380+
if (this.__resourceData["resourceType"] === "function") {
381+
// for now, we only want the preview page
382+
const page = this.__getPreviewPage();
383+
if (page) {
384+
tabsView.add(page);
385+
}
386+
this.fireEvent("pagesAdded");
387+
return;
388+
}
389+
375390
// add Open service button
376391
[
377392
this.__getInfoPage,

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

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,28 @@ qx.Class.define("osparc.study.StudyPreview", {
3636

3737
__buildPreview: function() {
3838
const study = this.__study;
39+
40+
const workbenchReady = () => {
41+
if (!study.isPipelineEmpty()) {
42+
const workbenchUIPreview = new osparc.workbench.WorkbenchUIPreview();
43+
workbenchUIPreview.setStudy(study);
44+
workbenchUIPreview.loadModel(study.getWorkbench());
45+
workbenchUIPreview.setMaxHeight(550);
46+
this._add(workbenchUIPreview);
47+
}
48+
};
49+
3950
const uiMode = study.getUi().getMode();
40-
if (["workbench", "pipeline"].includes(uiMode) && !study.isPipelineEmpty()) {
41-
const workbenchUIPreview = new osparc.workbench.WorkbenchUIPreview();
42-
workbenchUIPreview.setStudy(study);
43-
workbenchUIPreview.loadModel(study.getWorkbench());
44-
workbenchUIPreview.setMaxHeight(550);
45-
this._add(workbenchUIPreview);
51+
if (["workbench", "pipeline"].includes(uiMode)) {
52+
if (study.getWorkbench().isDeserialized()) {
53+
workbenchReady();
54+
} else {
55+
study.getWorkbench().addListenerOnce("changeDeserialized", e => {
56+
if (e.getData()) {
57+
workbenchReady();
58+
}
59+
}, this);
60+
}
4661
}
4762
}
4863
}

services/static-webserver/client/source/class/osparc/widget/PersistentIframe.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -334,15 +334,15 @@ qx.Class.define("osparc.widget.PersistentIframe", {
334334
// this is the MetaModeling service trying to show function/template information
335335
if (data["message"] && data["message"]["functionId"]) {
336336
const templateId = data["message"]["functionId"];
337-
osparc.store.Templates.fetchTemplate(templateId)
338-
.then(templateData => {
339-
templateData["resourceType"] = "template";
340-
const resourceDetails = new osparc.dashboard.ResourceDetails(templateData).set({
341-
showOpenButton: false,
342-
});
343-
osparc.dashboard.ResourceDetails.popUpInWindow(resourceDetails);
344-
})
345-
.catch(() => osparc.FlashMessenger.logError(this.tr("Function not found")));
337+
const functionData = {
338+
"uuid": templateId,
339+
"resourceType": "function",
340+
};
341+
const resourceDetails = new osparc.dashboard.ResourceDetails(functionData).set({
342+
showOpenButton: false,
343+
});
344+
const win = osparc.dashboard.ResourceDetails.popUpInWindow(resourceDetails);
345+
win.setCaption("Function Details");
346346
}
347347
break;
348348
}

0 commit comments

Comments
 (0)