1/** 2 * data service 3 * 4 * @module app/common/services/toastService 5 * @exports toastService 6 * @name toastService 7 8 */ 9 10window.angular && (function(angular) { 11 'use strict'; 12 13 angular.module('app.common.services').service('toastService', [ 14 'ngToast', '$sce', 15 function(ngToast, $sce) { 16 function initToast( 17 type = 'create', title = '', message = '', dismissOnTimeout = false) { 18 const iconStatus = type === 'success' ? 'on' : 19 type === 'danger' ? 'error' : 20 type === 'warning' ? 'warn' : 21 null; 22 const content = $sce.trustAsHtml(` 23 <div role="alert" class="alert-content-container"> 24 <status-icon ng-if="${iconStatus !== null}" 25 status="${iconStatus}" 26 class="status-icon"> 27 </status-icon> 28 <div class="alert-content"> 29 <h2 class="alert-content__header">${title}</h2> 30 <p class="alert-content__body">${message}</p> 31 </div> 32 </div>`); 33 ngToast[type]({content, dismissOnTimeout, compileContent: true}); 34 }; 35 36 this.error = function(message) { 37 initToast('danger', 'Error', message); 38 }; 39 40 this.success = function(message) { 41 initToast('success', 'Success!', message, true); 42 }; 43 44 this.warn = function(message) { 45 initToast('warning', 'Warning', message); 46 }; 47 48 this.info = function(title, message) { 49 initToast('info', title, message); 50 }; 51 } 52 ]); 53})(window.angular); 54