From 9df13c6c442f229832ef8cf165641ef40a6b4438 Mon Sep 17 00:00:00 2001 From: Dan Briem Date: Sat, 24 Aug 2019 14:44:01 -0400 Subject: [PATCH] LP#1841089 Apply button in Patron Bill History screen is in confusing location It's possible to miss the apply button for the date range in bill history because it's located before the datepickers. The interface also allows invalid date ranges. This removes the apply button and watches the start and finish dates in the bill history and payment history controllers. If it's not first init and they are valid date objects in a valid date range, the grid refreshes with the new date range query. If start > finish they are set equal to each other to force a valid range. To test: 1. Apply patch 2. Bring up a patron with bills and payments (or add bills and payments) 3. Under the Bills tab click History 4. Change the date range and observe that the grid refreshes 5. Try to set the start date past the finish date and vice versa Signed-off-by: Dan Briem Signed-off-by: Jane Sandberg Signed-off-by: Galen Charlton --- .../staff/circ/patron/t_bill_history.tt2 | 4 -- .../js/ui/default/staff/circ/patron/bills.js | 38 +++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/templates/staff/circ/patron/t_bill_history.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_bill_history.tt2 index d9c454397d..77cd4f9a2f 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_bill_history.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_bill_history.tt2 @@ -25,10 +25,6 @@ {{totals.selected_paid() | currency}} -
- -
diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js b/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js index 308fb309ea..25a01d892d 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js @@ -1010,6 +1010,25 @@ function($scope, $q , egCore , patronSvc , billSvc , egPromptDialog , $location setQuery : current_grid_query } + $scope.$watch('dates.xact_start', function(new_date, old_date) { + if (new_date !== old_date && new_date) { + if (new_date.getTime() > $scope.dates.xact_finish.getTime()) { + $scope.dates.xact_finish = new_date; + } else { + $scope.actions.apply_date_range(); + } + } + }); + $scope.$watch('dates.xact_finish', function(new_date, old_date) { + if (new_date !== old_date && new_date) { + if (new_date.getTime() < $scope.dates.xact_start.getTime()) { + $scope.dates.xact_start = new_date; + } else { + $scope.actions.apply_date_range(); + } + } + }); + $scope.actions.apply_date_range = function() { // tells the grid to re-draw itself with the new query $scope.gridControls.setQuery(current_grid_query()); @@ -1152,6 +1171,25 @@ function($scope, $q , egCore , patronSvc , billSvc , $location) { setQuery : current_grid_query } + $scope.$watch('dates.xact_start', function(new_date, old_date) { + if (new_date !== old_date && new_date) { + if (new_date.getTime() > $scope.dates.xact_finish.getTime()) { + $scope.dates.xact_finish = new_date; + } else { + $scope.actions.apply_date_range(); + } + } + }); + $scope.$watch('dates.xact_finish', function(new_date, old_date) { + if (new_date !== old_date && new_date) { + if (new_date.getTime() < $scope.dates.xact_start.getTime()) { + $scope.dates.xact_start = new_date; + } else { + $scope.actions.apply_date_range(); + } + } + }); + $scope.actions.apply_date_range = function() { // tells the grid to re-draw itself with the new query $scope.gridControls.setQuery(current_grid_query()); -- 2.43.2