Show desktop notification state. Provide help if the user has previously denied permission to display them.

pull/4/merge
Emmanuel ROHEE 10 years ago
parent 0ef54caa28
commit c3a774e414
  1. 7
      webclient/app-controller.js
  2. 19
      webclient/settings/settings-controller.js
  3. 23
      webclient/settings/settings.html

@ -69,13 +69,6 @@ angular.module('MatrixWebClientController', ['matrixService', 'mPresence', 'even
$scope.logout();
});
$scope.requestNotifications = function() {
if (window.Notification) {
console.log("Notification.permission: " + window.Notification.permission);
window.Notification.requestPermission(function(){});
}
};
}]);

@ -143,4 +143,23 @@ angular.module('SettingsController', ['matrixService', 'mFileUpload', 'mFileInpu
}
);
};
/*** Desktop notifications section ***/
$scope.settings = {
notifications: undefined
};
// If the browser supports it, check the desktop notification state
if ("Notification" in window) {
$scope.settings.notifications = window.Notification.permission;
}
$scope.requestNotifications = function() {
console.log("requestNotifications");
window.Notification.requestPermission(function (permission) {
console.log(" -> User decision: " + permission);
$scope.settings.notifications = permission;
});
};
}]);

@ -53,6 +53,24 @@
</div>
<br/>
<h3>Desktop notifications</h3>
<div ng-switch="settings.notifications">
<div ng-switch-when="granted">
Notifications are enabled.
</div>
<div ng-switch-when="denied">
You have denied permission for notifications.<br/>
To enable it, reset the notification setting for this web site into your browser settings.
</div>
<div ng-switch-when="default">
<button ng-click="requestNotifications()">Click here to enable them</button>
</div>
<div ng-switch-default="">
Sorry, your browser does not support notifications.
</div>
</div>
<br/>
<h3>Configuration</h3>
<div>
<div>Home server: {{ config.homeserver }} </div>
@ -61,11 +79,6 @@
</div>
<br/>
<div>
<div><button ng-click="requestNotifications()">Request notifications</button></div>
</div>
<br/>
{{ feedback }}
</div>

Loading…
Cancel
Save