FF staff support display/toggle of holds suspend / activate
authorBill Erickson <berick@esilibrary.com>
Tue, 11 Feb 2014 20:11:26 +0000 (15:11 -0500)
committerBill Erickson <berick@esilibrary.com>
Tue, 11 Feb 2014 20:11:26 +0000 (15:11 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>

Open-ILS/src/templates/staff/fulfillment/t_actions.tt2
Open-ILS/src/templates/staff/fulfillment/t_item_table.tt2
Open-ILS/web/js/ui/default/staff/fulfillment/app.js

index a522409..af46878 100644 (file)
         ng-show="tab_pending && orientation_lender">[% l('Capture Item') %]</a></li>
       <li><a href="javascript:;" ng-click="retarget()"
         ng-show="tab_pending">[% l('Retarget Request') %]</a></li>
+      <li><a href="javascript:;" ng-click="activate_hold()"
+        ng-show="tab_pending">[% l('Activate Request') %]</a></li>
+      <li><a href="javascript:;" ng-click="suspend_hold()"
+        ng-show="tab_pending">[% l('Suspend Request') %]</a></li>
       <li><a href="javascript:;" ng-click="cancel()"
         ng-show="(tab_pending || tab_inbound) && orientation_borrower">[% l('Cancel Request') %]</a></li>
       <li><a href="javascript:;" ng-click="abort_transit()"
index f041226..9a5b788 100644 (file)
@@ -58,7 +58,7 @@ COLUMNS = [
         [% IF col.name == 'copy_barcode' %]
         <a href="./fulfillment/status/{{item.copy_barcode_enc}}">{{item.copy_barcode}}</a>
         [% ELSIF col.name == 'frozen' %]
-            {{!item.frozen}}
+            {{item.frozen == 'f'}}
         [% ELSE %]
           {{item.[% col.name %][% col.extra IF col.extra %]}}
         [% END %]
index e784c78..2be5a75 100644 (file)
@@ -164,6 +164,7 @@ function ($scope,  $q,  $compile,  $timeout,  $rootScope, $location,
             id : 'id',
             hold_id : 'id',
             request_time : 'request_time',
+            frozen : 'frozen',
             expire_time : 'expire_time',
             patron_id : 'usr.id',
             patron_barcode : 'usr.card.barcode',
@@ -369,6 +370,30 @@ function ($scope,  $q,  $compile,  $timeout,  $rootScope, $location,
         return deferred.promise;
     }
 
+    function toggleHoldActive(item, frozen) {
+        if (item.frozen == frozen) return $q.when();
+        var deferred = $q.defer();
+        $scope.action_pending = true;
+        egNet.request(
+            'open-ils.circ', 
+            'open-ils.circ.hold.update.batch',
+            egAuth.token(), null, 
+            [{id : item.hold_id, frozen : frozen}]
+        ).then(function() {
+            $scope.action_pending = false;
+            deferred.resolve();
+        });
+        return deferred.promise;
+    }
+
+    $scope.actions.activate_hold = function(item) {
+        return toggleHoldActive(item, 'f');
+    }
+
+    $scope.actions.suspend_hold = function(item) {
+        return toggleHoldActive(item, 't');
+    }
+
     $scope.actions.abort_transit = function(item) {
         var deferred = $q.defer();
         $scope.action_pending = true;
@@ -495,8 +520,7 @@ function ($scope,  $q,  $route,  egNet,  egAuth,  egPCRUD,  egOrg,  orgSelector)
 
     var query = {   
         capture_time : null, 
-        cancel_time : null, 
-        frozen : 'f'
+        cancel_time : null
     };
 
     if ($scope.orientation_borrower) {