--- /dev/null
+dojo.require('dojo.data.ItemFileReadStore');
+dojo.require('dijit.ProgressBar');
+dojo.require('dijit.form.CheckBox');
+dojo.require('dijit.form.TextBox');
+dojo.require('dijit.form.FilteringSelect');
+dojo.require('dijit.form.ComboBox');
+dojo.require('dijit.form.Button');
+dojo.require("dojo.io.iframe");
+dojo.require('openils.User');
+dojo.require('openils.widget.AutoFieldWidget');
+dojo.require('openils.acq.Picklist');
+
+var VANDELAY_URL = '/vandelay-upload';
+var providerWidget;
+var orderAgencyWidget;
+
+function init() {
+ dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken;
+
+ new openils.widget.AutoFieldWidget({
+ fmClass : 'acqpo',
+ fmField : 'provider',
+ orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq-pl-upload-provider'),
+ }).build(
+ function(w) { providerWidget = w }
+ );
+
+ new openils.widget.AutoFieldWidget({
+ fmClass : 'acqpo',
+ fmField : 'ordering_agency',
+ orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq-pl-upload-agency'),
+ }).build(
+ function(w) { orderAgencyWidget = w }
+ );
+
+ fieldmapper.standardRequest(
+ ['open-ils.acq', 'open-ils.acq.picklist.user.retrieve.atomic'],
+ { async: true,
+ params: [openils.User.authtoken],
+ oncomplete : function(r) {
+ var list = openils.Util.readResponse(r);
+ acqPlUploadPlSelector.store =
+ new dojo.data.ItemFileReadStore({data:acqpl.toStoreData(list)});
+ }
+ }
+ );
+}
+
+function acqUploadRecords() {
+ openils.Util.show('acq-pl-upload-progress');
+ var picklist = acqPlUploadPlSelector.attr('value');
+ if(picklist) {
+ // ComboBox value is the display string. find the actual picklist
+ // and create a new one if necessary
+ acqPlUploadPlSelector.store.fetch({
+ query : {name:picklist},
+ onComplete : function(items) {
+ if(items.length == 0) {
+ // create a new picklist for these items
+ openils.acq.Picklist.create(
+ {name:picklist, org_unit: orderAgencyWidget.attr('value')},
+ function(plId) { acqSendUploadForm({picklist:plId}) }
+ );
+ } else {
+ acqSendUploadForm({picklist:items[0].id});
+ }
+ }
+ });
+ } else {
+ acqSendUploadForm({picklist:null});
+ }
+}
+
+function acqSendUploadForm(args) {
+ dojo.io.iframe.send({
+ url: VANDELAY_URL,
+ method: "post",
+ handleAs: "html",
+ form: dojo.byId('acq-pl-upload-form'),
+ content : {
+ picklist : args.picklist,
+ provider : providerWidget.attr('value'),
+ ordering_agency : orderAgencyWidget.attr('value')
+ },
+ handle: function(data, ioArgs){
+ acqHandlePostUpload(data.documentElement.textContent);
+ }
+ });
+}
+
+
+function acqHandlePostUpload(key) {
+ fieldmapper.standardRequest(
+ ['open-ils.acq', 'open-ils.acq.process_upload_records'],
+ { async: true,
+ params: [openils.User.authtoken, key],
+ onresponse : function(r) {
+ var resp = openils.Util.readResponse(r);
+ console.log(js2JSON(resp));
+ if(!resp) return;
+ if(resp.complete) {
+ openils.Util.hide('acq-pl-upload-complete-pl');
+ openils.Util.hide('acq-pl-upload-complete-po');
+ openils.Util.hide('acq-pl-upload-progress-bar');
+ openils.Util.show('acq-pl-upload-complete');
+
+ if(resp.picklist) {
+ openils.Util.show('acq-pl-upload-complete-pl');
+ dojo.byId('acq-pl-upload-complete-pl').setAttribute(
+ 'href', oilsBasePath + '/acq/picklist/view/' + resp.picklist.id());
+ }
+
+ if(resp.purchase_order) {
+ openils.Util.show('acq-pl-upload-complete-po');
+ dojo.byId('acq-pl-upload-complete-po').setAttribute(
+ 'href', oilsBasePath + '/acq/po/view/' + resp.purchase_order.id());
+ }
+
+ } else {
+ dojo.byId('acq-pl-upload-li-processed').innerHTML = resp.li;
+ dojo.byId('acq-pl-upload-lid-processed').innerHTML = resp.lid;
+ dojo.byId('acq-pl-upload-debits-processed').innerHTML = resp.debits_accrued;
+ dojo.byId('acq-pl-upload-bibs-processed').innerHTML = resp.bibs;
+ dojo.byId('acq-pl-upload-indexed-processed').innerHTML = resp.indexed;
+ dojo.byId('acq-pl-upload-copies-processed').innerHTML = resp.copies;
+ }
+ },
+ }
+ );
+}
+
+
+openils.Util.addOnLoad(init);
+