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');
}
diff --git a/src/controllers/user/menu/index.html b/src/controllers/user/menu/index.html
index 58ec33b400..66a07f2a14 100644
--- a/src/controllers/user/menu/index.html
+++ b/src/controllers/user/menu/index.html
@@ -112,6 +112,15 @@
+
+
+
+
diff --git a/src/controllers/user/menu/index.js b/src/controllers/user/menu/index.js
index 7b0d045b17..f9443c92d1 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('.exitApp').addEventListener('click', function () {
+ appHost.exit();
+ });
+
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 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 6e8f8ae8de..ea74637839 100644
--- a/src/scripts/libraryMenu.js
+++ b/src/scripts/libraryMenu.js
@@ -302,6 +302,11 @@ import Headroom from 'headroom.js';
html += '';
html += '';
+
+ if (appHost.supports('exitmenu')) {
+ html += '';
+ }
+
html += '';
}
@@ -318,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);
@@ -706,6 +716,10 @@ import Headroom from 'headroom.js';
Dashboard.navigate('mypreferencesmenu.html');
}
+ function onExitAppClick() {
+ appHost.exit();
+ }
+
function onLogoutClick() {
Dashboard.logout();
}
diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json
index 4d71420ce0..116692d50f 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",
+ "ButtonExitApp": "Exit Application",
"ButtonStart": "Start",
"ButtonStop": "Stop",
"ButtonSubmit": "Submit",
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index f1144e8f40..fe75c835c9 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",
+ "ButtonExitApp": "Exit Application",
"ButtonSplit": "Split",
"ButtonStart": "Start",
"ButtonStop": "Stop",