]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/conify/global/action_trigger/event_definition.js
use custom textarea widget
[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.requireLocalization('openils.conify', 'conify');
11
12 var localeStrings = dojo.i18n.getLocalization('openils.conify', 'conify');
13
14 function loadEventDef() { 
15     edGrid.loadAll({order_by:{atevdef : 'hook'}}); 
16     openils.widget.Textarea.width = '600px';
17     openils.widget.Textarea.height = '600px';
18     edGrid.overrideEditWidgetClass.template = 'openils.widget.Textarea';
19     dojo.connect(eventDefTabs,'selectChild', tabLoader);
20 }
21
22 var loadedTabs = {'tab-atevdef' : true};
23 function tabLoader(child) {
24     if(loadedTabs[child.id]) return;
25     loadedTabs[child.id] = true;
26
27     switch(child.id) {
28         case 'tab-atevparam': 
29             tepGrid.loadAll({order_by:{atevparam : 'event_def'}}); 
30             break;
31         case 'tab-ath': 
32             thGrid.loadAll({order_by:{ath : 'key'}}); 
33             break;
34         case 'tab-atenv': 
35             teeGrid.loadAll({order_by:{atenv : 'event_def'}}); 
36             break;
37         case 'tab-atreact': 
38             trGrid.loadAll({order_by:{atreact : 'module'}}); 
39             break;
40         case 'tab-atval': 
41             tvGrid.loadAll({order_by:{atval : 'module'}}); 
42             break;
43         case 'tab-test': 
44             loadTestTab();
45             break;
46     }
47 }
48
49 function loadTestTab() {
50     var pcrud = new openils.PermaCrud();
51     var hooks = pcrud.search('ath', {core_type : 'circ'});
52
53     circTestHookSelector.store = new dojo.data.ItemFileReadStore({data : ath.toStoreData(hooks, 'key', {identifier:'key'})});
54     circTestHookSelector.searchAttr = 'key';
55     circTestHookSelector.startup();
56
57     var defs = pcrud.search('atevdef', {hook : hooks.map(function(i){return i.key()})});
58     var defData = atevdef.toStoreData(defs);
59     circTestDefSelector.store = new dojo.data.ItemFileReadStore({data : defData});
60     circTestDefSelector.searchAttr = 'name';
61     circTestDefSelector.startup();
62
63     dojo.connect(circTestHookSelector, 'onChange',
64         function() {
65             circTestDefSelector.query = {hook : this.attr('value')};
66         }
67     );
68 }
69
70
71 function eventDefGetter(rowIdx, item) {
72     if(!item) return '';
73     var def = this.grid.store.getValue(item, 'event_def');
74     return getDefName(def);
75 }
76
77 function getDefName(def) {
78
79     if(typeof def != 'object') {
80         edGrid.store.fetchItemByIdentity({
81             identity : def,
82             onItem : function(item) { def = new fieldmapper.atevdef().fromStoreItem(item); }
83         });
84     }
85
86     return dojo.string.substitute(
87         localeStrings.EVENT_DEF_LABEL, [
88             fieldmapper.aou.findOrgUnit(def.owner()).shortname(), 
89             def.name()
90         ]);
91 }
92
93
94 function evtTestCirc() {
95     var def = circTestDefSelector.attr('value');
96     var barcode = circTestBarcode.attr('value');
97     if(!(def && barcode)) return;
98
99     progressDialog.show();
100
101     function handleResponse(r) {
102         var evt = openils.Util.readResponse(r);
103         progressDialog.hide();
104         if(evt && evt != '0') {
105             var output = evt.template_output();
106             if(!output) output = evt.error_output();
107             var pre = document.createElement('pre');
108             pre.innerHTML = output.data();
109             openils.Util.appendClear('test-event-output', pre);
110             openils.Util.show('test-event-output');
111         }
112     }
113
114     fieldmapper.standardRequest(
115         ['open-ils.circ', 'open-ils.circ.trigger_event_by_def_and_barcode.fire'],
116         {   async: true,
117             params: [openils.User.authtoken, def, barcode],
118             oncomplete: handleResponse
119         }
120     );
121 }
122
123 openils.Util.addOnLoad(loadEventDef);