[eGroupWare-svn] r56004 - /trunk/egroupware/api/js/jsapi/egw_notification.js

[email protected] Wed, 04 May 2016 08:12:52 -0000
Newsgroups gmane.comp.web.egroupware.cvs
Message-ID <[email protected]>
Author: hnategh
Date: Wed May  4 10:12:51 2016
New Revision: 56004

URL: http://svn.stylite.de/viewvc/egroupware?rev=56004&view=rev
Log:
Ask for notification permission only when it gets called

Modified:
    trunk/egroupware/api/js/jsapi/egw_notification.js

Modified: trunk/egroupware/api/js/jsapi/egw_notification.js
URL: http://svn.stylite.de/viewvc/egroupware/trunk/egroupware/api/js/jsapi/egw_notification.js?rev=56004&r1=56003&r2=56004&view=diff
==============================================================================
--- trunk/egroupware/api/js/jsapi/egw_notification.js (original)
+++ trunk/egroupware/api/js/jsapi/egw_notification.js Wed May  4 10:12:51 2016
@@ -27,9 +27,6 @@
 	// Notification permission, the default value is 'default' which is equivalent to 'denied'
 	var permission = Notification.permission || 'default';
 
-	if (Notification && Notification.requestPermission) Notification.requestPermission (function(_permission){
-		permission = _permission;
-	});
 
 	return {
 
@@ -48,9 +45,18 @@
 		 *			onclose: // Callback function dispateches on notification close
 		 *			onerror: // Callback function dispatches on error, default is a egw.debug log
 		 *		}
+		 *	@return {boolean} true if the permission is granted otherwise false
 		 */
 		notification: function (_title, _options)
 		{
+
+			var self = this;
+			// Check and ask for permission
+			if (Notification && Notification.requestPermission && permission === 'default') Notification.requestPermission (function(_permission){
+				permission = _permission;
+				if (permission === 'granted') self.notification(_title,_options);
+			});
+
 			// All options including callbacks
 			var options = _options || {};
 
@@ -74,7 +80,7 @@
 			notification.onclose = options.onclose || '';
 			// Callback function dispatches on error
 			notification.onerror = options.onerror || function (e) {egw.debug('Notification failed because of ' + e);};
-			
+
 		}
 
 	};


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z