diff --git a/Makefile b/Makefile index 4e64c24af9a..eaffa0fb561 100644 --- a/Makefile +++ b/Makefile @@ -116,7 +116,7 @@ test: make run_test make after_test -PLATFORM_VERSION=3.16 +PLATFORM_VERSION=3.17 push_platform_images: ${DOCKER} login masu.speag.com diff --git a/services/docker-compose.deploy.devel.yml b/services/docker-compose.deploy.devel.yml index f0491b6d84e..54ce4bca849 100644 --- a/services/docker-compose.deploy.devel.yml +++ b/services/docker-compose.deploy.devel.yml @@ -20,7 +20,6 @@ services: - node.platform.os == linux - node.role == manager environment: - - OSPARC_PUBLIC_URL=http://osparc01.itis.ethz.ch:9081 - POSTGRES_ENDPOINT=postgres - POSTGRES_USER=simcore - POSTGRES_PASSWORD=simcore diff --git a/services/docker-compose.deploy.yml b/services/docker-compose.deploy.yml index 1f7c442e718..e89762109ae 100644 --- a/services/docker-compose.deploy.yml +++ b/services/docker-compose.deploy.yml @@ -20,7 +20,6 @@ services: - node.platform.os == linux - node.role == manager environment: - - OSPARC_PUBLIC_URL=http://osparc01.itis.ethz.ch:9081 - POSTGRES_ENDPOINT=postgres - POSTGRES_USER=simcore - POSTGRES_PASSWORD=simcore diff --git a/services/web/client/source/class/qxapp/auth/Manager.js b/services/web/client/source/class/qxapp/auth/Manager.js index 62f30ad9a7c..dcb29e0595b 100644 --- a/services/web/client/source/class/qxapp/auth/Manager.js +++ b/services/web/client/source/class/qxapp/auth/Manager.js @@ -57,7 +57,7 @@ qx.Class.define("qxapp.auth.Manager", { // TODO: validate data against specs??? // TODO: activate tokens!? this.__loginUser(email, data.token || "fake token"); - successCbk.call(context, data.message); + successCbk.call(context, data); }, this); this.__bindDefaultFailCallback(request, failCbk, context); @@ -110,6 +110,7 @@ qx.Class.define("qxapp.auth.Manager", { } = e.getTarget().getResponse(); // TODO: validate data against specs??? + // FIXME: Data is an object successCbk.call(context, data); }, this); }, @@ -126,7 +127,7 @@ qx.Class.define("qxapp.auth.Manager", { msg = msg + error.errors[i].message + " "; } } - + // FIXME: Data is an object failCbk.call(context, msg); }, this); } diff --git a/services/web/client/source/class/qxapp/auth/ui/RegistrationPage.js b/services/web/client/source/class/qxapp/auth/ui/RegistrationPage.js index b450e4d8914..3c804529281 100644 --- a/services/web/client/source/class/qxapp/auth/ui/RegistrationPage.js +++ b/services/web/client/source/class/qxapp/auth/ui/RegistrationPage.js @@ -119,8 +119,8 @@ qx.Class.define("qxapp.auth.ui.RegistrationPage", { let manager = qxapp.auth.Manager.getInstance(); let successFun = function(log) { - // TODO: add flash this.fireDataEvent("done", log.message); + qxapp.component.widget.FlashMessenger.getInstance().log(log); }; let failFun = function(msg) { diff --git a/services/web/client/source/class/qxapp/component/widget/FlashMessenger.js b/services/web/client/source/class/qxapp/component/widget/FlashMessenger.js new file mode 100644 index 00000000000..5b58d3d417f --- /dev/null +++ b/services/web/client/source/class/qxapp/component/widget/FlashMessenger.js @@ -0,0 +1,85 @@ +qx.Class.define("qxapp.component.widget.FlashMessenger", { + extend: qx.ui.window.Window, + + type: "singleton", + + construct: function() { + this.base(); + + this.set({ + appearance: "window-small-cap", + showMinimize: false, + showMaximize: false, + allowMaximize: false, + showStatusbar: false, + resizable: false, + contentPadding: 0, + caption: "Logger", + layout: new qx.ui.layout.VBox() + }); + }, + + members: { + log: function(logMessage) { + const message = logMessage.message; + const level = logMessage.level; // "DEBUG", "INFO", "WARNING", "ERROR" + const logger = logMessage.logger; + + let label = new qx.ui.basic.Label(logger + ": " + message).set({ + allowGrowX: true, + allowGrowY: true, + alignX: "center", + textAlign: "center", + padding: 5 + }); + this.add(label); + + switch (level) { + case "DEBUG": + label.setBackgroundColor("blue"); + label.setTextColor("white"); + break; + case "INFO": + label.setBackgroundColor("blue"); + label.setTextColor("white"); + break; + case "WARNING": + label.setBackgroundColor("yellow"); + label.setTextColor("black"); + break; + case "ERROR": + label.setBackgroundColor("red"); + label.setTextColor("black"); + break; + } + + if (this.getVisibility() !== "visible") { + this.__toTopCenter(); + this.open(); + } + + const time = 3000; + qx.event.Timer.once(e => { + this.remove(label); + if (this.getChildren().length === 0) { + this.close(); + } + }, this, time); + }, + + __toTopCenter: function() { + const parent = this.getLayoutParent(); + if (parent) { + const bounds = parent.getBounds(); + if (bounds) { + const hint = this.getSizeHint(); + const left = Math.round((bounds.width - hint.width) / 2); + const top = 50; + this.moveTo(left, top); + return; + } + } + this.center(); + } + } +}); diff --git a/services/web/client/source/class/qxapp/desktop/NavigationBar.js b/services/web/client/source/class/qxapp/desktop/NavigationBar.js index 5de9aefdd93..f9a66aab3ad 100644 --- a/services/web/client/source/class/qxapp/desktop/NavigationBar.js +++ b/services/web/client/source/class/qxapp/desktop/NavigationBar.js @@ -56,6 +56,9 @@ qx.Class.define("qxapp.desktop.NavigationBar", { this.add(new qx.ui.toolbar.Separator()); let forumBtn = new qx.ui.form.Button(this.tr("Forum")); + forumBtn.addListener("execute", function() { + window.open("https://forum.zmt.swiss/"); + }, this); forumBtn.set(commonBtnSettings); this.add(forumBtn); diff --git a/services/web/client/source/class/qxapp/desktop/PrjEditor.js b/services/web/client/source/class/qxapp/desktop/PrjEditor.js index ac2059900f9..5806fb77e49 100644 --- a/services/web/client/source/class/qxapp/desktop/PrjEditor.js +++ b/services/web/client/source/class/qxapp/desktop/PrjEditor.js @@ -175,6 +175,31 @@ qx.Class.define("qxapp.desktop.PrjEditor", { this.__workbenchView.loadModel(nodeModel); } } + + // SHow screenshots in the ExtraView + if (nodeId === "root") { + this.showScreenshotInExtraView("workbench"); + } else { + let nodeModel = this.getProjectModel().getWorkbenchModel().getNodeModel(nodeId); + if (nodeModel.isContainer()) { + this.showScreenshotInExtraView("container"); + } else { + let nodeKey = nodeModel.getMetaData().key; + if (nodeKey.includes("file-picker")) { + this.showScreenshotInExtraView("file-picker"); + } else if (nodeKey.includes("modeler")) { + this.showScreenshotInExtraView("modeler"); + } else if (nodeKey.includes("3d-viewer")) { + this.showScreenshotInExtraView("postpro"); + } else if (nodeKey.includes("viewer")) { + this.showScreenshotInExtraView("notebook"); + } else if (nodeKey.includes("jupyter")) { + this.showScreenshotInExtraView("notebook"); + } else { + this.showScreenshotInExtraView("form"); + } + } + } }, __workbenchModelChanged: function() { @@ -199,6 +224,15 @@ qx.Class.define("qxapp.desktop.PrjEditor", { this.__sidePanel.setMidView(widget); }, + showScreenshotInExtraView: function(name) { + let imageWidget = new qx.ui.basic.Image("qxapp/screenshot_"+name+".png").set({ + scale: true, + allowShrinkX: true, + allowShrinkY: true + }); + this.__sidePanel.setMidView(imageWidget); + }, + getLogger: function() { return this.__loggerView; }, diff --git a/services/web/client/source/class/qxapp/desktop/sidePanel/SidePanel.js b/services/web/client/source/class/qxapp/desktop/sidePanel/SidePanel.js index cb56bbcb65e..fde3f403448 100644 --- a/services/web/client/source/class/qxapp/desktop/sidePanel/SidePanel.js +++ b/services/web/client/source/class/qxapp/desktop/sidePanel/SidePanel.js @@ -11,12 +11,15 @@ qx.Class.define("qxapp.desktop.sidePanel.SidePanel", { let bottomView = new qx.ui.core.Widget(); this._add(topView, { + height: "33%", flex: 1 }); this._add(midView, { + height: "33%", flex: 1 }); this._add(bottomView, { + height: "33%", flex: 1 }); }, @@ -60,7 +63,8 @@ qx.Class.define("qxapp.desktop.sidePanel.SidePanel", { if (this._indexOf(newWidget) !== indexOf) { this._removeAt(indexOf); this._addAt(newWidget, indexOf, { - height: "33%" + height: "33%", + flex: 1 }); } } diff --git a/services/web/client/source/resource/qxapp/screenshot_container.png b/services/web/client/source/resource/qxapp/screenshot_container.png new file mode 100644 index 00000000000..652d6ef0cfe Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_container.png differ diff --git a/services/web/client/source/resource/qxapp/screenshot_file-picker.png b/services/web/client/source/resource/qxapp/screenshot_file-picker.png new file mode 100644 index 00000000000..b3bad780678 Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_file-picker.png differ diff --git a/services/web/client/source/resource/qxapp/screenshot_form.png b/services/web/client/source/resource/qxapp/screenshot_form.png new file mode 100644 index 00000000000..95ee7f932a6 Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_form.png differ diff --git a/services/web/client/source/resource/qxapp/screenshot_modeler.png b/services/web/client/source/resource/qxapp/screenshot_modeler.png new file mode 100644 index 00000000000..9010a1c1cbb Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_modeler.png differ diff --git a/services/web/client/source/resource/qxapp/screenshot_notebook.png b/services/web/client/source/resource/qxapp/screenshot_notebook.png new file mode 100644 index 00000000000..b821e733d28 Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_notebook.png differ diff --git a/services/web/client/source/resource/qxapp/screenshot_postpro.png b/services/web/client/source/resource/qxapp/screenshot_postpro.png new file mode 100644 index 00000000000..b87bc5a1dd2 Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_postpro.png differ diff --git a/services/web/client/source/resource/qxapp/screenshot_workbench.png b/services/web/client/source/resource/qxapp/screenshot_workbench.png new file mode 100644 index 00000000000..32a20e47881 Binary files /dev/null and b/services/web/client/source/resource/qxapp/screenshot_workbench.png differ