webstaff: Fetch FF pos map and value map, per record type
authorMike Rylander <mrylander@gmail.com>
Fri, 27 Mar 2015 21:46:14 +0000 (17:46 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Wed, 19 Aug 2015 17:39:14 +0000 (13:39 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/web/js/ui/default/staff/cat/services/tagtable.js

index d696173..5d3202d 100644 (file)
@@ -11,7 +11,9 @@ function($q,   egCore,   egAuth) {
             marcFormat     : 'marc21',
             marcRecordType : 'biblio',
         },
-        fields : { }
+        fields : { },
+        ff_pos_map : { },
+        ff_value_map : { }
     };
 
     // allow 'bre' and 'biblio' to be synonyms, etc.
@@ -48,6 +50,34 @@ function($q,   egCore,   egAuth) {
         });
     };
 
+    service.fetchFFPosTable = function(rtype) {
+        var deferred = $q.defer();
+
+        if (service.ff_pos_map[rtype]) {
+            deferred.resolve(service.ff_pos_map[rtype]);
+            return deferred.promise;
+        }
+
+        egCore.net.request( // First, get the list of FFs (minus 006)
+            'open-ils.fielder',
+            'open-ils.fielder.cmfpm.atomic',
+            { query : { tag : { '!=' : '006' } } }
+        ).then(function (data)  {
+            service.ff_pos_map[rtype] = data;
+        }).then(function() { // Then, get the value maps
+            return egCore.net.request(
+                'open-ils.cat',
+                'open-ils.cat.biblio.fixed_field_values.by_rec_type',
+                rtype
+            );
+        }).then(function (data)  {
+            service.ff_value_map[rtype] = data;
+            deferred.resolve(service.ff_pos_map[rtype]);
+        });
+
+        return deferred.promise;
+    };
+
     service.loadRemoteTagTable = function(fields, tt_key) {
         egCore.net.request(
             'open-ils.cat',