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');
12 dojo.require('openils.XUL');
14 var VANDELAY_URL = '/vandelay-upload';
16 var orderAgencyWidget;
20 dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken;
22 new openils.widget.AutoFieldWidget({
25 orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
26 parentNode : dojo.byId('acq-pl-upload-provider'),
28 function(w) { providerWidget = w }
31 new openils.widget.AutoFieldWidget({
33 fmField : 'ordering_agency',
34 orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
35 parentNode : dojo.byId('acq-pl-upload-agency'),
37 function(w) { orderAgencyWidget = w }
40 vlAgent = new VLAgent();
43 fieldmapper.standardRequest(
44 ['open-ils.acq', 'open-ils.acq.picklist.user.retrieve.atomic'],
46 params: [openils.User.authtoken],
47 oncomplete : function(r) {
48 var list = openils.Util.readResponse(r);
49 acqPlUploadPlSelector.store =
50 new dojo.data.ItemFileReadStore({data:acqpl.toStoreData(list)});
56 function acqUploadRecords() {
57 openils.Util.show('acq-pl-upload-progress');
58 var picklist = acqPlUploadPlSelector.attr('value');
60 // ComboBox value is the display string. find the actual picklist
61 // and create a new one if necessary
62 acqPlUploadPlSelector.store.fetch({
63 query : {name:picklist},
64 onComplete : function(items) {
65 if(items.length == 0) {
66 // create a new picklist for these items
67 openils.acq.Picklist.create(
68 {name:picklist, org_unit: orderAgencyWidget.attr('value')},
69 function(plId) { acqSendUploadForm({picklist:plId}) }
72 acqSendUploadForm({picklist:items[0].id[0]});
77 acqSendUploadForm({picklist:null});
81 function acqSendUploadForm(args) {
86 form: dojo.byId('acq-pl-upload-form'),
87 handle: function(data, ioArgs){
88 acqHandlePostUpload(data.documentElement.textContent, args.picklist);
94 function acqHandlePostUpload(key, plId) {
98 provider : providerWidget.attr('value'),
99 ordering_agency : orderAgencyWidget.attr('value'),
100 create_po : acqPlUploadCreatePo.attr('value'),
101 activate_po : acqPlUploadActivatePo.attr('value'),
102 vandelay : vlAgent.values()
105 fieldmapper.standardRequest(
106 ['open-ils.acq', 'open-ils.acq.process_upload_records'],
108 params: [openils.User.authtoken, key, args],
109 onresponse : function(r) {
111 vlAgent.handleResponse(
112 openils.Util.readResponse(r),
113 function(resp, res) {
115 openils.Util.hide('acq-pl-upload-complete-pl');
116 openils.Util.hide('acq-pl-upload-complete-po');
117 openils.Util.hide('acq-pl-upload-complete-q');
118 openils.Util.hide('acq-pl-upload-progress-bar');
119 openils.Util.show('acq-pl-upload-complete');
121 function activateLink(link, url, name) {
122 link = dojo.byId(link);
123 openils.Util.show(link);
124 if (name) link.innerHTML = name;
125 if (typeof xulG == 'undefined') { // browser
126 link.setAttribute('href', url);
128 link.setAttribute('href', 'javascript:;'); // for linky-ness
129 link.onclick = function() { openils.XUL.newTabEasy(url) };
133 if(res.picklist_url) {
134 activateLink('acq-pl-upload-complete-pl', res.picklist_url);
138 activateLink('acq-pl-upload-complete-po', res.po_url);
142 activateLink('acq-pl-upload-complete-q', res.queue_url, resp.queue.name());
152 openils.Util.addOnLoad(init);