/** * Service which exposes various utility methods. */ angular.module('quay-config').factory('UtilService', ['$sanitize', function($sanitize) { var utilService = {}; var adBlockEnabled = null; utilService.isAdBlockEnabled = function(callback) { if (adBlockEnabled !== null) { callback(adBlockEnabled); return; } if(typeof blockAdBlock === 'undefined') { callback(true); return; } var bab = new BlockAdBlock({ checkOnLoad: false, resetOnEnd: true }); bab.onDetected(function() { adBlockEnabled = true; callback(true); }); bab.onNotDetected(function() { adBlockEnabled = false; callback(false); }); bab.check(); }; utilService.isEmailAddress = function(val) { var emailRegex = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; return emailRegex.test(val); }; utilService.escapeHtmlString = function(text) { var textStr = (text || '').toString(); var adjusted = textStr.replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); return adjusted; }; utilService.stringToHTML = function(text) { text = utilService.escapeHtmlString(text); text = text.replace(/\n/g, '
'); return text; }; utilService.getRestUrl = function(args) { var url = ''; for (var i = 0; i < arguments.length; ++i) { if (i > 0) { url += '/'; } url += encodeURI(arguments[i]) } return url; }; utilService.textToSafeHtml = function(text) { return $sanitize(utilService.escapeHtmlString(text)); }; return utilService; }]) .factory('CoreDialog', [() => { var service = {}; service['fatal'] = function(title, message) { bootbox.dialog({ "title": title, "message": "
" + message, "buttons": {}, "className": "co-dialog fatal-error", "closeButton": false }); }; return service; }]);