From d875fcc0c9047230985119cc2047e59fd26fd861 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Fri, 9 Feb 2018 14:27:05 -0500 Subject: [PATCH] LP#1748006 Patron edit juv flag manual override Allow staff to manually override the patron juvenile flag value regardless of patron DoB. Patch removes the ng-blur handler for dob and expire_date, which fires too aggressively. The dob handler is replaced with a $watch handler, so the new and old value can be compared. No watch is applied to expire_date, since no code is currently fired when it's changed. Change the log level of the "field changed" message from log to debug. To test: [1] Open a patron in the web staff patron editor. [2] Apply a juvenile birth date (less than 18 years by default). [3] Confirm the juvenile flag is automatically activated (if it wasn't already). [4] Confirm it's possible to un-check the juvenile flag and save the patron. Signed-off-by: Bill Erickson Signed-off-by: Cesar Velez Signed-off-by: Galen Charlton --- .../templates/staff/circ/patron/t_edit.tt2 | 4 +--- .../js/ui/default/staff/circ/patron/regctl.js | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 index eacd477290..266ba81a18 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 @@ -281,8 +281,7 @@ within the "form" by name for validation.
+ ng-model="patron.dob">
@@ -480,7 +479,6 @@ within the "form" by name for validation. [% draw_field_label('au', 'expire_date') %]
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 bd83888db2..49b0dd6e63 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 @@ -1271,8 +1271,24 @@ function($scope , $routeParams , $q , $uibModal , $window , egCore , prs.set_field_patterns(field_patterns); apply_username_regex(); + + add_date_watchers(); }); + function add_date_watchers() { + + $scope.$watch('patron.dob', function(newVal, oldVal) { + // Even though this runs after page data load, there + // are still times when it fires unnecessarily. + if (newVal === oldVal) return; + + console.debug('dob change: ' + newVal + ' : ' + oldVal); + maintain_juvenile_flag(); + }); + + // No need to watch expire_date + } + // update the currently displayed field documentation $scope.set_selected_field_doc = function(cls, field) { @@ -1743,7 +1759,7 @@ function($scope , $routeParams , $q , $uibModal , $window , egCore , var cls = obj.classname; // set by egIdl var value = obj[field_name]; - console.log('changing field ' + field_name + ' to ' + value); + console.debug('changing field ' + field_name + ' to ' + value); switch (field_name) { case 'day_phone' : @@ -1793,10 +1809,6 @@ function($scope , $routeParams , $q , $uibModal , $window , egCore , $scope.barcode_changed(value); apply_username_regex(); break; - - case 'dob': - maintain_juvenile_flag(); - break; } } -- 2.43.2