+++ /dev/null
-dojo.require('openils.widget.AutoGrid');
-dojo.require('fieldmapper.OrgUtils');
-dojo.require('openils.widget.OrgUnitFilteringSelect');
-dojo.require('dijit.form.DateTextBox');
-dojo.require('dojo.date.stamp');
-
-var eventState;
-var eventContextOrg;
-var eventList;
-var eventStartDateRange;
-var eventEndDateRange;
-var po_map = {};
-
-function eventInit() {
- try {
- buildStateSelector();
- buildOrgSelector();
- buildDatePickers();
- buildEventGrid();
-
- eventGrid.cancelSelected = function() { doSelected('open-ils.acq.purchase_order.event.cancel.batch') };
- eventGrid.resetSelected = function() { doSelected('open-ils.acq.purchase_order.event.reset.batch') };
- eventGrid.doSearch = function() {
- buildEventGrid();
- }
-
- } catch(E) {
- //dump('Error in acq/events.js, eventInit(): ' + E);
- throw(E);
- }
-}
-
-function buildDatePickers() {
- var today = new Date();
- var yesterday = new Date( today.getFullYear(), today.getMonth(), today.getDate() - 1);
- eventStartDatePicker.constraints.max = today;
- eventStartDatePicker.attr( 'value', yesterday );
- eventStartDateRange = eventStartDatePicker.attr('value');
- eventEndDatePicker.constraints.max = today;
- eventEndDatePicker.attr( 'value', today );
- eventEndDateRange = eventEndDatePicker.attr('value');
- dojo.connect(
- eventStartDatePicker,
- 'onChange',
- function() {
- var new_date = arguments[0];
- if (new_date > eventEndDatePicker.attr('value')) {
- var swap = eventEndDatePicker.attr('value');
- eventEndDatePicker.attr( 'value', new_date );
- this.attr( 'value', swap );
- }
- eventStartDateRange = this.attr('value');
- }
- );
- dojo.connect(
- eventEndDatePicker,
- 'onChange',
- function() {
- var new_date = arguments[0];
- if (new_date < eventStartDatePicker.attr('value')) {
- var swap = eventStartDatePicker.attr('value');
- eventStartDatePicker.attr( 'value', new_date );
- this.attr( 'value', swap );
- }
- eventEndDateRange = this.attr('value');
- }
- );
-
-}
-
-function buildStateSelector() {
- try {
- eventStateSelect.store = new dojo.data.ItemFileReadStore({
- data : {
- identifier:"value",
- label: "name",
- items: [
- /* FIXME: I18N? */
- {name:"Pending", value:'pending'},
- {name:"Complete", value:'complete'},
- {name:"Error", value:'error'}
- ]
- }
- });
- eventStateSelect.attr( 'value','pending' );
- dojo.connect(
- eventStateSelect,
- 'onChange',
- function() {
- try {
- eventState = this.attr('value');
- } catch(E) {
- //dump('Error in acq/events.js, eventInit, connect, onChange: ' + E);
- throw(E);
- }
- }
- );
-
- } catch(E) {
- //dump('Error in acq/events.js, buildStateSelector(): ' + E);
- throw(E);
- }
-}
-
-function buildOrgSelector() {
- try {
- var connect = function() {
- try {
- dojo.connect(
- eventContextOrgSelect,
- 'onChange',
- function() {
- try {
- eventContextOrg = this.attr('value');
- } catch(E) {
- //dump('Error in acq/events.js, eventInit, connect, onChange: ' + E);
- throw(E);
- }
- }
- );
- } catch(E) {
- //dump('Error in acq/events.js, eventInit, connect: ' + E);
- throw(E);
- }
- };
- new openils.User().buildPermOrgSelector('STAFF_LOGIN', eventContextOrgSelect, null, connect);
-
- } catch(E) {
- //dump('Error in acq/events.js, buildOrgSelector(): ' + E);
- throw(E);
- }
-}
-
-function doSelected(method) {
- try {
- var ids = [];
- dojo.forEach(
- eventGrid.getSelectedItems(),
- function(item) {
- ids.push( eventGrid.store.getValue(item,'id') );
- }
- );
- fieldmapper.standardRequest(
- [ 'open-ils.acq', method ],
- { async: true,
- params: [openils.User.authtoken, ids],
- onresponse: function(r) {
- try {
- var result = openils.Util.readResponse(r);
- if (typeof result.ilsevent != 'undefined') { throw(result); }
- } catch(E) {
- //dump('Error in acq/events.js, doSelected(), onresponse(): ' + E);
- throw(E);
- }
- },
- onerror: function(r) {
- try {
- var result = openils.Util.readResponse(r);
- throw(result);
- } catch(E) {
- //dump('Error in acq/events.js, doSelected(), onerror(): ' + E);
- throw(E);
- }
- },
- oncomplete: function(r) {
- try {
- var result = openils.Util.readResponse(r);
- buildEventGrid();
- } catch(E) {
- //dump('Error in acq/events.js, doSelected(), oncomplete(): ' + E);
- throw(E);
- }
- }
- }
- );
- } catch(E) {
- //dump('Error in acq/events.js, doSelected(): ' + E);
- throw(E);
- }
-}
-
-function buildEventGrid() {
- eventGrid.resetStore();
- if(eventContextOrg == null) {
- eventContextOrg = openils.User.user.ws_ou();
- }
- if(eventState == null) {
- eventState = 'pending';
- }
- var filter = {"state":eventState, "order_by":[{"class":"atev", "field":"run_time", "direction":"desc"}]};
- if(eventStartDateRange != null) {
- /* the dijit appears to always provide 00:00:00 for the timestamp component */
- var end_of_day = eventEndDateRange; end_of_day.setDate( end_of_day.getDate() + 1 );
- filter['start_time'] = {
- 'between' : [
- dojo.date.stamp.toISOString( eventStartDateRange ),
- dojo.date.stamp.toISOString( end_of_day )
- ]
- }
- }
- po_map = {};
- fieldmapper.standardRequest(
- ['open-ils.acq', 'open-ils.acq.purchase_order.events.ordering_agency'],
- { async: true,
- params: [openils.User.authtoken, eventContextOrg, filter],
- onresponse: function(r) {
- try {
- if(eventObject = openils.Util.readResponse(r)) {
- po_map[ eventObject.target().id() ] = eventObject.target();
- eventObject.target( eventObject.target().id() );
- eventGrid.store.newItem(atev.toStoreItem(eventObject));
- }
- } catch(E) {
- //dump('Error in acq/events.js, buildEventGrid, onresponse: ' + E);
- throw(E);
- }
- }
- }
- );
-}
-
-function format_po_link(value) {
- if (value) {
- // FIXME -- how do you escape the value from .name() ?
- return '<a href="' + oilsBasePath + '/acq/po/view/' + value + '">' + po_map[ value ].name() + '</a>';
- }
-}
-
-openils.Util.addOnLoad(eventInit);
-
-