From 3c5da3f01bc46163da9e0dd05b24263cac3399fa Mon Sep 17 00:00:00 2001 From: iainsaxonhome Date: Wed, 12 Jan 2022 10:39:21 +1100 Subject: [PATCH 1/4] Added Quit App to menu --- src/controllers/user/menu/index.html | 9 +++++++++ src/controllers/user/menu/index.js | 7 +++++++ src/scripts/libraryMenu.js | 5 +++++ src/strings/en-gb.json | 1 + src/strings/en-us.json | 1 + 5 files changed, 23 insertions(+) diff --git a/src/controllers/user/menu/index.html b/src/controllers/user/menu/index.html index 58ec33b400..39b6c57cc9 100644 --- a/src/controllers/user/menu/index.html +++ b/src/controllers/user/menu/index.html @@ -112,6 +112,15 @@ + + +
+ +
+
${ButtonQuitApp}
+
+
+
diff --git a/src/controllers/user/menu/index.js b/src/controllers/user/menu/index.js index 7b0d045b17..4e707af742 100644 --- a/src/controllers/user/menu/index.js +++ b/src/controllers/user/menu/index.js @@ -17,6 +17,10 @@ export default function (view, params) { window.NativeShell.openClientSettings(); }); + view.querySelector('.quitApp').addEventListener('click', function () { + window.NativeShell.quitApp(); + }); + view.addEventListener('viewshow', function () { // this page can also be used by admins to change user preferences from the user edit page const userId = params.userId || Dashboard.getCurrentUserId(); @@ -33,6 +37,9 @@ export default function (view, params) { const supportsClientSettings = appHost.supports('clientsettings'); page.querySelector('.clientSettings').classList.toggle('hide', !supportsClientSettings); + const supportsQuitApp = appHost.supports('quitapp'); + page.querySelector('.quitApp').classList.toggle('hide', !supportsQuitApp); + const supportsMultiServer = appHost.supports('multiserver'); page.querySelector('.selectServer').classList.toggle('hide', !supportsMultiServer); diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index 6e8f8ae8de..18e3800031 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -302,6 +302,11 @@ import Headroom from 'headroom.js'; html += '' + globalize.translate('Settings') + ''; html += '' + globalize.translate('ButtonSignOut') + ''; + + if (appHost.supports('quitapp')) { + html += '' + globalize.translate('ButtonQuitApp') + ''; + } + html += ''; } diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index 4d71420ce0..416daa815b 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -134,6 +134,7 @@ "ButtonShutdown": "Shutdown", "ButtonSignIn": "Sign In", "ButtonSignOut": "Sign Out", + "ButtonQuitApp": "Quit Application", "ButtonStart": "Start", "ButtonStop": "Stop", "ButtonSubmit": "Submit", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index f1144e8f40..bdf4a4bfc7 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -106,6 +106,7 @@ "ButtonShutdown": "Shutdown", "ButtonSignIn": "Sign In", "ButtonSignOut": "Sign Out", + "ButtonQuitApp": "Quit Application", "ButtonSplit": "Split", "ButtonStart": "Start", "ButtonStop": "Stop", From c03166ed02b2a6bb59339b9914b368d7636bb52c Mon Sep 17 00:00:00 2001 From: iainsaxonhome Date: Thu, 13 Jan 2022 08:46:00 +1100 Subject: [PATCH 2/4] Reimplemented Exit App function --- src/controllers/user/menu/index.html | 4 ++-- src/controllers/user/menu/index.js | 8 ++++---- src/scripts/libraryMenu.js | 4 ++-- src/strings/en-gb.json | 2 +- src/strings/en-us.json | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/controllers/user/menu/index.html b/src/controllers/user/menu/index.html index 39b6c57cc9..66a07f2a14 100644 --- a/src/controllers/user/menu/index.html +++ b/src/controllers/user/menu/index.html @@ -113,11 +113,11 @@ - +
-
${ButtonQuitApp}
+
${ButtonExitApp}
diff --git a/src/controllers/user/menu/index.js b/src/controllers/user/menu/index.js index 4e707af742..f9443c92d1 100644 --- a/src/controllers/user/menu/index.js +++ b/src/controllers/user/menu/index.js @@ -17,8 +17,8 @@ export default function (view, params) { window.NativeShell.openClientSettings(); }); - view.querySelector('.quitApp').addEventListener('click', function () { - window.NativeShell.quitApp(); + view.querySelector('.exitApp').addEventListener('click', function () { + appHost.exit(); }); view.addEventListener('viewshow', function () { @@ -37,8 +37,8 @@ export default function (view, params) { const supportsClientSettings = appHost.supports('clientsettings'); page.querySelector('.clientSettings').classList.toggle('hide', !supportsClientSettings); - const supportsQuitApp = appHost.supports('quitapp'); - page.querySelector('.quitApp').classList.toggle('hide', !supportsQuitApp); + const supportsExitMenu = appHost.supports('exitmenu'); + page.querySelector('.exitApp').classList.toggle('hide', !supportsExitMenu); const supportsMultiServer = appHost.supports('multiserver'); page.querySelector('.selectServer').classList.toggle('hide', !supportsMultiServer); diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index 18e3800031..0fe49e86ec 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -303,8 +303,8 @@ import Headroom from 'headroom.js'; html += '' + globalize.translate('Settings') + ''; html += '' + globalize.translate('ButtonSignOut') + ''; - if (appHost.supports('quitapp')) { - html += '' + globalize.translate('ButtonQuitApp') + ''; + if (appHost.supports('exitmenu')) { + html += '' + globalize.translate('ButtonExitApp') + ''; } html += ''; diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index 416daa815b..116692d50f 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -134,7 +134,7 @@ "ButtonShutdown": "Shutdown", "ButtonSignIn": "Sign In", "ButtonSignOut": "Sign Out", - "ButtonQuitApp": "Quit Application", + "ButtonExitApp": "Exit Application", "ButtonStart": "Start", "ButtonStop": "Stop", "ButtonSubmit": "Submit", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index bdf4a4bfc7..fe75c835c9 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -106,7 +106,7 @@ "ButtonShutdown": "Shutdown", "ButtonSignIn": "Sign In", "ButtonSignOut": "Sign Out", - "ButtonQuitApp": "Quit Application", + "ButtonExitApp": "Exit Application", "ButtonSplit": "Split", "ButtonStart": "Start", "ButtonStop": "Stop", From 2fc99360bda11ab89cf40cb09a663d8acbd0e80e Mon Sep 17 00:00:00 2001 From: iainsaxonhome Date: Sun, 16 Jan 2022 21:25:13 +1100 Subject: [PATCH 3/4] Removed exitmenu from browser support list --- src/components/apphost.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/apphost.js b/src/components/apphost.js index 3e4d9d1f50..e468ce161d 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -199,7 +199,6 @@ const supportedFeatures = function () { if (browser.operaTv || browser.tizen || browser.orsay || browser.web0s) { features.push('exit'); } else { - features.push('exitmenu'); features.push('plugins'); } From d1d4ff865dd967607ceb117ba194573647629cf2 Mon Sep 17 00:00:00 2001 From: iainsaxonhome Date: Mon, 17 Jan 2022 08:26:26 +1100 Subject: [PATCH 4/4] Added exit app event handling to library menu --- src/scripts/libraryMenu.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index 0fe49e86ec..ea74637839 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -323,6 +323,11 @@ import Headroom from 'headroom.js'; btnSettings.addEventListener('click', onSettingsClick); } + const btnExit = navDrawerScrollContainer.querySelector('.exitApp'); + if (btnExit) { + btnExit.addEventListener('click', onExitAppClick); + } + const btnLogout = navDrawerScrollContainer.querySelector('.btnLogout'); if (btnLogout) { btnLogout.addEventListener('click', onLogoutClick); @@ -711,6 +716,10 @@ import Headroom from 'headroom.js'; Dashboard.navigate('mypreferencesmenu.html'); } + function onExitAppClick() { + appHost.exit(); + } + function onLogoutClick() { Dashboard.logout(); }