LP#1706124: Make include inactive patrons checkbox sticky
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / services / patron_search.js
index 97c9152..7897671 100644 (file)
@@ -48,6 +48,18 @@ function($q , $timeout , $location , egCore,  egUser , egConfirmDialog , $locale
     }
     service.resetPatronLists();  // initialize
 
+    // Max recents setting is loaded and scrubbed during egStartup.
+    // Copy it to a local variable here for ease of local access
+    // after startup has run.
+    egCore.startup.go().then(
+        function() {
+            egCore.org.settings('ui.staff.max_recent_patrons')
+            .then(function(s) {
+                service.maxRecentPatrons = s['ui.staff.max_recent_patrons'];
+            });
+        }
+    );
+
     // Returns true if the last alerted patron matches the current
     // patron.  Otherwise, the last alerted patron is set to the 
     // current patron and false is returned.
@@ -509,12 +521,6 @@ function($scope,  $q,  $routeParams,  $timeout,  $window,  $location,  egCore,
         selectedItems : function() {return []}
     }
 
-    // Max recents setting is loaded and scrubbed during egStartup.
-    // Copy it to a local variable here for ease of local access.
-    egCore.org.settings('ui.staff.max_recent_patrons').then(function(s) {
-        patronSvc.maxRecentPatrons = s['ui.staff.max_recent_patrons'];
-    });
-
     // The first time we encounter the show-recent CGI param, put the
     // service into show-recent mode.  The first time recents are shown,
     // the service is taken out of show-recent mode so the page does not
@@ -739,7 +745,17 @@ function($scope,  $q,  $routeParams,  $timeout,  $window,  $location,  egCore,
     egCore.hatch.getItem('eg.circ.patron.search.show_extras')
     .then(function(val) {$scope.showExtras = val});
 
-    // map form arguments into search params
+// check searchArgs.inactive setting
+    egCore.hatch.getItem('searchArgs.inactive')
+                .then(function(searchInactive){
+                    if (searchInactive) $scope.searchArgs.inactive = searchInactive; 
+                });    
+
+     $scope.onSearchInactiveChanged = function(){
+        egCore.hatch.setItem('searchArgs.inactive', $scope.searchArgs.inactive);
+    }
+
+// map form arguments into search params
     function compileSearch(args) {
         var search = {};
         angular.forEach(args, function(val, key) {
@@ -760,6 +776,18 @@ function($scope,  $q,  $routeParams,  $timeout,  $window,  $location,  egCore,
                     search[key].group = 1;
                 } else if (key == 'card') {
                     search[key].group = 3
+                } else if (key.match(/dob_/)) {
+                    // DOB should always be numeric
+                    search[key].value = search[key].value.replace(/\D/g,'');
+                    if (search[key].value.length == 0) {
+                        delete search[key];
+                    }
+                    else {
+                        if (!key.match(/year/)) {
+                            search[key].value = ('0'+search[key].value).slice(-2);
+                        }
+                        search[key].group = 4;
+                    }
                 }
             }
         });