Skip to content

Instantly share code, notes, and snippets.

@VojtechBartos
Forked from Lawondyss/AngularJS FlashMessage
Last active August 29, 2015 13:57
Show Gist options
  • Save VojtechBartos/9354927 to your computer and use it in GitHub Desktop.
Save VojtechBartos/9354927 to your computer and use it in GitHub Desktop.
myApp = angular.module 'myApp', []
myApp.service 'FlashMessage', ($rootScope) ->
smsgw.service 'FlashMessage', ($rootScope) ->
Flash = () ->
$rootScope.flashes = []
$rootScope.$on '$routeChangeSuccess', () ->
flashes = []
for flash in $rootScope.flashes
if flash.seen == false
flash.seen = true
flashes.push flash
$rootScope.$broadcast 'FlashMessage:reset', $rootScope.flashes = flashes
return
this.add = (message, type) ->
$rootScope.$broadcast 'FlashMessage:add',
$rootScope.flashes.push
message: message
type: type
seen: false
return
this.success = (message) ->
this.add message, 'success'
return
this.error = (message) ->
this.add message, 'error'
return
this.reset = () ->
$rootScope.flashes = []
return
this
return new Flash
myApp.directive 'flashes', () ->
template =
['<div ng-show="flashes.length" ng-repeat="flash in flashes" class="ui {{flash.type}} message">'
' <i ng-click="closeFlashes($index)" class="close icon"></i>'
' <div class="header">{{flash.message}}</div>'
'</div>'].join "\n"
config =
restrict: 'E'
template: template
replace: true
link: (scope) ->
scope.$on 'flashes:add', (event, flashes) ->
scope.flashes = flashes
return
scope.closeFlashes = (index) ->
scope.flashes.splice index, 1
return
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment