1 dojo.require('dojo.data.ItemFileReadStore');
2 dojo.require('dijit.ProgressBar');
3 dojo.require('dijit.form.CheckBox');
4 dojo.require('dijit.form.TextBox');
5 dojo.require('dijit.form.FilteringSelect');
6 dojo.require('dijit.form.ComboBox');
7 dojo.require('dijit.form.Button');
8 dojo.require("dojo.io.iframe");
9 dojo.require('openils.User');
10 dojo.require('openils.widget.AutoFieldWidget');
11 dojo.require('openils.acq.Picklist');
13 var VANDELAY_URL = '/vandelay-upload';
15 var orderAgencyWidget;
18 dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken;
20 new openils.widget.AutoFieldWidget({
23 orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
24 parentNode : dojo.byId('acq-pl-upload-provider'),
26 function(w) { providerWidget = w }
29 new openils.widget.AutoFieldWidget({
31 fmField : 'ordering_agency',
32 orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
33 parentNode : dojo.byId('acq-pl-upload-agency'),
35 function(w) { orderAgencyWidget = w }
38 fieldmapper.standardRequest(
39 ['open-ils.acq', 'open-ils.acq.picklist.user.retrieve.atomic'],
41 params: [openils.User.authtoken],
42 oncomplete : function(r) {
43 var list = openils.Util.readResponse(r);
44 acqPlUploadPlSelector.store =
45 new dojo.data.ItemFileReadStore({data:acqpl.toStoreData(list)});
51 function acqUploadRecords() {
52 openils.Util.show('acq-pl-upload-progress');
53 var picklist = acqPlUploadPlSelector.attr('value');
55 // ComboBox value is the display string. find the actual picklist
56 // and create a new one if necessary
57 acqPlUploadPlSelector.store.fetch({
58 query : {name:picklist},
59 onComplete : function(items) {
60 if(items.length == 0) {
61 // create a new picklist for these items
62 openils.acq.Picklist.create(
63 {name:picklist, org_unit: orderAgencyWidget.attr('value')},
64 function(plId) { acqSendUploadForm({picklist:plId}) }
67 acqSendUploadForm({picklist:items[0].id});
72 acqSendUploadForm({picklist:null});
76 function acqSendUploadForm(args) {
81 form: dojo.byId('acq-pl-upload-form'),
83 picklist : args.picklist,
84 provider : providerWidget.attr('value'),
85 ordering_agency : orderAgencyWidget.attr('value')
87 handle: function(data, ioArgs){
88 acqHandlePostUpload(data.documentElement.textContent);
94 function acqHandlePostUpload(key) {
95 fieldmapper.standardRequest(
96 ['open-ils.acq', 'open-ils.acq.process_upload_records'],
98 params: [openils.User.authtoken, key],
99 onresponse : function(r) {
100 var resp = openils.Util.readResponse(r);
101 console.log(js2JSON(resp));
104 openils.Util.hide('acq-pl-upload-complete-pl');
105 openils.Util.hide('acq-pl-upload-complete-po');
106 openils.Util.hide('acq-pl-upload-progress-bar');
107 openils.Util.show('acq-pl-upload-complete');
110 openils.Util.show('acq-pl-upload-complete-pl');
111 dojo.byId('acq-pl-upload-complete-pl').setAttribute(
112 'href', location.href + '/../view/' + resp.picklist.id());
115 if(resp.purchase_order) {
116 openils.Util.show('acq-pl-upload-complete-po');
117 dojo.byId('acq-pl-upload-complete-po').setAttribute(
118 'href', location.href + '/../../po/view/' + resp.purchase_order.id());
122 dojo.byId('acq-pl-upload-li-processed').innerHTML = resp.li;
123 dojo.byId('acq-pl-upload-lid-processed').innerHTML = resp.lid;
124 dojo.byId('acq-pl-upload-debits-processed').innerHTML = resp.debits_accrued;
125 dojo.byId('acq-pl-upload-bibs-processed').innerHTML = resp.bibs;
126 dojo.byId('acq-pl-upload-indexed-processed').innerHTML = resp.indexed;
127 dojo.byId('acq-pl-upload-copies-processed').innerHTML = resp.copies;
135 openils.Util.addOnLoad(init);