diff --git a/services/static-webserver/client/source/class/osparc/desktop/account/ProfilePage.js b/services/static-webserver/client/source/class/osparc/desktop/account/ProfilePage.js index 9378f0c279d1..75ef9650f604 100644 --- a/services/static-webserver/client/source/class/osparc/desktop/account/ProfilePage.js +++ b/services/static-webserver/client/source/class/osparc/desktop/account/ProfilePage.js @@ -225,7 +225,7 @@ qx.Class.define("osparc.desktop.account.ProfilePage", { maxWidth: 500 }); - const label = osparc.ui.window.TabbedView.createHelpLabel(this.tr("For Privacy reasons, you might want to hide your Full Name and/or the email to other users")); + const label = osparc.ui.window.TabbedView.createHelpLabel(this.tr("For Privacy reasons, you might want to hide your First and Last Names and/or the Email to other users")); box.add(label); const hideFullname = new qx.ui.form.CheckBox().set({ @@ -237,7 +237,7 @@ qx.Class.define("osparc.desktop.account.ProfilePage", { const form = new qx.ui.form.Form(); form.add(hideFullname, "Hide Full Name", null, "hideFullname"); - form.add(hideEmail, "Hide email", null, "hideEmail"); + form.add(hideEmail, "Hide Email", null, "hideEmail"); box.add(new qx.ui.form.renderer.Single(form)); // binding to a model diff --git a/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/ConfirmationsPage.js b/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/ConfirmationsPage.js index 7b9dc943e63d..c883c6bd37f0 100644 --- a/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/ConfirmationsPage.js +++ b/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/ConfirmationsPage.js @@ -114,7 +114,7 @@ qx.Class.define("osparc.desktop.preferences.pages.ConfirmationsPage", { cbConfirmStopNode.addListener("changeValue", e => osparc.Preferences.patchPreferenceField("confirmStopNode", cbConfirmStopNode, e.getData())); box.add(cbConfirmStopNode); - const cbSnapNodeToGrid = new qx.ui.form.CheckBox(this.tr("Snap Node to grid")); + const cbSnapNodeToGrid = new qx.ui.form.CheckBox(this.tr("Snap Node to Grid")); preferencesSettings.bind("snapNodeToGrid", cbSnapNodeToGrid, "value"); cbSnapNodeToGrid.addListener("changeValue", e => osparc.Preferences.patchPreferenceField("snapNodeToGrid", cbSnapNodeToGrid, e.getData())); box.add(cbSnapNodeToGrid); diff --git a/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/GeneralPage.js b/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/GeneralPage.js index 70095507e49d..6f02c5a65b96 100644 --- a/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/GeneralPage.js +++ b/services/static-webserver/client/source/class/osparc/desktop/preferences/pages/GeneralPage.js @@ -137,7 +137,7 @@ qx.Class.define("osparc.desktop.preferences.pages.GeneralPage", { __addLowDiskSpaceSetting: function() { const box = osparc.ui.window.TabbedView.createSectionBox(this.tr("Low Disk Space Threshold")); - const label = osparc.ui.window.TabbedView.createHelpLabel(this.tr("Set the warning Threshold for low Disk Space availability."), "text-13-italic"); + const label = osparc.ui.window.TabbedView.createHelpLabel(this.tr("Set the warning Threshold for Low Disk Space availability"), "text-13-italic"); box.add(label); const form = new qx.ui.form.Form(); const diskUsageSpinner = new qx.ui.form.Spinner().set({ diff --git a/services/static-webserver/client/source/class/osparc/product/AboutProduct.js b/services/static-webserver/client/source/class/osparc/product/AboutProduct.js index 507c8c9ae7c1..a9f8328a3492 100644 --- a/services/static-webserver/client/source/class/osparc/product/AboutProduct.js +++ b/services/static-webserver/client/source/class/osparc/product/AboutProduct.js @@ -49,10 +49,8 @@ qx.Class.define("osparc.product.AboutProduct", { __buildLayout: function() { switch (osparc.product.Utils.getProductName()) { case "s4l": - this.__buildS4LLayout(); - break; case "s4lacad": - this.__buildS4LAcademicLayout(); + this.__buildS4LLayout(); break; case "s4llite": this.__buildS4LLiteLayout(); @@ -73,11 +71,11 @@ qx.Class.define("osparc.product.AboutProduct", { __buildS4LLayout: function() { const licenseUrl = osparc.store.Support.getLicenseURL(); const text = this.tr(` - sim4life.io is a native implementation of the most advanced simulation platform, Sim4Life, in the cloud. \ + Sim4Life.web is a native implementation of the most advanced simulation platform, Sim4Life, in the cloud. \ The platform empowers users to simulate, analyze, and predict complex, multifaceted, and dynamic biological interactions within the full anatomical complexity of the human body. \ It provides the ability to set up and run complex simulations directly within any browser, utilizing cloud technology.

- sim4life.io makes use of technologies developed by our research partner for the o2S2PARC platform, the IT’IS Foundation, and co-funded by the U.S. National Institutes of Health’s SPARC initiative.\ + Sim4Life.web makes use of technologies developed by our research partner for the o2S2PARC platform, the IT’IS Foundation, and co-funded by the U.S. National Institutes of Health’s SPARC initiative.\

For more information about Sim4Life, please visit ${osparc.utils.Utils.createHTMLLink("sim4life.swiss", "https://sim4life.swiss/")}.

@@ -90,26 +88,6 @@ qx.Class.define("osparc.product.AboutProduct", { this.add(label); }, - __buildS4LAcademicLayout: function() { - const licenseUrl = osparc.store.Support.getLicenseURL(); - const text = this.tr(` - sim4life.science is a native implementation of the most advanced simulation platform, Sim4Life, in the cloud. \ - The platform empowers users to simulate, analyze, and predict complex, multifaceted, and dynamic biological interactions within the full anatomical complexity of the human body. \ - It provides the ability to set up and run complex simulations directly within any browser, utilizing cloud technology. -

- sim4life.science makes use of technologies developed by our research partner for the o2S2PARC platform, the IT’IS Foundation, and co-funded by the U.S. National Institutes of Health’s SPARC initiative.\ -

- For more information about Sim4Life, please visit ${osparc.utils.Utils.createHTMLLink("sim4life.swiss", "href='https://sim4life.swiss/")}. -

- To review license agreements, click ${osparc.utils.Utils.createHTMLLink("here", licenseUrl)}. -

- Send us an email ${this.__getMailTo()} - `); - - const label = osparc.product.quickStart.Utils.createLabel(text); - this.add(label); - }, - __buildS4LLiteLayout: function() { // https://zurichmedtech.github.io/s4l-lite-manual/#/docs/what_is_s4l_lite const introText = "Sim4Life.lite is a powerful web-based simulation platform that allows you to model and analyze real-world phenomena and to design complex technical devices in a validated environment. With its intuitive interface and advanced tools, Sim4Life.lite makes it easy to develop your simulation project, wherever you are."; diff --git a/services/static-webserver/client/source/class/osparc/store/LicensedItems.js b/services/static-webserver/client/source/class/osparc/store/LicensedItems.js index 41e17ba41df5..5fc436bfdb50 100644 --- a/services/static-webserver/client/source/class/osparc/store/LicensedItems.js +++ b/services/static-webserver/client/source/class/osparc/store/LicensedItems.js @@ -22,8 +22,7 @@ qx.Class.define("osparc.store.LicensedItems", { construct: function() { this.base(arguments); - this.__licensedItems = null; - this.__cachedLicensedItems = {}; + this.__licensedItems = {}; }, statics: { @@ -52,23 +51,22 @@ qx.Class.define("osparc.store.LicensedItems", { members: { __licensedItems: null, - __cachedLicensedItems: null, getLicensedItems: function() { - if (this.__cachedLicensedItems.length) { - return new Promise(resolve => resolve(this.__cachedLicensedItems)); + if (Object.keys(this.__licensedItems).length) { + return new Promise(resolve => resolve(this.__licensedItems)); } return osparc.data.Resources.getInstance().getAllPages("licensedItems") .then(licensedItemsData => { licensedItemsData.forEach(licensedItemData => this.__addLicensedItemsToCache(licensedItemData)); - return this.__cachedLicensedItems; + return this.__licensedItems; }); }, __addLicensedItemsToCache: function(licensedItemData) { const licensedItem = new osparc.data.model.LicensedItem(licensedItemData); - this.__cachedLicensedItems[licensedItem.getLicensedItemId()] = licensedItem; + this.__licensedItems[licensedItem.getLicensedItemId()] = licensedItem; }, getPurchasedLicensedItems: function(walletId, urlParams, options = {}) { diff --git a/services/static-webserver/client/source/class/osparc/vipMarket/Market.js b/services/static-webserver/client/source/class/osparc/vipMarket/Market.js index 32df2d05c515..8e93f4ec75c8 100644 --- a/services/static-webserver/client/source/class/osparc/vipMarket/Market.js +++ b/services/static-webserver/client/source/class/osparc/vipMarket/Market.js @@ -65,7 +65,7 @@ qx.Class.define("osparc.vipMarket.Market", { licensedItemsStore.getLicensedItems(), licensedItemsStore.getPurchasedLicensedItems(walletId), ]) - .then(values => { + .then(async values => { const licensedItems = values[0]; const purchasedItems = values[1]; osparc.data.model.LicensedItem.addSeatsFromPurchases(licensedItems, purchasedItems); @@ -104,6 +104,8 @@ qx.Class.define("osparc.vipMarket.Market", { } }); + await this.__addFreeItems(); + categories.forEach(category => { this.__buildViPMarketPage(category, category["items"]); }); @@ -111,14 +113,12 @@ qx.Class.define("osparc.vipMarket.Market", { if (openCategory) { this.__openCategory(openCategory); } - - this.__addFreeItems(); }); }, __addFreeItems: function() { const licensedItemsStore = osparc.store.LicensedItems.getInstance(); - licensedItemsStore.getLicensedItems() + return licensedItemsStore.getLicensedItems() .then(async licensedItems => { this.__freeItems = []; const licensedItemsArr = Object.values(licensedItems);