]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/acq/picklist/upload.js
added status infor for bibs imported and indexed and copies indexed
[Evergreen.git] / Open-ILS / web / js / ui / default / acq / picklist / upload.js
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
13 var VANDELAY_URL = '/vandelay-upload';
14 var providerWidget;
15 var orderAgencyWidget;
16
17 function init() {
18     dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken;
19
20     new openils.widget.AutoFieldWidget({
21         fmClass : 'acqpo',
22         fmField : 'provider',
23         orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
24         parentNode : dojo.byId('acq-pl-upload-provider'),
25     }).build(
26         function(w) { providerWidget = w }
27     );
28
29     new openils.widget.AutoFieldWidget({
30         fmClass : 'acqpo',
31         fmField : 'ordering_agency',
32         orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
33         parentNode : dojo.byId('acq-pl-upload-agency'),
34     }).build(
35         function(w) { orderAgencyWidget = w }
36     );
37
38     fieldmapper.standardRequest(
39         ['open-ils.acq', 'open-ils.acq.picklist.user.retrieve.atomic'],
40         {   async: true,
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)});
46             }
47         }
48     );
49 }
50
51 function acqUploadRecords() {
52     openils.Util.show('acq-pl-upload-progress');
53     var picklist = acqPlUploadPlSelector.attr('value');
54     if(picklist) {
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}) }
65                     );
66                 } else {
67                     acqSendUploadForm({picklist:items[0].id});
68                 }
69             }
70         });
71     } else {
72         acqSendUploadForm({picklist:null});
73     }
74 }
75
76 function acqSendUploadForm(args) {
77     dojo.io.iframe.send({
78         url: VANDELAY_URL,
79         method: "post",
80         handleAs: "html",
81         form: dojo.byId('acq-pl-upload-form'),
82         content : {
83             picklist : args.picklist,
84             provider : providerWidget.attr('value'),
85             ordering_agency : orderAgencyWidget.attr('value')
86         },
87         handle: function(data, ioArgs){
88             acqHandlePostUpload(data.documentElement.textContent);
89         }
90     });
91 }
92
93
94 function acqHandlePostUpload(key) {
95     fieldmapper.standardRequest(
96         ['open-ils.acq', 'open-ils.acq.process_upload_records'],
97         {   async: true,
98             params: [openils.User.authtoken, key],
99             onresponse : function(r) {
100                 var resp = openils.Util.readResponse(r);
101                 console.log(js2JSON(resp));
102                 if(!resp) return;
103                 if(resp.complete) {
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');
108
109                     if(resp.picklist) {
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());
113                     } 
114
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());
119                     }
120
121                 } else {
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;
128                 }
129             },
130         }
131     );
132 }
133
134
135 openils.Util.addOnLoad(init);
136