From f3c71aaf8c37f63c72e095c7ea33a0674c79cfb7 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sun, 27 Oct 2019 21:38:55 -0600 Subject: [PATCH] Move alert settings to own page, audio.js honors filename settings, units option is now a select --- www/assets/js/audio.js | 4 +- www/assets/js/settings.js | 11 ++-- www/pages/alertsettings.html | 90 ++++++++++++++++++++++++++ www/pages/settings.html | 11 ++++ www/routes.js | 119 +++++++++++++++++++++++------------ 5 files changed, 190 insertions(+), 45 deletions(-) create mode 100644 www/pages/alertsettings.html diff --git a/www/assets/js/audio.js b/www/assets/js/audio.js index c978697..cdb8f30 100644 --- a/www/assets/js/audio.js +++ b/www/assets/js/audio.js @@ -14,11 +14,11 @@ function initSFX() { localStorage.setItem("alertvolume", 100); } - var alertNoiseName = localStorage.getItem("alertsound"); + var alertNoiseFile = SETTINGS.alertsounds[localStorage.getItem("alertsound")].file; var alertVolume = localStorage.getItem("alertvolume"); sfx = { - "alert": new Audio("assets/audio/alert." + alertNoiseName + ".mp3"), + "alert": new Audio("assets/audio/" + alertNoiseFile), "ok": new Audio("assets/audio/ok.mp3"), "error": new Audio("assets/audio/error.mp3") }; diff --git a/www/assets/js/settings.js b/www/assets/js/settings.js index 8c823a2..1bc94f6 100644 --- a/www/assets/js/settings.js +++ b/www/assets/js/settings.js @@ -17,10 +17,8 @@ $('.item-content[data-setting=darktheme] .toggle input').on("change", function ( } }); -$('.item-content[data-setting=units] .toggle input').on("change", function () { - var checked = $(this).prop('checked'); - console.log(checked); - localStorage.setItem("units", (checked ? "imperial" : "metric")); +$('.item-link[data-setting=units] select').on("change", function () { + localStorage.setItem("units", $('.item-link[data-setting=units] select').val()); }); $('.item-content[data-setting=wakelock] .toggle input').on("change", function () { @@ -59,6 +57,11 @@ $('.item-content[data-setting=alertvolume] .range-slider').on('range:changed', f playSound("alert"); }); +$('.item-content[data-setting=alertradius] .range-slider').on('range:changed', function (e, range) { + var val = app.range.get(".item-content[data-setting=alertradius] .range-slider").getValue(); + localStorage.setItem("alertradius", val); +}); + $('.item-content[data-setting=alertinterval] .range-slider').on('range:changed', function (e, range) { var val = app.range.get(".item-content[data-setting=alertinterval] .range-slider").getValue(); localStorage.setItem("alertinterval", val); diff --git a/www/pages/alertsettings.html b/www/pages/alertsettings.html new file mode 100644 index 0000000..35e93a7 --- /dev/null +++ b/www/pages/alertsettings.html @@ -0,0 +1,90 @@ + + +
+ + + + +
+
+ +
+
+ + + +
diff --git a/www/pages/settings.html b/www/pages/settings.html index 3551363..129bb4b 100644 --- a/www/pages/settings.html +++ b/www/pages/settings.html @@ -22,6 +22,16 @@ diff --git a/www/routes.js b/www/routes.js index ee6bffe..af336c0 100644 --- a/www/routes.js +++ b/www/routes.js @@ -103,42 +103,15 @@ var routes = [ } } - var alertsounds = []; - for (var id in SETTINGS.alertsounds) { - if (SETTINGS.alertsounds.hasOwnProperty(id)) { - alertsounds.push({ - value: id, - label: SETTINGS.alertsounds[id].name, - selected: localStorage.getItem("alertsound") == id - }); - } - } - - var settings = [{ - setting: "alertsound", - title: "Alert sound", - text: "Select which sound to play when a package is nearby.", - select: true, - options: alertsounds - }, + var settings = [ { - setting: "alertvolume", - title: "Alert volume", - min: 0, - max: 100, - step: 1, - value: localStorage.getItem("alertvolume"), - slider: true - }, - { - setting: "alertinterval", - title: "Alert interval (seconds)", - min: 15, - max: 120, - step: 15, - value: localStorage.getItem("alertinterval") == null ? 30 : localStorage.getItem("alertinterval"), - slider: true - }]; + setting: "alerts", + title: "Package Alerts", + text: "Change the alert sound, volume, and distance.", + onclick: "router.navigate('/settings/alerts')", + link: true + } + ]; if (platform_type == "cordova") { settings.push({ @@ -163,10 +136,19 @@ var routes = [ { setting: "units", title: "Measurement units", - text: "Use feet and miles for showing distance", - toggle: true, - checked: localStorage.getItem("units") == "imperial", - onclick: "" + select: true, + options: [ + { + value: "metric", + label: "Meters/Kilometers", + selected: localStorage.getItem("units") == "metric" + }, + { + value: "imperial", + label: "Feet/Miles", + selected: localStorage.getItem("units") == "imperial" + } + ] }, { setting: "mapsource", @@ -203,4 +185,63 @@ var routes = [ }); } }, + { + path: '/settings/alerts', + name: 'alertsettings', + async: function (routeTo, routeFrom, resolve, reject) { + var alertsounds = []; + for (var id in SETTINGS.alertsounds) { + if (SETTINGS.alertsounds.hasOwnProperty(id)) { + alertsounds.push({ + value: id, + label: SETTINGS.alertsounds[id].name, + selected: localStorage.getItem("alertsound") == id + }); + } + } + + var settings = [{ + setting: "alertsound", + title: "Alert sound", + text: "Select which sound to play when a package is nearby.", + select: true, + options: alertsounds + }, + { + setting: "alertvolume", + title: "Alert volume", + min: 0, + max: 100, + step: 1, + value: localStorage.getItem("alertvolume"), + slider: true + }, + { + setting: "alertradius", + title: "Alert radius (meters)", + min: 50, + max: 500, + step: 50, + value: localStorage.getItem("alertradius"), + slider: true + }, + { + setting: "alertinterval", + title: "Alert interval (seconds)", + min: 15, + max: 120, + step: 15, + value: localStorage.getItem("alertinterval") == null ? 30 : localStorage.getItem("alertinterval"), + slider: true + }]; + + resolve({ + templateUrl: './pages/alertsettings.html' + }, { + context: { + settings: settings + } + }); + } + }, ]; \ No newline at end of file