MARC strip fields for Acquisitions
authorBill Erickson <berick@esilibrary.com>
Thu, 21 Mar 2013 13:45:39 +0000 (09:45 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 27 Mar 2013 16:55:58 +0000 (12:55 -0400)
Added MARC strip field group selector to acquisitions upload interface
in the same manner as the group selector for non-acq Vandelay

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/templates/acq/common/vlagent.tt2
Open-ILS/web/js/ui/default/acq/common/vlagent.js

index 8d5ede7..98792ca 100644 (file)
@@ -1,3 +1,6 @@
+<style type="text/css">
+    @import "[% ctx.media_prefix %]/js/dojo/dojox/form/resources/CheckedMultiSelect.css";
+</style>
 [% BLOCK vlagent_form %]
     <tr>
         <td>[% l('Upload to Queue') %]</td>
         <td>[% l('Insufficient Quality Fall-Through Profile') %]</td>
         <td><div id='acq_vl:fall_through_merge_profile'></div></td>
     </tr>
+    <tr id='vl-trash-groups-row'>
+        <td>[% l('Remove MARC Field Groups') %]</td>
+        <td colspan='4'>
+            <select style='overflow-y:auto; height:6em; width:12em' multiple='true' 
+                id='acq_vl:strip_field_groups'
+                dojoType="dojox.form.CheckedMultiSelect">
+            </select>
+        </td>
+    </tr>
     [% IF vl_show_copy_option %]
     <tr>
         <td>[% l('Load Items for Imported Records') %]</td>
index 38df792..827e183 100644 (file)
@@ -1,6 +1,7 @@
 dojo.require('openils.widget.AutoFieldWidget');
 dojo.require('openils.PermaCrud');
 dojo.require('openils.XUL');
+dojo.require('dojox.form.CheckedMultiSelect');
 
 var xulStorage = openils.XUL.localStorage();
 var storekey = 'eg.acq.upload.';
@@ -43,7 +44,8 @@ function VLAgent(args) {
         {key : 'bib_source', cls : 'cbs'},
         {key : 'merge_profile', cls : 'vmp'},
         {key : 'fall_through_merge_profile', cls : 'vmp'},
-        {key : 'existing_queue', cls : 'vbq'}
+        {key : 'existing_queue', cls : 'vbq'},
+        {key : 'strip_field_groups', cls : 'vibtg'}
     ];
 
     this.loaded = false;
@@ -83,11 +85,60 @@ function VLAgent(args) {
 
     this.init2 = function() {
         var self = this;
+        // fetch the strip field groups, then continue init-ing
+
+        var owner = fieldmapper.aou.orgNodeTrail(
+            fieldmapper.aou.findOrgUnit(new openils.User().user.ws_ou()));
+
+        new openils.PermaCrud().search('vibtg',
+            {   always_apply : 'f',
+                owner: owner.map(function(org) { return org.id(); })
+            }, 
+            {   order_by : {vibtg : ['label']},
+                async: true,
+                oncomplete: function(r) {
+                    var trashGroups = openils.Util.readResponse(r);
+                    var sel = dijit.byId('acq_vl:strip_field_groups');
+
+                    var widg = self.widgets.filter(function(w) {
+                        return w.key == 'strip_field_groups'})[0];
+                    widg.dijit = sel;
+
+                    if (trashGroups.length == 0) {
+                        openils.Util.hide('vl-trash-groups-row');
+
+                    } else {
+
+                        dojo.forEach(trashGroups, function(grp) {
+                            var sn = fieldmapper.aou.findOrgUnit(
+                                grp.owner()).shortname();
+                            var opt = {
+                                label : grp.label() + '&nbsp;(' + sn + ')',
+                                value : grp.id()
+                            };
+                            sel.addOption(opt);
+                        });
+
+                        self.readCachedValue(sel, 'strip_field_groups');
+                    }
+
+                    self.init3();
+                }
+            }
+        );
+
+    },
+
+    this.init3 = function() {
+        var self = this;
 
         dojo.forEach(this.widgets,
             function(widg) {
                 var key = widg.key;
 
+                // strip-fields widget built above
+                if (key == 'strip_field_groups') return;
+
                 if (widg.cls) { // selectors
 
                     new openils.widget.AutoFieldWidget({