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');
13 var localeStrings = dojo.i18n.getLocalization('openils.conify', 'conify');
16 function loadEventDef() {
17 eventDefGranularity.attr('value', null);
18 eventDefGranularity.ignoreCase = false;
19 edGrid.overrideEditWidgets.granularity = eventDefGranularity;
20 edGrid.overrideEditWidgets.granularity.shove = {"create": ""};
21 edGrid.loadAll({order_by:{atevdef : 'name, owner, hook, reactor, delay'}});
22 openils.widget.Textarea.width = '600px';
23 openils.widget.Textarea.height = '600px';
24 edGrid.overrideEditWidgetClass.template = 'openils.widget.Textarea';
25 edGrid.overrideEditWidgetClass.message_template = 'openils.widget.Textarea';
26 dojo.connect(eventDefTabs,'selectChild', tabLoader);
30 * After an event def is cloned, see if the user wants to also clone the event def environment
31 * @param {Object} oldItem Grid store item that was cloned
32 * @param {Object} newObject Newly created fieldmapper object
34 function cloneEventEnv(oldItem, newObject) {
35 if(!confirm('Clone event definition environment as well?')) return; // TODO i18n
36 progressDialog.show(true);
37 var pcrud = new openils.PermaCrud();
39 // fetch the env list for the cloned object
40 var env_list = pcrud.search('atenv', {event_def : edGrid.store.getValue(oldItem, 'id')});
42 if(env_list && env_list.length) {
44 // clone the environment
45 env_list = env_list.map(
48 item.event_def(newObject.id());
53 // create the cloned environment list
54 pcrud.create(env_list);
57 progressDialog.hide();
60 function loadEventDefData() {
61 var pcrud = new openils.PermaCrud();
62 eventDef = pcrud.retrieve('atevdef', eventDefId);
63 var hook = pcrud.retrieve('ath', eventDef.hook());
65 if(hook.core_type() == 'circ') {
66 openils.Util.hide('at-test-none');
67 openils.Util.show('at-test-circ');
70 dojo.byId('at-event-def-name').innerHTML = eventDef.name();
71 teeGrid.loadAll({order_by:{atenv : 'path'}}, {event_def : eventDefId});
72 dojo.connect(eventDefTabs,'selectChild', tabLoader);
74 teeGrid.overrideEditWidgets.event_def = new dijit.form.TextBox({value: eventDefId, disabled : true});
75 tepGrid.overrideEditWidgets.event_def = new dijit.form.TextBox({value: eventDefId, disabled : true});
78 var loadedTabs = {'tab-atevdef' : true};
79 function tabLoader(child) {
80 if(loadedTabs[child.id]) return;
81 loadedTabs[child.id] = true;
85 tepGrid.loadAll({order_by:{atevparam : 'param'}}, {event_def : eventDefId});
88 thGrid.loadAll({order_by:{ath : 'key'}});
91 trGrid.loadAll({order_by:{atreact : 'module'}});
94 tvGrid.loadAll({order_by:{atval : 'module'}});
104 function getEventDefNameLink(rowIdx, item) {
106 return this.grid.store.getValue(item, 'id') + ':' + this.grid.store.getValue(item, 'name');
109 function formatEventDefNameLink(data) {
111 var parts = data.split(/:/);
112 return dojox.string.sprintf(
113 '<a href="%s/conify/global/action_trigger/event_definition_data/%s">%s</a>',
114 oilsBasePath, parts[0], parts[1]);
118 function evtTestCirc() {
119 var barcode = circTestBarcode.attr('value');
122 progressDialog.show();
124 function handleResponse(r) {
125 var evt = openils.Util.readResponse(r);
126 progressDialog.hide();
127 if(evt && evt != '0') {
128 var output = evt.template_output();
129 if(!output) output = evt.error_output();
130 var pre = document.createElement('pre');
131 pre.innerHTML = output.data();
132 openils.Util.appendClear('test-event-output', pre);
133 openils.Util.show('test-event-output');
137 fieldmapper.standardRequest(
138 ['open-ils.circ', 'open-ils.circ.trigger_event_by_def_and_barcode.fire'],
140 params: [openils.User.authtoken, eventDefId, barcode],
141 oncomplete: handleResponse