mirror of
https://github.com/datahub-project/datahub.git
synced 2025-07-25 18:38:55 +00:00
157 lines
4.0 KiB
JavaScript
157 lines
4.0 KiB
JavaScript
(function(window){
|
|
'use strict'
|
|
|
|
var parseForSearch = function(data) {
|
|
var output = {}
|
|
var search = data.split('?')[1]
|
|
search = data.split['&'];
|
|
for(var i = 0; i < search.length; i++) {
|
|
var key = search[i].split('=')[0]
|
|
var value = search[i].split('=')[1]
|
|
output[key] = value;
|
|
}
|
|
|
|
return output
|
|
}
|
|
var Notify = window.Notify = {}
|
|
|
|
var welcomeNotification = function(){
|
|
var notification = new Notification( 'Desktop Notification Activated'
|
|
, { body: "You will now recieve all notifications via the native notification system"
|
|
, icon: '/public/assets/images/wh-logo2x.png'
|
|
}
|
|
)
|
|
}
|
|
|
|
var isDebugMode = function(){
|
|
/*
|
|
if(window.location.search().debug) {
|
|
return true
|
|
}
|
|
if(window.location.search().debug === false) {
|
|
return false
|
|
}
|
|
if(window.location.absUrl().indexOf("linkedin.com") === -1) {
|
|
return true
|
|
}
|
|
*/
|
|
return false
|
|
}
|
|
|
|
|
|
var Notify = window.Notify = {}
|
|
/**
|
|
* @property
|
|
* returns {Boolen} - Native Notification Supported
|
|
*/
|
|
Notify.nativeSupport = true
|
|
/**
|
|
* @function
|
|
* @public
|
|
* @returns {Boolean} - Should native notifications be used
|
|
*/
|
|
Notify.useNative = function(){
|
|
return Storage.get('nativeNotification') || false
|
|
}
|
|
/**
|
|
* @function
|
|
* @public
|
|
* @description - Attempts to get permission for native notification
|
|
* support
|
|
*/
|
|
Notify.getPermission = function(){
|
|
if( !("Notification" in window) ) {
|
|
console.error('Native notification are not supported')
|
|
Notify.nativeSupport = false
|
|
return false
|
|
} else if ( Notification.permission === "granted") {
|
|
Storage.set('nativeNotification', true)
|
|
welcomeNotification()
|
|
} else if (Notification.permission !== 'denied') {
|
|
Notification.requestPermission(function(permission){
|
|
if(permission === 'granted') {
|
|
Storage.set('nativeNotification', true)
|
|
welcomeNotification()
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Creates a toast or Native Notification
|
|
* @function
|
|
* @public
|
|
* @params msg {String} - The secondary text
|
|
* @params title {String} - The title text
|
|
* @params type {String} - The toast type (info, success, error, warning)
|
|
*/
|
|
Notify.toast = function(msg, title, type){
|
|
var isNative = Notify.useNative() && Notify.nativeSupport
|
|
switch(isNative) {
|
|
case true:
|
|
var n = new Notification( type.toUpperCase() + ' - ' + title
|
|
, { icon: '/public/assets/images/wh-logo2x.png'
|
|
, body: msg
|
|
}
|
|
)
|
|
break;
|
|
case false:
|
|
switch(type.toLowerCase()) {
|
|
case 'error':
|
|
toastr.error(msg, title)
|
|
break;
|
|
case 'info':
|
|
toastr.info(msg, title)
|
|
break;
|
|
case 'success':
|
|
toastr.success(msg, title)
|
|
break;
|
|
case 'warning':
|
|
toastr.warning(msg, title)
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Creates a toast that is only visible in debug mode
|
|
* @function
|
|
* @public
|
|
* @params msg {String} - The secondary text
|
|
* @params title {String} - The title text
|
|
* @params type {String} - The toast type (info, success, error, warning)
|
|
*/
|
|
Notify.debugToast = function(msg, title, type){
|
|
var isNative = Notify.useNative()
|
|
if(isDebugMode()) {
|
|
switch(isNative) {
|
|
case true:
|
|
var n = new Notification( type.toUpperCase() + ' - ' + title
|
|
, { icon: '/public/assets/images/wh-logo2x.png'
|
|
, body: msg
|
|
}
|
|
)
|
|
break;
|
|
case false:
|
|
switch(type.toLowerCase()) {
|
|
case 'error':
|
|
toastr.error(msg, title)
|
|
break;
|
|
case 'info':
|
|
toastr.info(msg, title)
|
|
break;
|
|
case 'success':
|
|
toastr.success(msg, title)
|
|
break;
|
|
case 'warning':
|
|
toastr.warning(msg, title)
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
})(window)
|