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;
19 dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken;
21 new openils.widget.AutoFieldWidget({
24 orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
25 parentNode : dojo.byId('acq-pl-upload-provider'),
27 function(w) { providerWidget = w }
30 new openils.widget.AutoFieldWidget({
32 fmField : 'ordering_agency',
33 orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
34 parentNode : dojo.byId('acq-pl-upload-agency'),
36 function(w) { orderAgencyWidget = w }
39 vlAgent = new VLAgent();
42 fieldmapper.standardRequest(
43 ['open-ils.acq', 'open-ils.acq.picklist.user.retrieve.atomic'],
45 params: [openils.User.authtoken],
46 oncomplete : function(r) {
47 var list = openils.Util.readResponse(r);
48 acqPlUploadPlSelector.store =
49 new dojo.data.ItemFileReadStore({data:acqpl.toStoreData(list)});
55 function acqUploadRecords() {
56 openils.Util.show('acq-pl-upload-progress');
57 var picklist = acqPlUploadPlSelector.attr('value');
59 // ComboBox value is the display string. find the actual picklist
60 // and create a new one if necessary
61 acqPlUploadPlSelector.store.fetch({
62 query : {name:picklist},
63 onComplete : function(items) {
64 if(items.length == 0) {
65 // create a new picklist for these items
66 openils.acq.Picklist.create(
67 {name:picklist, org_unit: orderAgencyWidget.attr('value')},
68 function(plId) { acqSendUploadForm({picklist:plId}) }
71 acqSendUploadForm({picklist:items[0].id[0]});
76 acqSendUploadForm({picklist:null});
80 function acqSendUploadForm(args) {
85 form: dojo.byId('acq-pl-upload-form'),
86 handle: function(data, ioArgs){
87 acqHandlePostUpload(data.documentElement.textContent, args.picklist);
93 function acqHandlePostUpload(key, plId) {
97 provider : providerWidget.attr('value'),
98 ordering_agency : orderAgencyWidget.attr('value'),
99 create_po : acqPlUploadCreatePo.attr('value'),
100 activate_po : acqPlUploadActivatePo.attr('value'),
101 vandelay : vlAgent.values()
104 fieldmapper.standardRequest(
105 ['open-ils.acq', 'open-ils.acq.process_upload_records'],
107 params: [openils.User.authtoken, key, args],
108 onresponse : function(r) {
110 vlAgent.handleResponse(
111 openils.Util.readResponse(r),
112 function(resp, res) {
114 openils.Util.hide('acq-pl-upload-complete-pl');
115 openils.Util.hide('acq-pl-upload-complete-po');
116 openils.Util.hide('acq-pl-upload-complete-q');
117 openils.Util.hide('acq-pl-upload-progress-bar');
118 openils.Util.show('acq-pl-upload-complete');
120 if(res.picklist_url) {
121 openils.Util.show('acq-pl-upload-complete-pl');
122 dojo.byId('acq-pl-upload-complete-pl').setAttribute('href', res.picklist_url);
126 openils.Util.show('acq-pl-upload-complete-po');
127 dojo.byId('acq-pl-upload-complete-po').setAttribute('href', res.po_url);
131 link = dojo.byId('acq-pl-upload-complete-q');
132 openils.Util.show(link);
133 link.setAttribute('href', res.queue_url);
134 link.innerHTML = resp.queue.name();
144 openils.Util.addOnLoad(init);