From 88aa2950b37caeefb96c5f085adf4947dd3ed7f2 Mon Sep 17 00:00:00 2001 From: Josef Citrine Date: Sun, 12 Jun 2016 01:07:14 +0100 Subject: [PATCH] #25: Hide toggle if service worker fails to register --- .../app/controllers/application.coffee | 1 + .../app/directives/notification-list.coffee | 29 ++++++++++--------- .../scripts/app/services/notifications.coffee | 1 + 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/resources/assets/scripts/app/controllers/application.coffee b/resources/assets/scripts/app/controllers/application.coffee index c5e6cf37..7e09bd5b 100644 --- a/resources/assets/scripts/app/controllers/application.coffee +++ b/resources/assets/scripts/app/controllers/application.coffee @@ -33,6 +33,7 @@ module.exports = angular.module('ponyfm').controller "application", [ console.log 'SW registered', reg ).catch (err) -> console.log 'SW register failed', err + notifications.serviceWorkerSupported = false $scope.menuToggle = () -> $rootScope.$broadcast('sidebarToggled') diff --git a/resources/assets/scripts/app/directives/notification-list.coffee b/resources/assets/scripts/app/directives/notification-list.coffee index 45d0fa57..d67d64eb 100644 --- a/resources/assets/scripts/app/directives/notification-list.coffee +++ b/resources/assets/scripts/app/directives/notification-list.coffee @@ -48,19 +48,22 @@ module.exports = angular.module('ponyfm').directive 'pfmNotificationList', () -> checkSubscription = () -> - $scope.disabled = true - notifications.checkSubscription().done (subStatus) -> - switch subStatus - when 0 - $scope.subscribed = false - $scope.switchDisabled = false - when 1 - $scope.subscribed = true - $scope.switchDisabled = false - else - $scope.subscribed = false - $scope.switchDisabled = true - $scope.hidden = true + if 'serviceWorker' of navigator && notifications.serviceWorkerSupported + $scope.disabled = true + notifications.checkSubscription().done (subStatus) -> + switch subStatus + when 0 + $scope.subscribed = false + $scope.switchDisabled = false + when 1 + $scope.subscribed = true + $scope.switchDisabled = false + else + $scope.subscribed = false + $scope.switchDisabled = true + $scope.hidden = true + else + $scope.switchHidden = true refreshNotifications = () -> notifications.getNotifications().done (result) -> diff --git a/resources/assets/scripts/app/services/notifications.coffee b/resources/assets/scripts/app/services/notifications.coffee index 0a10bb94..56aa66d9 100644 --- a/resources/assets/scripts/app/services/notifications.coffee +++ b/resources/assets/scripts/app/services/notifications.coffee @@ -19,6 +19,7 @@ module.exports = angular.module('ponyfm').factory('notifications', [ ($rootScope, $http) -> self = notificationList: [] + serviceWorkerSupported: true getNotifications: () -> def = new $.Deferred()