From 04771858289678e82cafe3ea2398c67181a1969a Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 09:33:14 +0200 Subject: [PATCH 01/12] refactor --- .../source/class/osparc/NewUITracker.js | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/services/static-webserver/client/source/class/osparc/NewUITracker.js b/services/static-webserver/client/source/class/osparc/NewUITracker.js index 3955b4ef2b51..a20d1cade733 100644 --- a/services/static-webserver/client/source/class/osparc/NewUITracker.js +++ b/services/static-webserver/client/source/class/osparc/NewUITracker.js @@ -20,34 +20,37 @@ qx.Class.define("osparc.NewUITracker", { type: "singleton", statics: { - CHECK_INTERVAL: 60*60*1000 // Check every 60' + CHECK_INTERVAL: 0.5*60*1000 // Check every 30" + // CHECK_INTERVAL: 60*60*1000 // Check every 60' }, members: { __checkInterval: null, + checkNewUI: function() { + osparc.NewRelease.isMyFrontendOld() + .then(newReleaseAvailable => { + if (newReleaseAvailable) { + let msg = ""; + msg += qx.locale.Manager.tr("A new version of the application is now available."); + msg += "
"; + msg += qx.locale.Manager.tr("Reload the page to get the latest features."); + // permanent message + osparc.FlashMessenger.logAs(msg, "INFO", 0).set({ + maxWidth: 500 + }); + // stop tracker in case it was running + this.stopTracker(); + } + }) + .catch(() => setTimeout(() => checkNewUI(), 5*1000)); + }, + startTracker: function() { - const checkNewUI = () => { - osparc.NewRelease.isMyFrontendOld() - .then(newReleaseAvailable => { - if (newReleaseAvailable) { - let msg = ""; - msg += qx.locale.Manager.tr("A new version of the application is now available."); - msg += "
"; - msg += qx.locale.Manager.tr("Click the Reload button to get the latest features."); - // permanent message - const flashMessage = osparc.FlashMessenger.logAs(msg, "INFO", 0).set({ - maxWidth: 500 - }); - const reloadButton = osparc.utils.Utils.reloadNoCacheButton(); - flashMessage.addWidget(reloadButton); - this.stopTracker(); - } - }) - .catch(() => setTimeout(() => checkNewUI(), 5*1000)); - }; - checkNewUI(); - this.__checkInterval = setInterval(checkNewUI, this.self().CHECK_INTERVAL); + this.checkNewUI(); + this.__checkInterval = setInterval(() =>{ + this.checkNewUI(); + }, this.self().CHECK_INTERVAL); }, stopTracker: function() { From 66ed11efe0c3990e92b53413f9f6b4fdbad7b7ac Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 09:40:07 +0200 Subject: [PATCH 02/12] startTracker --- .../client/source/class/osparc/desktop/MainPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/static-webserver/client/source/class/osparc/desktop/MainPage.js b/services/static-webserver/client/source/class/osparc/desktop/MainPage.js index 9d12d3945866..c04da057ecad 100644 --- a/services/static-webserver/client/source/class/osparc/desktop/MainPage.js +++ b/services/static-webserver/client/source/class/osparc/desktop/MainPage.js @@ -56,7 +56,7 @@ qx.Class.define("osparc.desktop.MainPage", { // Some resources request before building the main stack osparc.MaintenanceTracker.getInstance().startTracker(); osparc.CookieExpirationTracker.getInstance().startTracker(); - // osparc.NewUITracker.getInstance().startTracker(); + osparc.NewUITracker.getInstance().startTracker(); const store = osparc.store.Store.getInstance(); const preloadPromises = []; From dc7b1b85bd0d12798628345a18d92342a67dc0ec Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 09:40:14 +0200 Subject: [PATCH 03/12] checkNewUI --- .../static-webserver/client/source/class/osparc/Application.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/static-webserver/client/source/class/osparc/Application.js b/services/static-webserver/client/source/class/osparc/Application.js index fc167e79592c..f65cd0a92e69 100644 --- a/services/static-webserver/client/source/class/osparc/Application.js +++ b/services/static-webserver/client/source/class/osparc/Application.js @@ -456,6 +456,8 @@ qx.Class.define("osparc.Application", { osparc.data.Resources.getOne("profile") .then(profile => { if (profile) { + osparc.NewUITracker.getInstance().checkNewUI(); + this.__connectWebSocket(); if (osparc.auth.Data.getInstance().isGuest()) { From 9650dd4e431369cfd0583d51c68021f5ef3bbea6 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 09:43:52 +0200 Subject: [PATCH 04/12] Show Closable Ribbon Message 4 days in advance --- .../client/source/class/osparc/MaintenanceTracker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/static-webserver/client/source/class/osparc/MaintenanceTracker.js b/services/static-webserver/client/source/class/osparc/MaintenanceTracker.js index 2823d768e141..81d53a141084 100644 --- a/services/static-webserver/client/source/class/osparc/MaintenanceTracker.js +++ b/services/static-webserver/client/source/class/osparc/MaintenanceTracker.js @@ -41,7 +41,7 @@ qx.Class.define("osparc.MaintenanceTracker", { statics: { CHECK_INTERVAL: 15*60*1000, // Check every 15' - CLOSABLE_WARN_IN_ADVANCE: 48*60*60*1000, // Show Closable Ribbon Message 48h in advance + CLOSABLE_WARN_IN_ADVANCE: 4*24*60*60*1000, // Show Closable Ribbon Message 4 days in advance PERMANENT_WARN_IN_ADVANCE: 60*60*1000 // Show Permanent Ribbon Message 60' in advance }, From 5d4731e26f0899cdd3abe2c2d0be93e6d0fc83e9 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 09:57:12 +0200 Subject: [PATCH 05/12] undo --- .../client/source/class/osparc/NewUITracker.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/static-webserver/client/source/class/osparc/NewUITracker.js b/services/static-webserver/client/source/class/osparc/NewUITracker.js index a20d1cade733..29503b0affdf 100644 --- a/services/static-webserver/client/source/class/osparc/NewUITracker.js +++ b/services/static-webserver/client/source/class/osparc/NewUITracker.js @@ -20,8 +20,7 @@ qx.Class.define("osparc.NewUITracker", { type: "singleton", statics: { - CHECK_INTERVAL: 0.5*60*1000 // Check every 30" - // CHECK_INTERVAL: 60*60*1000 // Check every 60' + CHECK_INTERVAL: 60*60*1000 // Check every 60' }, members: { From 6602b7df457e0e20731f12f40ef4346e3d0574d8 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 10:14:18 +0200 Subject: [PATCH 06/12] 101 --- .../client/source/class/osparc/dashboard/NewPlusButton.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js b/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js index 125844d2b1cc..eaa4325adf9f 100644 --- a/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js +++ b/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js @@ -24,7 +24,7 @@ qx.Class.define("osparc.dashboard.NewPlusButton", { this.set({ appearance: "strong-button", icon: osparc.dashboard.CardBase.NEW_ICON + "20", - label: this.tr("New"), + label: this.tr("New 101"), font: "text-16", gap: 15, padding: 15, From 2fcb97c48bd6dbf5817ec0a45c9fcd0e1889b260 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 10:17:32 +0200 Subject: [PATCH 07/12] minor --- .../static-webserver/client/source/class/osparc/Application.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/static-webserver/client/source/class/osparc/Application.js b/services/static-webserver/client/source/class/osparc/Application.js index f65cd0a92e69..fc167e79592c 100644 --- a/services/static-webserver/client/source/class/osparc/Application.js +++ b/services/static-webserver/client/source/class/osparc/Application.js @@ -456,8 +456,6 @@ qx.Class.define("osparc.Application", { osparc.data.Resources.getOne("profile") .then(profile => { if (profile) { - osparc.NewUITracker.getInstance().checkNewUI(); - this.__connectWebSocket(); if (osparc.auth.Data.getInstance().isGuest()) { From eb83596e1a880c9321ac279740293d439c782f84 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 10:59:22 +0200 Subject: [PATCH 08/12] minor --- .../source/class/osparc/NewUITracker.js | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/services/static-webserver/client/source/class/osparc/NewUITracker.js b/services/static-webserver/client/source/class/osparc/NewUITracker.js index 29503b0affdf..963ff6e5ec9f 100644 --- a/services/static-webserver/client/source/class/osparc/NewUITracker.js +++ b/services/static-webserver/client/source/class/osparc/NewUITracker.js @@ -26,30 +26,27 @@ qx.Class.define("osparc.NewUITracker", { members: { __checkInterval: null, - checkNewUI: function() { - osparc.NewRelease.isMyFrontendOld() - .then(newReleaseAvailable => { - if (newReleaseAvailable) { - let msg = ""; - msg += qx.locale.Manager.tr("A new version of the application is now available."); - msg += "
"; - msg += qx.locale.Manager.tr("Reload the page to get the latest features."); - // permanent message - osparc.FlashMessenger.logAs(msg, "INFO", 0).set({ - maxWidth: 500 - }); - // stop tracker in case it was running - this.stopTracker(); - } - }) - .catch(() => setTimeout(() => checkNewUI(), 5*1000)); - }, - startTracker: function() { - this.checkNewUI(); - this.__checkInterval = setInterval(() =>{ - this.checkNewUI(); - }, this.self().CHECK_INTERVAL); + const checkNewUI = () => { + osparc.NewRelease.isMyFrontendOld() + .then(newReleaseAvailable => { + if (newReleaseAvailable) { + let msg = ""; + msg += qx.locale.Manager.tr("A new version of the application is now available."); + msg += "
"; + msg += qx.locale.Manager.tr("Reload the page to get the latest features."); + // permanent message + osparc.FlashMessenger.logAs(msg, "INFO", 0).set({ + maxWidth: 500 + }); + // stop tracker in case it was running + this.stopTracker(); + } + }) + .catch(() => setTimeout(() => checkNewUI(), 5*1000)); + }; + + this.__checkInterval = setInterval(() => checkNewUI(), this.self().CHECK_INTERVAL); }, stopTracker: function() { From 0be18c1c498f5dc596efa59ef652ab172a1a5611 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 10:59:50 +0200 Subject: [PATCH 09/12] minor --- .../static-webserver/client/source/class/osparc/NewUITracker.js | 1 + 1 file changed, 1 insertion(+) diff --git a/services/static-webserver/client/source/class/osparc/NewUITracker.js b/services/static-webserver/client/source/class/osparc/NewUITracker.js index 963ff6e5ec9f..d84684f088d0 100644 --- a/services/static-webserver/client/source/class/osparc/NewUITracker.js +++ b/services/static-webserver/client/source/class/osparc/NewUITracker.js @@ -46,6 +46,7 @@ qx.Class.define("osparc.NewUITracker", { .catch(() => setTimeout(() => checkNewUI(), 5*1000)); }; + checkNewUI(); this.__checkInterval = setInterval(() => checkNewUI(), this.self().CHECK_INTERVAL); }, From 7d5038ec93504126cb3f3c35602e0cb246464516 Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 12:06:01 +0200 Subject: [PATCH 10/12] push --- .../client/source/class/osparc/dashboard/NewPlusButton.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js b/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js index eaa4325adf9f..e5bd730c94be 100644 --- a/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js +++ b/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js @@ -24,7 +24,7 @@ qx.Class.define("osparc.dashboard.NewPlusButton", { this.set({ appearance: "strong-button", icon: osparc.dashboard.CardBase.NEW_ICON + "20", - label: this.tr("New 101"), + label: this.tr("New 102"), font: "text-16", gap: 15, padding: 15, From fdb2b6e1b29f8cf676e0a5192104c4c77e61085b Mon Sep 17 00:00:00 2001 From: odeimaiz Date: Wed, 9 Jul 2025 12:36:30 +0200 Subject: [PATCH 11/12] back to New --- .../client/source/class/osparc/dashboard/NewPlusButton.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js b/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js index e5bd730c94be..125844d2b1cc 100644 --- a/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js +++ b/services/static-webserver/client/source/class/osparc/dashboard/NewPlusButton.js @@ -24,7 +24,7 @@ qx.Class.define("osparc.dashboard.NewPlusButton", { this.set({ appearance: "strong-button", icon: osparc.dashboard.CardBase.NEW_ICON + "20", - label: this.tr("New 102"), + label: this.tr("New"), font: "text-16", gap: 15, padding: 15, From bdc812ca45e6bdfec0d9dc9bb6308c13a48c0e71 Mon Sep 17 00:00:00 2001 From: Odei Maiz <33152403+odeimaiz@users.noreply.github.com> Date: Wed, 9 Jul 2025 14:49:40 +0200 Subject: [PATCH 12/12] Update services/static-webserver/client/source/class/osparc/NewUITracker.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../static-webserver/client/source/class/osparc/NewUITracker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/static-webserver/client/source/class/osparc/NewUITracker.js b/services/static-webserver/client/source/class/osparc/NewUITracker.js index d84684f088d0..bf4fe89b6dd5 100644 --- a/services/static-webserver/client/source/class/osparc/NewUITracker.js +++ b/services/static-webserver/client/source/class/osparc/NewUITracker.js @@ -47,7 +47,7 @@ qx.Class.define("osparc.NewUITracker", { }; checkNewUI(); - this.__checkInterval = setInterval(() => checkNewUI(), this.self().CHECK_INTERVAL); + this.__checkInterval = setInterval(checkNewUI, this.self().CHECK_INTERVAL); }, stopTracker: function() {