LP#1685929 - Add actions to CheckIn grid
authorCesar Velez <cesar.velez@equinoxinitiative.org>
Fri, 21 Jul 2017 22:04:34 +0000 (18:04 -0400)
committerCesar Velez <Cesar.Velez@equinoxinitiative.org>
Wed, 9 Aug 2017 20:14:30 +0000 (16:14 -0400)
WIP - continuing work to add Show Bib holds, etc

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>

Open-ILS/src/templates/staff/circ/checkin/index.tt2
Open-ILS/src/templates/staff/circ/checkin/t_checkin_table.tt2
Open-ILS/web/js/ui/default/staff/circ/checkin/app.js

index dd2c0cf..c254f75 100644 (file)
@@ -10,6 +10,7 @@
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/user.js"></script>
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/services/circ.js"></script>
 [% INCLUDE 'staff/circ/share/circ_strings.tt2' %]
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/item/app.js"></script>
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/checkin/app.js"></script>
 <link rel="stylesheet" href="[% ctx.base_path %]/staff/css/circ.css" />
 [% END %]
index c4a9788..6d59755 100644 (file)
@@ -9,8 +9,7 @@
   persist-key="{{grid_persist_key}}"
   dateformat="{{$root.egDateAndTimeFormat}}">
   
-  <eg-grid-action handler="add_copies_to_bucket"
-    label="[% l('Add Items to Bucket') %]">
+  <eg-grid-action handler="add_copies_to_bucket" label="[% l('Add Items to Bucket') %]">
   </eg-grid-action>
   <eg-grid-action 
     handler="fetchLastCircPatron"
     handler="abortTransit"
     label="[% l('Cancel Transits') %]">
   </eg-grid-action>
+  <!-- Show Group -->
+  <eg-grid-action handler="showBibHolds" group="[% l('Show') %]"
+    label="[% l('Record Holds') %]">
+  </eg-grid-action>
+  <eg-grid-action handler="showLastCircs" group="[% l('Show') %]"
+    label="[% l('Last Few Circs') %]">
+  </eg-grid-action>
+
+  <!-- Edit Group -->
+  <eg-grid-action handler="selectedHoldingsVolCopyEdit" group="[% l('Edit') %]"
+    label="[% l('Volumes and Items') %]">
+  </eg-grid-action>
 
   <eg-grid-field label="[% l('Alert Msg') %]"   
     path="acp.alert_message"></eg-grid-field>
index 8009938..8c35dc2 100644 (file)
@@ -1,5 +1,5 @@
 angular.module('egCheckinApp', ['ngRoute', 'ui.bootstrap', 
-    'egCoreMod', 'egUiMod', 'egGridMod', 'egUserMod'])
+    'egCoreMod', 'egUiMod', 'egGridMod', 'egUserMod', 'egItemStatus'])
 
 .config(function($routeProvider, $locationProvider, $compileProvider) {
     $locationProvider.html5Mode(true);
@@ -34,8 +34,8 @@ angular.module('egCheckinApp', ['ngRoute', 'ui.bootstrap',
  * Manages checkin
  */
 .controller('CheckinCtrl',
-       ['$scope','$q','$window','$location','egCore','checkinSvc','egGridDataProvider','egCirc', 'itemSvc',
-function($scope , $q , $window , $location , egCore , checkinSvc , egGridDataProvider , egCirc, itemSvc)  {
+       ['$scope','$q','$window','$location', '$timeout','egCore','checkinSvc','egGridDataProvider','egCirc', 'itemSvc',
+function($scope , $q , $window , $location , $timeout , egCore , checkinSvc , egGridDataProvider , egCirc, itemSvc)  {
 
     $scope.focusMe = true;
     $scope.checkins = checkinSvc.checkins;
@@ -335,5 +335,36 @@ function($scope , $q , $window , $location , egCore , checkinSvc , egGridDataPro
         itemSvc.add_copies_to_bucket(itemsIds);
     }
 
+    $scope.showBibHolds = function(items){
+        var recordIds = [];
+        angular.forEach(items, function(i){
+            recordIds.push(i.acn.record());
+        });
+        angular.forEach(recordIds, function (r) {
+            var url = egCore.env.basePath + 'cat/catalog/record/' + r + '/holds';
+            $timeout(function() { $window.open(url, '_blank') });
+        });
+    }
+
+    $scope.showLastCircs = function(items){
+        var itemIds = [];
+        angular.forEach(items, function(cp){
+            itemIds.push(cp.acp.id());
+        });
+        angular.forEach(itemIds, function (id) {
+            var url = egCore.env.basePath + 'cat/item/' + id + '/circs';
+            $timeout(function() { $window.open(url, '_blank') });
+        });
+    }
+
+    $scope.selectedHoldingsVolCopyEdit = function (items) {
+        var itemObjs = [];
+        angular.forEach(items, function(i){
+            var h = egCore.idl.toHash(i);
+            h['call_number.record.id'] = h.record.doc_id;
+            itemObjs.push(h);
+        });
+        itemSvc.spawnHoldingsEdit(itemObjs,false,false);
+    }
 }])