(function() { 'use strict'; angular .module('cloudbudget') .factory('FlashService', FlashService); FlashService.$inject = ['$rootScope']; function FlashService($rootScope) { var service = {}; service.success = success; service.error = error; initService(); return service; function initService() { $rootScope.$on('$locationChangeStart', function() { clearFlashMessage(); }); function clearFlashMessage() { var flash = $rootScope.flash; if( flash ) { if( !flash.keepAfterLocationChange ) { delete $rootScope.flash; } else { flash.keepAfterLocationChange = false; } } } } function success(message, keepAfterLocationChange) { $rootScope.flash = { message: message, type: 'success', keepAfterLocationChange: keepAfterLocationChange }; } function error(message, keepAfterLocationChange) { $rootScope.flash = { message: message, type: 'error', keepAfterLocationChange: keepAfterLocationChange }; } } })();