]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/conify/global/action_trigger/event_definition.js
added initial 'test circ event def by barcode' functionality
[working/Evergreen.git] / Open-ILS / web / js / ui / default / conify / global / action_trigger / event_definition.js
1 dojo.require('dijit.layout.TabContainer');
2 dojo.require('dijit.form.Textarea');
3 dojo.require('dijit.form.FilteringSelect');
4 dojo.require('dijit.form.TextBox');
5 dojo.require('dojo.data.ItemFileReadStore');
6 dojo.require('openils.widget.AutoGrid');
7 dojo.require('openils.Util');
8 dojo.require('openils.PermaCrud');
9 dojo.require('openils.widget.ProgressDialog');
10
11
12 function loadEventDef() { 
13     edGrid.loadAll({order_by:{atevdef : 'hook'}}); 
14     edGrid.overrideEditWidgetClass.template = 'dijit.form.Textarea';
15     dojo.connect(eventDefTabs,'selectChild', tabLoader);
16 }
17
18 var loadedTabs = {'tab-atevdef' : true};
19 function tabLoader(child) {
20     if(loadedTabs[child.id]) return;
21     loadedTabs[child.id] = true;
22     switch(child.id) {
23         case 'tab-atevparam': 
24             tepGrid.loadAll({order_by:{atevparam : 'event_def'}}); 
25             break;
26         case 'tab-ath': 
27             thGrid.loadAll({order_by:{ath : 'key'}}); 
28             break;
29         case 'tab-atenv': 
30             teeGrid.loadAll({order_by:{atenv : 'event_def'}}); 
31             break;
32         case 'tab-atreact': 
33             trGrid.loadAll({order_by:{atreact : 'module'}}); 
34             break;
35         case 'tab-atval': 
36             tvGrid.loadAll({order_by:{atval : 'module'}}); 
37             break;
38         case 'tab-test': 
39             loadTestTab();
40             break;
41     }
42 }
43
44 function loadTestTab() {
45     var pcrud = new openils.PermaCrud();
46     var hooks = pcrud.search('ath', {core_type : 'circ'});
47
48     circTestHookSelector.store = new dojo.data.ItemFileReadStore({data : ath.toStoreData(hooks, 'key', {identifier:'key'})});
49     circTestHookSelector.searchAttr = 'key';
50     circTestHookSelector.startup();
51
52     var defs = pcrud.search('atevdef', {hook : hooks.map(function(i){return i.key()})});
53     circTestDefSelector.store = new dojo.data.ItemFileReadStore({data : atevdef.toStoreData(defs)});
54     circTestDefSelector.searchAttr = 'id';
55     circTestDefSelector.startup();
56
57     dojo.connect(circTestHookSelector, 'onChange',
58         function() {
59             circTestDefSelector.query = {hook : this.attr('value')};
60         }
61     );
62 }
63
64 function evtTestCirc() {
65     var def = circTestDefSelector.attr('value');
66     var barcode = circTestBarcode.attr('value');
67     if(!(def && barcode)) return;
68
69     progressDialog.show();
70
71     function handleResponse(r) {
72         var evt = openils.Util.readResponse(r);
73         progressDialog.hide();
74         if(evt && evt != '0') {
75             var output = evt.template_output();
76             if(!output) output = evt.error_output();
77             var pre = document.createElement('pre');
78             pre.innerHTML = output.data();
79             dojo.byId('test-event-output').appendChild(pre);
80             openils.Util.show('test-event-output');
81         }
82     }
83
84     fieldmapper.standardRequest(
85         ['open-ils.circ', 'open-ils.circ.trigger_event_by_def_and_barcode.fire'],
86         {   async: true,
87             params: [openils.User.authtoken, def, barcode],
88             oncomplete: handleResponse
89         }
90     );
91 }
92
93 openils.Util.addOnLoad(loadEventDef);