From 2c16628b0b29215bc7f7526f800f02b976b645a4 Mon Sep 17 00:00:00 2001 From: Jane Sandberg Date: Fri, 1 Mar 2019 17:03:31 -0800 Subject: [PATCH 1/1] LP1721109: Update item status when holdings are edited To test: 1) Go to Item Status List View, select an item, and go to Actions > Edit > Items (or Call Numbers, or both). 2) Make a change to one of the columns you have active in the Item Status list view. Click Save and Exit. 3) Note that the list view of Item Status has not updated. 4) Load this commit. 5) Repeat steps 1-2. 6) Note that the columns are updated this time. Note that there is a new status column, and that an icon appears for all the rows that you have changed. Also, note that there is a toast message in the bottom right hand corner of the screen confirming that you have successfully made your change. Signed-off-by: Jane Sandberg Signed-off-by: Chris Sharp --- .../src/templates/staff/cat/item/index.tt2 | 7 ++- .../src/templates/staff/cat/item/t_list.tt2 | 1 + .../web/js/ui/default/staff/cat/item/app.js | 45 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/templates/staff/cat/item/index.tt2 b/Open-ILS/src/templates/staff/cat/item/index.tt2 index 8373049e04..53cf23f778 100644 --- a/Open-ILS/src/templates/staff/cat/item/index.tt2 +++ b/Open-ILS/src/templates/staff/cat/item/index.tt2 @@ -35,7 +35,12 @@ s.SUCCESS_UPDATE_INVENTORY = "[% l('Updated most recent inventory data for selected items.') %]"; s.FAIL_UPDATE_INVENTORY = - "[% l('Failed to update recent inventory data for selected items.')%]" + "[% l('Failed to update recent inventory data for selected items.')%]"; + s.ITEM_SUCCESSFULLY_MODIFIED = + "[% l('Item successfully modified') %]"; + s.ITEMS_SUCCESSFULLY_MODIFIED = + "[% l('Item(s) successfully modified') %]"; + }]) [% END %] 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 acf90e4a58..c0ac0c25d5 100644 --- a/Open-ILS/src/templates/staff/cat/item/t_list.tt2 +++ b/Open-ILS/src/templates/staff/cat/item/t_list.tt2 @@ -7,6 +7,7 @@ items-provider="gridDataProvider" grid-controls="gridControls" persist-key="cat.items" + status-column="statusIconColumn" dateformat="{{$root.egDateAndTimeFormat}}"> {return item.id}); + angular.forEach(all_items.reverse(), function(i) { + itemSvc.copies.shift(); + chain = chain.then(function() { + return itemSvc.fetch(null, i); + }); + }); + return chain.then(function() { + copyGrid.refresh(); + }); + } + + $scope.add_copies_to_bucket = function() { var copy_list = gatherSelectedHoldingsIds(); itemSvc.add_copies_to_bucket(copy_list); @@ -613,6 +630,34 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD ); } + $scope.statusIconColumn = { + isEnabled: true, + template: function(item) { + var icon = ''; + if (modified_items.has(item['id'])) { + icon = '' + + ''; + } + return icon + } + } + + if (typeof BroadcastChannel != 'undefined') { + var holdings_bChannel = new BroadcastChannel("eg.holdings.update"); + holdings_bChannel.onmessage = function(e) { + angular.forEach(e.data.copies, function(i) { + modified_items.add(i); + }); + ngToast.create(egCore.strings.ITEMS_SUCCESSFULLY_MODIFIED); + $scope.refreshGridData(); + } + $scope.$on('$destroy', function() { + holdings_bChannel.close(); + }); + } + }]) /** -- 2.43.2