use new event_def name field. added delete buttons for more event_def grids
[working/Evergreen.git] / Open-ILS / web / js / ui / default / actor / user / trigger_events.js
1 dojo.require('dojox.grid.DataGrid');
2 dojo.require('dojo.data.ItemFileWriteStore');
3 dojo.require('openils.Util');
4 dojo.require('openils.User');
5
6 // need these to represent the event def name
7 dojo.requireLocalization('openils.conify', 'conify');
8 var localeStrings = dojo.i18n.getLocalization('openils.conify', 'conify');
9
10 var evtCache = {};
11
12 function init() {
13     var store = new dojo.data.ItemFileWriteStore({data:acqf.initStoreData()});
14     evtGrid.setStore(store);
15     evtGrid.render();
16
17     function onResponse(r) {
18         var evt = openils.Util.readResponse(r);
19         evtCache[evt.id()] = evt;
20         evtGrid.store.newItem(evt.toStoreItem()); 
21     }
22
23     fieldmapper.standardRequest(
24         ['open-ils.actor', 'open-ils.actor.user.events.circ'],
25         {   async: true,
26             params: [openils.User.authtoken, patronId],
27             onresponse : onResponse
28         }
29     );
30
31     fieldmapper.standardRequest(
32         ['open-ils.actor', 'open-ils.actor.user.events.ahr'],
33         {   async: true,
34             params: [openils.User.authtoken, patronId],
35             onresponse : onResponse
36         }
37     );
38 }
39
40 function getField(rowIdx, item) {
41     if(!item) return '';
42     var evt = evtCache[this.grid.store.getValue(item, 'id')];
43
44     switch(this.field) {
45         case 'event_def':
46             return dojo.string.substitute(
47                 localeStrings.EVENT_DEF_LABEL, [
48                     fieldmapper.aou.findOrgUnit(evt.event_def().owner()).shortname(), 
49                     evt.event_def().name()
50                 ]);
51         case 'reactor':
52             return evt.event_def().reactor().module();
53         case 'validator':
54             return evt.event_def().validator().module();
55         case 'hook':
56             return evt.event_def().hook();
57         case 'target':
58             switch(evt.target().classname) {
59                 case 'circ':
60                     return evt.target().target_copy().barcode();
61                 case 'ahr':
62                     if(evt.target().currrent_copy())
63                         return evt.target().currrent_copy().barcode();
64             }
65             
66     }
67
68     return this.grid.store.getValue(item, this.field) || '';
69 }
70
71 function evtCancelSelected() {
72     var selected = evtGrid.selection.getSelected();
73     if(selected.length == 0) return;
74     var eventIds = selected.map(
75         function(item) { return evtGrid.store.getValue(item, 'id') } );
76     alert(eventIds);
77     fieldmapper.standardRequest(
78         ['open-ils.actor', 'open-ils.actor.user.event.cancel.batch'],
79         {   async: true,
80             params: [openils.User.authtoken, eventIds],
81             oncomplete : init
82         }
83     );
84 }
85
86 openils.Util.addOnLoad(init);
87