From: Bill Erickson Date: Wed, 17 Feb 2016 01:56:26 +0000 (-0500) Subject: LP#1452950 re-attach unload warning after click-through X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3d21fded8fa5089aafe9618c4092f70738677d69;p=contrib%2FConifer.git LP#1452950 re-attach unload warning after click-through Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js b/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js index 9385086d78..1d28a3bf27 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js @@ -695,10 +695,11 @@ function PatronRegCtrl($scope, $routeParams, $scope.edit_passthru.vis_level = 0; // TODO: add save/clone handlers here - var modify_tracked = false; $scope.field_modified = function() { - if (modify_tracked) return; - modify_tracked = true; + // Call attach with every field change, regardless of whether + // it's been called before. This will allow for re-attach after + // the user clicks through the unload warning. egUnloadPrompt + // will ensure we only attach once. egUnloadPrompt.attach($scope); } diff --git a/Open-ILS/web/js/ui/default/staff/services/ui.js b/Open-ILS/web/js/ui/default/staff/services/ui.js index 7f8466691a..d9f77fa640 100644 --- a/Open-ILS/web/js/ui/default/staff/services/ui.js +++ b/Open-ILS/web/js/ui/default/staff/services/ui.js @@ -195,10 +195,12 @@ function($modal, $interpolate) { .factory('egUnloadPrompt', [ '$window','egStrings', function($window , egStrings) { - var service = {}; + var service = {attached : false}; // attach a page/scope unload prompt service.attach = function($scope, msg) { + if (service.attached) return; + service.attached = true; // handle page change $($window).on('beforeunload', function() { @@ -227,6 +229,7 @@ function($window , egStrings) { $($window).off('beforeunload'); if (service.locChangeCancel) service.locChangeCancel(); + service.attached = false; } return service;