]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/conify/global/action_trigger/event_definition.js
ff4ad74d1ac9371729ac2a6761c7c2c357f734d0
[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.FilteringSelect');
3 dojo.require('dijit.form.TextBox');
4 dojo.require('dojo.data.ItemFileReadStore');
5 dojo.require('openils.widget.AutoGrid');
6 dojo.require('openils.Util');
7 dojo.require('openils.PermaCrud');
8 dojo.require('openils.widget.Textarea');
9 dojo.require('openils.widget.ProgressDialog');
10 dojo.require('dojox.string.sprintf');
11 dojo.requireLocalization('openils.conify', 'conify');
12
13 var localeStrings = dojo.i18n.getLocalization('openils.conify', 'conify');
14 var eventDef = null;
15
16 function loadEventDef() { 
17     edGrid.loadAll({order_by:{atevdef : 'hook'}}); 
18     openils.widget.Textarea.width = '600px';
19     openils.widget.Textarea.height = '600px';
20     edGrid.overrideEditWidgetClass.template = 'openils.widget.Textarea';
21     dojo.connect(eventDefTabs,'selectChild', tabLoader);
22 }
23
24 function loadEventDefData() { 
25     var pcrud = new openils.PermaCrud();
26     eventDef = pcrud.retrieve('atevdef', eventDefId);
27     var hook = pcrud.retrieve('ath', eventDef.hook());
28
29     if(hook.core_type() == 'circ') {
30         openils.Util.hide('at-test-none');
31         openils.Util.show('at-test-circ');
32     }
33
34     dojo.byId('at-event-def-name').innerHTML = eventDef.name();
35     teeGrid.loadAll({order_by:{atenv : 'path'}}, {event_def : eventDefId}); 
36     dojo.connect(eventDefTabs,'selectChild', tabLoader);
37
38     teeGrid.overrideEditWidgets.event_def = new dijit.form.TextBox({value: eventDefId, disabled : true});
39     tepGrid.overrideEditWidgets.event_def = new dijit.form.TextBox({value: eventDefId, disabled : true});
40 }
41
42 var loadedTabs = {'tab-atevdef' : true};
43 function tabLoader(child) {
44     if(loadedTabs[child.id]) return;
45     loadedTabs[child.id] = true;
46
47     switch(child.id) {
48         case 'tab-atevparam': 
49             tepGrid.loadAll({order_by:{atevparam : 'param'}}, {event_def : eventDefId}); 
50             break;
51         case 'tab-ath': 
52             thGrid.loadAll({order_by:{ath : 'key'}}); 
53             break;
54         case 'tab-atreact': 
55             trGrid.loadAll({order_by:{atreact : 'module'}}); 
56             break;
57         case 'tab-atval': 
58             tvGrid.loadAll({order_by:{atval : 'module'}}); 
59             break;
60         /*
61         case 'tab-test': 
62             loadTestTab();
63             break;
64         */
65     }
66 }
67
68 function getEventDefNameLink(rowIdx, item) {
69     if(!item) return
70     return this.grid.store.getValue(item, 'id') + ':' + this.grid.store.getValue(item, 'name');
71 }
72
73 function formatEventDefNameLink(data) {
74     if(!data) return;
75     var parts = data.split(/:/);
76     return dojox.string.sprintf(
77         '<a href="%s/conify/global/action_trigger/event_definition_data/%s">%s</a>',
78         oilsBasePath, parts[0], parts[1]);
79 }
80
81
82 function evtTestCirc() {
83     var barcode = circTestBarcode.attr('value');
84     if(!barcode) return;
85
86     progressDialog.show();
87
88     function handleResponse(r) {
89         var evt = openils.Util.readResponse(r);
90         progressDialog.hide();
91         if(evt && evt != '0') {
92             var output = evt.template_output();
93             if(!output) output = evt.error_output();
94             var pre = document.createElement('pre');
95             pre.innerHTML = output.data();
96             openils.Util.appendClear('test-event-output', pre);
97             openils.Util.show('test-event-output');
98         }
99     }
100
101     fieldmapper.standardRequest(
102         ['open-ils.circ', 'open-ils.circ.trigger_event_by_def_and_barcode.fire'],
103         {   async: true,
104             params: [openils.User.authtoken, eventDefId, barcode],
105             oncomplete: handleResponse
106         }
107     );
108 }
109