diff --git a/lib/gui/app/modules/screensaver.ts b/lib/gui/app/modules/screensaver.ts index 7da91adb..38468e46 100644 --- a/lib/gui/app/modules/screensaver.ts +++ b/lib/gui/app/modules/screensaver.ts @@ -28,7 +28,6 @@ const EVENT_TYPES = [ 'pointermove', 'pointerup', ] as const; -const SCREENSAVER_DELAY = 30 * 1000; // TODO: make this configurable function exec( command: string, @@ -86,14 +85,16 @@ async function setDelay($delay: number | null) { } } -async function getDelay() { - const enabled = await settings.get('enableScreensaver'); - return enabled ? SCREENSAVER_DELAY : null; +function delayValue(d?: string): number | null { + if (d === undefined || d === 'never') { + return null; + } + return parseInt(d, 10) * 60 * 1000; } export async function init(): Promise { - setDelay(await getDelay()); - settings.events.on('enableScreensaver', enabled => { - setDelay(enabled ? SCREENSAVER_DELAY : null); + setDelay(delayValue(await settings.get('screensaverDelay'))); + settings.events.on('screensaverDelay', d => { + setDelay(delayValue(d)); }); } diff --git a/lib/gui/app/pages/settings/controllers/settings.js b/lib/gui/app/pages/settings/controllers/settings.js index a6e0376a..006ad65a 100644 --- a/lib/gui/app/pages/settings/controllers/settings.js +++ b/lib/gui/app/pages/settings/controllers/settings.js @@ -108,6 +108,16 @@ module.exports = function (WarningModalService) { }).catch(exceptionReporter.report) } + this.set = (setting, value) => { + analytics.logEvent('Set setting', { + setting, + value, + applicationSessionUuid: store.getState().toJS().applicationSessionUuid + }) + this.model.set(setting, value) + this.refreshSettings() + } + /** * @summary Show unsafe mode based on an env var * @function @@ -123,7 +133,7 @@ module.exports = function (WarningModalService) { } /** - * @summary Show the enableScreensaver setting + * @summary Show the screensaverDelay setting * @function * @public * @@ -131,9 +141,9 @@ module.exports = function (WarningModalService) { * * * @example - * SettingsController.shouldShowEnableScreensaver() + * SettingsController.shouldShowScreensaverDelay() */ - this.shouldShowEnableScreensaver = () => { - return settings.get('showEnableScreensaver') + this.shouldShowScreensaverDelay = () => { + return settings.get('showScreensaverDelay') } } diff --git a/lib/gui/app/pages/settings/templates/settings.tpl.html b/lib/gui/app/pages/settings/templates/settings.tpl.html index 917b13d5..ab83afc7 100644 --- a/lib/gui/app/pages/settings/templates/settings.tpl.html +++ b/lib/gui/app/pages/settings/templates/settings.tpl.html @@ -78,13 +78,40 @@ -
+
+

+ Screensaver +

+ +
+