From: Galen Charlton Date: Fri, 14 Oct 2016 20:00:06 +0000 (-0400) Subject: add alerts column to several grids X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=07f5b8e16b46d18a1eb3e6183f90a202002c8230;p=working%2FEvergreen.git add alerts column to several grids The item status, holdings, and checkout grids now have an alerts column that lists the number of copy alerts associated with the item as well as a button to manage them. Signed-off-by: Galen Charlton Conflicts: Open-ILS/web/js/ui/default/staff/cat/item/app.js Open-ILS/web/js/ui/default/staff/cat/services/holdings.js --- diff --git a/Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2 b/Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2 index 1f82fd55c0..7ef5f5fe86 100644 --- a/Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2 +++ b/Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2 @@ -122,6 +122,10 @@ + + {{item['copy_alert_count']}} + + diff --git a/Open-ILS/src/templates/staff/cat/item/t_list.tt2 b/Open-ILS/src/templates/staff/cat/item/t_list.tt2 index f39878e816..b239993ce6 100644 --- a/Open-ILS/src/templates/staff/cat/item/t_list.tt2 +++ b/Open-ILS/src/templates/staff/cat/item/t_list.tt2 @@ -79,7 +79,6 @@ - @@ -131,7 +130,11 @@ - + + {{item['copy_alert_count']}} + + +
diff --git a/Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2 index bed2328fec..60e9cb1d13 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2 @@ -116,6 +116,12 @@ + + + {{item['copy_alert_count']}} + + + diff --git a/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js b/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js index 383f02e5d8..8656ff97c5 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js @@ -1391,6 +1391,13 @@ function($scope , $routeParams , $location , $window , $q , egCore , egHolds , e }); } + $scope.gridCellHandlers = {}; + $scope.gridCellHandlers.copyAlertsEdit = function(id) { + egCirc.manage_copy_alerts([id]).then(function() { + // update grid items? + }); + }; + $scope.transferItems = function (){ var xfer_target = egCore.hatch.getLocalItem('eg.cat.item_transfer_target'); var copy_ids = gatherSelectedHoldingsIds(); diff --git a/Open-ILS/web/js/ui/default/staff/cat/item/app.js b/Open-ILS/web/js/ui/default/staff/cat/item/app.js index fbc3617d18..f804419bc3 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/item/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/item/app.js @@ -463,6 +463,13 @@ function($scope , $q , $routeParams , $location , $timeout , $window , egCore , }); } + $scope.gridCellHandlers = {}; + $scope.gridCellHandlers.copyAlertsEdit = function(id) { + egCirc.manage_copy_alerts([id]).then(function() { + // update grid items? + }); + }; + $scope.showBibHolds = function () { angular.forEach(gatherSelectedRecordIds(), function (r) { var url = egCore.env.basePath + 'cat/catalog/record/' + r + '/holds'; diff --git a/Open-ILS/web/js/ui/default/staff/cat/services/holdings.js b/Open-ILS/web/js/ui/default/staff/cat/services/holdings.js index 3f4ec7d3af..67c64b25d2 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/services/holdings.js +++ b/Open-ILS/web/js/ui/default/staff/cat/services/holdings.js @@ -15,7 +15,7 @@ function(egCore , $q) { service.prototype.flesh = { flesh : 2, flesh_fields : { - acp : ['status','location','circ_lib','parts','age_protect'], + acp : ['status','location','circ_lib','parts','age_protect','copy_alerts'], acn : ['prefix','suffix','copies'] } } @@ -117,6 +117,11 @@ function(egCore , $q) { } }); + // create virtual field for copy alert count + angular.forEach(svc.copies, function (cp) { + cp.copy_alert_count = cp.copy_alerts.length; + }); + // create a label using just the unique part of the owner list var index = 0; var prev_owner_list; diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js b/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js index 362e0369da..d0fe14c8a1 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js @@ -202,6 +202,17 @@ function($scope , $q , $routeParams , egCore , egUser , patronSvc , // Non-cat circs don't return the full list of circs. // Refresh the list of non-cat circs from the server. patronSvc.getUserNonCats(patronSvc.current.id()); + row_item.copy_alert_count = 0; + } else { + row_item.copy_alert_count = 0; + egCore.pcrud.search( + 'aca', + { copy : co_resp.data.acp.id(), ack_time : null }, + null, + { atomic : true } + ).then(function(list) { + row_item.copy_alert_count = list.length; + }); } } @@ -225,6 +236,13 @@ function($scope , $q , $routeParams , egCore , egUser , patronSvc , }); } + $scope.gridCellHandlers = {}; + $scope.gridCellHandlers.copyAlertsEdit = function(id) { + egCirc.manage_copy_alerts([id]).then(function() { + // update grid items? + }); + }; + $scope.print_receipt = function() { var print_data = {circulations : []} diff --git a/Open-ILS/web/js/ui/default/staff/circ/services/item.js b/Open-ILS/web/js/ui/default/staff/circ/services/item.js index 17d3269d81..7ac326f8a7 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/services/item.js +++ b/Open-ILS/web/js/ui/default/staff/circ/services/item.js @@ -16,7 +16,7 @@ function(egCore , egCirc , $uibModal , $q , $timeout , $window , egConfirmDialog flesh : 3, flesh_fields : { acp : ['call_number','location','status','location','floating','circ_modifier', - 'age_protect','circ_lib'], + 'age_protect','circ_lib','copy_alerts'], acn : ['record','prefix','suffix','label_class'], bre : ['simple_record','creator','editor'] }, @@ -152,6 +152,10 @@ function(egCore , egCirc , $uibModal , $q , $timeout , $window , egConfirmDialog flatCopy._duration = copyData.circ.duration(); } flatCopy.index = service.index++; + flatCopy.copy_alert_count = copy.copy_alerts().filter(function(aca) { + return !aca.ack_time(); + }).length; + service.copies.unshift(flatCopy); }