webstaff: provide an id -> item map for simpler lookup
authorMike Rylander <mrylander@gmail.com>
Thu, 18 May 2017 23:25:50 +0000 (19:25 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Tue, 30 May 2017 16:06:47 +0000 (12:06 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/web/js/ui/default/staff/serials/services/core.js

index 3a418fe..f44f8ec 100644 (file)
@@ -9,6 +9,7 @@ function(egCore , orderByFilter , $q , $filter , $uibModal) {
         subTree : [],
         subList : [],
         sptList : [],
+        itemMap : {},
         itemTree : [],
         itemList : [],
         freq_offset : {
@@ -172,6 +173,7 @@ function(egCore , orderByFilter , $q , $filter , $uibModal) {
             service.subId = subId;
             if (!options.paging) { // not paged
                 service.itemTree = list;
+                service.itemMap = {};
             } else { // paged
                 angular.forEach(list, function (item) {
                     var exists = service.itemTree.filter(function (i) {
@@ -186,7 +188,9 @@ function(egCore , orderByFilter , $q , $filter , $uibModal) {
             angular.forEach(list, function(item) {
                 if (!tmp[item.stream()]) tmp[item.stream()] = [];
                 tmp[item.stream()].push(item);
+                service.itemMap[item.id()] = item;
             });
+
             angular.forEach(sub.distributions(), function(dist) {
                 angular.forEach(dist.streams(), function(stream) {
                     angular.forEach(tmp[stream.id()], function (item) {