mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-20 00:37:26 +00:00
add utils angular module and navigation check factory
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
angular.module("admin.utils")
|
||||
.factory "NavigationCheck", ($window, $rootScope) ->
|
||||
callbacks = []
|
||||
|
||||
# Action for regular browser navigation.
|
||||
onBeforeUnloadHandler = ($event) ->
|
||||
message = getMessage()
|
||||
if message
|
||||
($event or $window.event).preventDefault()
|
||||
message
|
||||
|
||||
# Action for angular navigation.
|
||||
locationChangeStartHandler = ($event) ->
|
||||
message = getMessage()
|
||||
if message and not $window.confirm(message)
|
||||
$event.stopPropagation() if $event.stopPropagation
|
||||
$event.preventDefault() if $event.preventDefault
|
||||
$event.cancelBubble = true
|
||||
$event.returnValue = false
|
||||
|
||||
# Runs callback functions to retreive most recently added non-empty message.
|
||||
getMessage = ->
|
||||
message = null
|
||||
message = callback() ? message for callback in callbacks
|
||||
message
|
||||
|
||||
register = (callback) ->
|
||||
callbacks.push callback
|
||||
|
||||
if $window.addEventListener
|
||||
$window.addEventListener "beforeunload", onBeforeUnloadHandler
|
||||
else
|
||||
$window.onbeforeunload = onBeforeUnloadHandler
|
||||
|
||||
$rootScope.$on "$locationChangeStart", locationChangeStartHandler
|
||||
|
||||
return register: register
|
||||
1
app/assets/javascripts/admin/utils/utils.js.coffee
Normal file
1
app/assets/javascripts/admin/utils/utils.js.coffee
Normal file
@@ -0,0 +1 @@
|
||||
angular.module("admin.utils", [])
|
||||
Reference in New Issue
Block a user