1 dojo.require('openils.widget.AutoGrid');
2 dojo.require('fieldmapper.OrgUtils');
3 dojo.require('openils.widget.OrgUnitFilteringSelect');
4 dojo.require('dijit.form.DateTextBox');
5 dojo.require('dojo.date.stamp');
10 var eventStartDateRange;
11 var eventEndDateRange;
14 function eventInit() {
21 eventGrid.cancelSelected = function() { doSelected('open-ils.acq.purchase_order.event.cancel.batch') };
22 eventGrid.resetSelected = function() { doSelected('open-ils.acq.purchase_order.event.reset.batch') };
23 eventGrid.doSearch = function() {
28 //dump('Error in acq/events.js, eventInit(): ' + E);
33 function buildDatePickers() {
34 var today = new Date();
35 var yesterday = new Date( today.getFullYear(), today.getMonth(), today.getDate() - 1);
36 eventStartDatePicker.constraints.max = today;
37 eventStartDatePicker.attr( 'value', yesterday );
38 eventStartDateRange = eventStartDatePicker.attr('value');
39 eventEndDatePicker.constraints.max = today;
40 eventEndDatePicker.attr( 'value', today );
41 eventEndDateRange = eventEndDatePicker.attr('value');
46 var new_date = arguments[0];
47 if (new_date > eventEndDatePicker.attr('value')) {
48 var swap = eventEndDatePicker.attr('value');
49 eventEndDatePicker.attr( 'value', new_date );
50 this.attr( 'value', swap );
52 eventStartDateRange = this.attr('value');
59 var new_date = arguments[0];
60 if (new_date < eventStartDatePicker.attr('value')) {
61 var swap = eventStartDatePicker.attr('value');
62 eventStartDatePicker.attr( 'value', new_date );
63 this.attr( 'value', swap );
65 eventEndDateRange = this.attr('value');
71 function buildStateSelector() {
73 eventStateSelect.store = new dojo.data.ItemFileReadStore({
79 {name:"Pending", value:'pending'},
80 {name:"Complete", value:'complete'},
81 {name:"Error", value:'error'}
85 eventStateSelect.attr( 'value','pending' );
91 eventState = this.attr('value');
93 //dump('Error in acq/events.js, eventInit, connect, onChange: ' + E);
100 //dump('Error in acq/events.js, buildStateSelector(): ' + E);
105 function buildOrgSelector() {
107 var connect = function() {
110 eventContextOrgSelect,
114 eventContextOrg = this.attr('value');
116 //dump('Error in acq/events.js, eventInit, connect, onChange: ' + E);
122 //dump('Error in acq/events.js, eventInit, connect: ' + E);
126 new openils.User().buildPermOrgSelector('STAFF_LOGIN', eventContextOrgSelect, null, connect);
129 //dump('Error in acq/events.js, buildOrgSelector(): ' + E);
134 function doSelected(method) {
138 eventGrid.getSelectedItems(),
140 ids.push( eventGrid.store.getValue(item,'id') );
143 fieldmapper.standardRequest(
144 [ 'open-ils.acq', method ],
146 params: [openils.User.authtoken, ids],
147 onresponse: function(r) {
149 var result = openils.Util.readResponse(r);
150 if (typeof result.ilsevent != 'undefined') { throw(result); }
152 //dump('Error in acq/events.js, doSelected(), onresponse(): ' + E);
156 onerror: function(r) {
158 var result = openils.Util.readResponse(r);
161 //dump('Error in acq/events.js, doSelected(), onerror(): ' + E);
165 oncomplete: function(r) {
167 var result = openils.Util.readResponse(r);
170 //dump('Error in acq/events.js, doSelected(), oncomplete(): ' + E);
177 //dump('Error in acq/events.js, doSelected(): ' + E);
182 function buildEventGrid() {
183 eventGrid.resetStore();
184 if(eventContextOrg == null) {
185 eventContextOrg = openils.User.user.ws_ou();
187 if(eventState == null) {
188 eventState = 'pending';
190 var filter = {"state":eventState, "order_by":[{"class":"atev", "field":"run_time", "direction":"desc"}]};
191 if(eventStartDateRange != null) {
192 /* the dijit appears to always provide 00:00:00 for the timestamp component */
193 var end_of_day = eventEndDateRange; end_of_day.setDate( end_of_day.getDate() + 1 );
194 filter['start_time'] = {
196 dojo.date.stamp.toISOString( eventStartDateRange ),
197 dojo.date.stamp.toISOString( end_of_day )
202 fieldmapper.standardRequest(
203 ['open-ils.acq', 'open-ils.acq.purchase_order.events.ordering_agency'],
205 params: [openils.User.authtoken, eventContextOrg, filter],
206 onresponse: function(r) {
208 if(eventObject = openils.Util.readResponse(r)) {
209 po_map[ eventObject.target().id() ] = eventObject.target();
210 eventObject.target( eventObject.target().id() );
211 eventGrid.store.newItem(atev.toStoreItem(eventObject));
214 //dump('Error in acq/events.js, buildEventGrid, onresponse: ' + E);
222 function format_po_link(value) {
224 // FIXME -- how do you escape the value from .name() ?
225 return '<a href="' + oilsBasePath + '/acq/po/view/' + value + '">' + po_map[ value ].name() + '</a>';
229 openils.Util.addOnLoad(eventInit);