store checkin; psearch prefs
authorBill Erickson <berick@esilibrary.com>
Wed, 25 Jun 2014 20:23:40 +0000 (16:23 -0400)
committerBill Erickson <berick@esilibrary.com>
Wed, 25 Jun 2014 20:23:40 +0000 (16:23 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/staff/circ/checkin/index.tt2
Open-ILS/web/js/ui/default/staff/circ/checkin/app.js
Open-ILS/web/js/ui/default/staff/circ/patron/app.js

index 89ce0e8..fea404b 100644 (file)
       <ul class="dropdown-menu pull-right">
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.no_precat_alert=!modifiers.no_precat_alert">
+            ng-click="toggle_mod('no_precat_alert')">
             <span ng-if="modifiers.no_precat_alert" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.no_precat_alert"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.noop=!modifiers.noop">
+            ng-click="toggle_mod('noop')">
             <span ng-if="modifiers.noop" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.noop"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.void_overdues=!modifiers.void_overdues">
+            ng-click="toggle_mod('void_overdues')">
             <span ng-if="modifiers.void_overdues" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.void_overdues"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.auto_print_holds_transits=!modifiers.auto_print_holds_transits">
+            ng-click="toggle_mod('auto_print_holds_transits')">
             <span ng-if="modifiers.auto_print_holds_transits" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.auto_print_holds_transits"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.clear_expired=!modifiers.clear_expired">
+            ng-click="toggle_mod('clear_expired')">
             <span ng-if="modifiers.clear_expired" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.clear_expired"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.retarget_holds=!modifiers.retarget_holds">
+            ng-click="toggle_mod('retarget_holds')">
             <span ng-if="modifiers.retarget_holds" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.retarget_holds"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.retarget_holds_all=!modifiers.retarget_holds_all">
+            ng-click="toggle_mod('retarget_holds_all')">
             <span ng-if="modifiers.retarget_holds_all" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.retarget_holds_all"
         </li>
         <li>
           <a href dropdown-toggle 
-            ng-click="modifiers.hold_as_transit=!modifiers.hold_as_transit">
+            ng-click="toggle_mod('hold_as_transit')">
             <span ng-if="modifiers.hold_as_transit" 
               class="label label-success">&#x2713;</span>
             <span ng-if="!modifiers.hold_as_transit"
index 7a64110..f47ac93 100644 (file)
@@ -21,13 +21,6 @@ angular.module('egCheckinApp', ['ngRoute', 'ui.bootstrap',
 function($scope , $q , $window , $location , egCore , checkinSvc , egGridDataProvider , egCirc)  {
 
     var suppress_popups = false;
-    var today = new Date();
-    $scope.focusMe = true;
-    $scope.checkins = checkinSvc.checkins;
-    $scope.checkinArgs = {backdate : today}
-    $scope.using_hatch = egCore.hatch.usingHatch();
-    $scope.modifiers = {};
-    $scope.fine_total = 0;
 
     // run egCore.startup here since it's not handled via resolver
     egCore.startup.go().then(
@@ -42,6 +35,39 @@ function($scope , $q , $window , $location , egCore , checkinSvc , egGridDataPro
         }
     );
 
+    var today = new Date();
+    $scope.focusMe = true;
+    $scope.checkins = checkinSvc.checkins;
+    $scope.checkinArgs = {backdate : today}
+    $scope.using_hatch = egCore.hatch.usingHatch();
+    $scope.modifiers = {};
+    $scope.fine_total = 0;
+
+    // set modifiers from stored preferences
+    angular.forEach(['noop','void_overdues', 'clear_expired',
+        'hold_as_transit','manual_float','no_precat_alert',
+        'auto_print_holds_transits','retarget_holds','retarget_holds_all'],
+        function(mod) {
+            egCore.hatch.getItem('eg.circ.checkin.' + mod)
+            .then(function(val) { 
+                if (val) $scope.modifiers[mod] = true;
+            });
+        }
+    );
+
+    // set / unset a checkin modifier
+    // when set, store the preference
+    $scope.toggle_mod = function(mod) {
+        if ($scope.modifiers[mod]) {
+            $scope.modifiers[mod] = false;
+            egCore.hatch.removeItem('eg.circ.checkin.' + mod);
+        } else {
+            $scope.modifiers[mod] = true;
+            egCore.hatch.setItem('eg.circ.checkin.' + mod, true);
+        }
+    }
+
+
     // ensure the backdate is not in the future
     // note: input type=date max=foo not yet supported anywhere
     $scope.$watch('checkinArgs.backdate', function(newval) {
index faf9203..343bb5c 100644 (file)
@@ -759,8 +759,13 @@ function($scope,  $q,  $routeParams,  $timeout,  $window,  $location,  egCore,
     }
 
     $scope.applyShowExtras = function($event, bool) {
-        $scope.showExtras = bool;
-        egCore.hatch.setItem('eg.prefs.circ.patron.search.showExtras', bool);
+        if (bool) {
+            $scope.showExtras = true;
+            egCore.hatch.setItem('eg.circ.patron.search.show_extras', true);
+        } else {
+            $scope.showExtras = false;
+            egCore.hatch.removeItem('eg.circ.patron.search.show_extras');
+        }
         $event.preventDefault();
     }