diff --git a/client/css/style.css b/client/css/style.css index c748ccea..d91eb52e 100644 --- a/client/css/style.css +++ b/client/css/style.css @@ -1128,6 +1128,11 @@ button, color: #2ecc40; } +#settings .error { + color: #e74c3c; + margin-top: .2em; +} + #form { background: #eee; border-top: 1px solid #ddd; diff --git a/client/index.html b/client/index.html index 43514042..066ba553 100644 --- a/client/index.html +++ b/client/index.html @@ -243,8 +243,9 @@
diff --git a/client/js/lounge.js b/client/js/lounge.js index 59dedfae..fc87c491 100644 --- a/client/js/lounge.js +++ b/client/js/lounge.js @@ -407,7 +407,7 @@ $(function() { var userStyles = $("#user-specified-css"); var settings = $("#settings"); var options = $.extend({ - badge: false, + desktopNotifications: false, colors: false, join: true, links: true, @@ -467,11 +467,11 @@ $(function() { }).find("input") .trigger("change"); - $("#badge").on("change", function() { + $("#desktopNotifications").on("change", function() { var self = $(this); if (self.prop("checked")) { if (Notification.permission !== "granted") { - Notification.requestPermission(); + Notification.requestPermission(updateDesktopNotificationStatus); } } }); @@ -757,7 +757,7 @@ $(function() { } toggleFaviconNotification(true); - if (options.badge && Notification.permission === "granted") { + if (options.desktopNotifications && Notification.permission === "granted") { var title; var body; @@ -860,6 +860,8 @@ $(function() { }); }); + windows.on("show", "#settings", updateDesktopNotificationStatus); + forms.on("submit", "form", function(e) { e.preventDefault(); var event = "auth"; @@ -992,6 +994,23 @@ $(function() { location.reload(); } + function updateDesktopNotificationStatus(){ + var checkbox = $("#desktopNotifications"); + var warning = $("#warnDisabledDesktopNotifications"); + + if (Notification.permission === "denied"){ + checkbox.attr("disabled", true); + checkbox.attr("checked", false); + warning.show(); + } else { + if (Notification.permission === "default" && checkbox.prop("checked")){ + checkbox.attr("checked", false); + } + checkbox.attr("disabled", false); + warning.hide(); + } + } + function sortable() { sidebar.sortable({ axis: "y",