]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/reports/xul/template_builder.xul
5b27102c065c46b1a94d5aa60b75c75ff58efa8f
[Evergreen.git] / Open-ILS / web / reports / xul / template_builder.xul
1 <?xml version="1.0" encoding="UTF-8"?>
2 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
3 <?xml-stylesheet href="reporter.css" type="text/css"?>
4 <?xml-stylesheet href="/opac/common/js/jscalendar/calendar-brown.css" type="text/css" ?>
5 <?xml-stylesheet href='/js/dojo/dojo/resources/dojo.css' type='text/css'?>
6
7 <!DOCTYPE html PUBLIC 
8         "-//W3C//DTD XHTML 1.0 Transitional//EN" 
9         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
10         <!ENTITY nbsp " ">
11         <!--#include virtual="/opac/locale/${locale}/reports.dtd"-->
12 ]>
13
14 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xhtml="http://www.w3.org/1999/xhtml">
15
16 <!-- Load dojo -->
17 <script type="text/javascript">
18 <![CDATA[
19         var djConfig= {
20                 isDebug: false,
21                 parseOnLoad: true
22         }
23 ]]>
24 </script>
25 <script type="text/javascript" src="/js/dojo/dojo/dojo.js"></script>
26 <script type="text/javascript">
27 <![CDATA[
28         dojo.require('dojo.parser');
29         dojo.require('dojo.string');
30 ]]>
31 </script>
32
33 <script src='/opac/common/js/utils.js' type="application/x-javascript; e4x=1"/>
34 <script src='/opac/common/js/config.js' type="application/x-javascript; e4x=1"/>
35 <script src='/opac/common/js/CGI.js' type="application/x-javascript; e4x=1"/>
36 <script src='/opac/common/js/JSON_v1.js' type="application/x-javascript; e4x=1"/>
37 <script src='/opac/common/js/fmall.js' type="application/x-javascript; e4x=1"/>
38 <script src='/opac/common/js/fmgen.js' type="application/x-javascript; e4x=1"/>
39 <script src='/opac/common/js/opac_utils.js' type="application/x-javascript; e4x=1"/>
40 <script src='/opac/common/js/<!--#echo var="locale"-->/OrgTree.js' type="application/x-javascript; e4x=1"/>
41 <script src='/opac/common/js/org_utils.js' type="application/x-javascript; e4x=1"/>
42 <script src='/opac/common/js/RemoteRequest.js' type="application/x-javascript; e4x=1"/>
43 <script src='/opac/common/js/md5.js' type="application/x-javascript; e4x=1"/>
44
45 <script src="../adminlib.js" type="application/x-javascript; e4x=1"/>
46
47 <script src="utilities.js" type="application/x-javascript; e4x=1"/>
48 <script src="xulbuilder.js" type="application/x-javascript; e4x=1"/>
49 <script src="source-setup.js" type="application/x-javascript; e4x=1"/>
50 <script src="source-browse.js" type="application/x-javascript; e4x=1"/>
51 <script src="template-config.js" type="application/x-javascript; e4x=1"/>
52 <script src="transforms.js" type="application/x-javascript; e4x=1"/>
53 <script src="operators.js" type="application/x-javascript; e4x=1"/>
54
55 <script type="text/javascript"> 
56 <![CDATA[ 
57     dojo.addOnLoad(loadIDL); 
58 ]]> 
59 </script>
60
61 <script type="application/x-javascript; e4x=1" src="/opac/common/js/jscalendar/calendar.js"/>
62 <script type="application/x-javascript; e4x=1" src="/opac/common/js/jscalendar/lang/calendar-en.js"/>
63 <script type="application/x-javascript; e4x=1" src="/opac/common/js/jscalendar/calendar-setup.js"/>
64
65 <groupbox flex="1">
66         <caption label="&reports.xul.template_builder.db_source_browser.label;"/>
67         <hbox flex="1">
68                 <hbox flex="1">
69                         <vbox flex="1">
70                                 <menulist label="&reports.xul.template_builder.sources_menulist.label;" popup="source-menu"/>
71                                 <tree
72                                         id="idl-browse-tree"
73                                         flex="2"
74                                         onclick="sourceTreeHandler(event)"
75                                         ondblclick="sourceTreeHandlerDblClick(event)"
76                                 >
77                                         <treecols>
78                                                 <treecol label="&reports.xul.template_builder.source_nullable.label;" flex="0"/>
79                                                 <treecol primary="true" label="&reports.xul.template_builder.source_name.label;" flex="1"/>
80                                         </treecols>
81                                         <treechildren id="sources-treetop" alternatingbackground="true" />
82                                 </tree>
83                 <checkbox id="nullable-source-control" label="&reports.xul.template_builder.nullability_select.label;"/>
84                         </vbox>
85                 </hbox>
86
87                 <splitter id="rtp-browse-splitter" collapse="before" persist="state hidden"><grippy/></splitter>
88
89                 <hbox flex="2">
90                         <vbox flex="1">
91                                 <hbox>
92                                         <label control="path-label" value="&reports.xul.template_builder.source_specifier.label;"/>
93                                         <textbox id="path-label" flex="1"/>
94                                 </hbox>
95                                 <hbox flex="1">
96                                         <hbox flex="3">
97                                                 <vbox flex="1">
98                                                         <tree
99                                                                 id="class-view"
100                                                                 flex="3"
101                                                                 onclick="detailTreeHandler()"
102                                                                 ondblclick="addReportAtoms()"
103                                                                 enableColumnDrag="true"
104                                                         >
105                                                                 <treecols>
106                                                                         <treecol label="&reports.xul.template_builder.field_name.label;" flex="1"/>
107                                                                         <treecol label="&reports.xul.template_builder.data_type.label;" flex="0"/>
108                                                                 </treecols>
109                                                                 <treechildren id="class-treetop" alternatingbackground="true" />
110                                                         </tree>
111                                                 </vbox>
112                                         </hbox>
113
114                                         <splitter><grippy/></splitter>
115
116                                         <hbox flex="2">
117                                                 <vbox flex="1">
118                                                         <tree
119                                                                 id="trans-view"
120                                                                 flex="1"
121                                                                 seltype="single"
122                                                                 onclick="transformSelectHandler()"
123                                                                 ondblclick="addReportAtoms()"
124                                                                 enableColumnDrag="true"
125                                                         >
126                                                                 <treecols>
127                                                                         <treecol label="&reports.xul.template_builder.field_transform.label;" flex="1"/>
128                                                                         <treecol label="&reports.xul.template_builder.params.label;" flex="0" hidden="true"/>
129                                                                         <treecol label="&reports.xul.template_builder.applicable_datatypes.label;" flex="1" hidden="true"/>
130                                                                         <treecol label="&reports.xul.template_builder.output_type.label;" flex="1" />
131                                                                 </treecols>
132                                                                 <treechildren id="trans-treetop" alternatingbackground="true" />
133                                                         </tree>
134                                                 </vbox>
135                                         </hbox>
136                                 </hbox>
137                                 <hbox>
138                                         <spacer flex="1"/>
139                                         <button label="&reports.xul.template_builder.source_add.label;" id="source-add" oncommand="addReportAtoms()"/>
140                                 </hbox>
141                         </vbox>
142                 </hbox>
143         </hbox>
144 </groupbox>
145
146 <splitter style="margin:3px" id="rtp-browse-build-splitter" collapse="before" persist="state hidden"><grippy/></splitter>
147
148
149 <groupbox flex="1" orient="horizontal">
150         <caption label="&reports.xul.template_builder.template_config_caption.label;"/>
151
152         <hbox flex="1">
153                 <vbox flex="1">
154                         <hbox>
155                         <vbox>
156                                 <label control="template-name" value="&reports.xul.template_builder.name.label;" style="height:2em"/>
157                                 <label control="template-description" value="&reports.xul.template_builder.description.label;"/>
158                                 <label control="template-doc-url" value="&reports.xul.template_builder.doc_url.label;"/>
159                         </vbox>
160                         <vbox flex="1">
161                                 <textbox id="template-name" flex="1"/>
162                                 <textbox id="template-description" multiline="true" flex="1" style="max-height:3em"/>
163                                 <textbox id="template-doc-url" flex="1"/>
164                         </vbox>
165                         <vbox pack="end">
166                                 <button onclick="save_template();" label="&reports.xul.template_builder.save.label;"/>
167                         </vbox>
168                         </hbox>
169
170                         <hbox flex="1">
171                                 <tabbox flex="2" id="used-source-fields-tabbox">
172                                         <tabs>
173                                                 <tab
174                                                         id="dis_tab"
175                                                         label="&reports.xul.template_builder.displayed_fields.label;"
176                                                         onclick="transformSelectHandler(true);"
177                                                 />
178                                                 <tab
179                                                         id="filter_tab"
180                                                         label="&reports.xul.template_builder.base_filters.label;"
181                                                         onclick="transformSelectHandler(true);"
182                                                 />
183                                                 <tab
184                                                         id="aggfilter_tab"
185                                                         label="&reports.xul.template_builder.aggregate_filters.label;"
186                                                         disabled="true"
187                                                         onclick="transformSelectHandler(true);"
188                                                 />
189                                                 <!--
190                                                 <tab
191                                                         id="order_tab"
192                                                         label="Field Order"
193                                                         onclick="transformSelectHandler(true);"
194                                                 />
195                                                 -->
196                                         </tabs>
197
198                                         <tabpanels flex="1">
199                                                 <tabpanel id="dis_tabpanel" orient="vertical">
200                                                         <vbox flex="1">
201                                                                 <hbox flex="1">
202                                                                         <tree
203                                                                                 id="dis-col-view"
204                                                                                 flex="1"
205                                                                                 seltype="single"
206                                                                                 ondblclick="alterColumnLabel()"
207                                                                                 onselect="populateTransformContext()"
208                                                                                 enableColumnDrag="true"
209                                                                         >
210                                                                                 <treecols>
211                                                                                         <treecol label="&reports.xul.template_builder.display_name.label;" flex="3"/>
212                                                                                         <treecol label="&reports.xul.template_builder.field_name.label;" hidden="true" flex="1"/>
213                                                                                         <treecol label="&reports.xul.template_builder.data_type.label;" flex="1"/>
214                                                                                         <treecol label="&reports.xul.template_builder.field_transform.label;" flex="1"/>
215                                                                                         <treecol label="&reports.xul.template_builder.field_transform_type.label;" hidden="true" flex="1"/>
216                                                                                         <treecol label="&reports.xul.template_builder.field_doc.label;" hidden="true" flex="1"/>
217                                                                                 </treecols>
218                                                                                 <treechildren id="dis-col-treetop" alternatingbackground="true" />
219                                                                         </tree>
220                                                                 </hbox>
221                                                                 <hbox pack="center">
222                                                                         <button label="&reports.xul.template_builder.alter_display_header.label;" oncommand="alterColumnLabel()"/>
223                                                                         <button type="menu" label="&reports.xul.template_builder.change_transform.label;">
224                                                                                 <menupopup id='dis_tab_trans_menu'/>
225                                                                         </button>
226                                                                         <spacer flex="1"/>
227                                                                         <button label="&reports.xul.template_builder.move_up.label;" oncommand="changeDisplayOrder('u')"/>
228                                                                         <button label="&reports.xul.template_builder.move_down.label;" oncommand="changeDisplayOrder('d')"/>
229                                                                         <spacer flex="1"/>
230                                                                         <button label="&reports.xul.template_builder.remove_selected_field.label;" oncommand="removeReportAtom()"/>
231                                                                         <spacer flex="1"/>
232                                                                         <button label="&reports.xul.template_builder.change_field_doc.label;" oncommand="changeFieldDoc()"/>
233                                                                 </hbox>
234                                                         </vbox>
235                                                 </tabpanel>
236
237                                                 <tabpanel id="filter_tabpanel" orient="vertical">
238                                                         <vbox flex="1">
239                                                                 <hbox flex="1">
240                                                                         <tree
241                                                                                 id="filter-col-view"
242                                                                                 flex="1"
243                                                                                 seltype="single"
244                                                                                 onselect="populateTransformContext();populateOperatorContext();changeTemplateFilterValue();"
245                                                                                 enableColumnDrag="true"
246                                                                         >
247                                                                                 <treecols>
248                                                                                         <treecol label="&reports.xul.template_builder.filter_field.label;" flex="2"/>
249                                                                                         <treecol label="&reports.xul.template_builder.field_name.label;" hidden="true" flex="1"/>
250                                                                                         <treecol label="&reports.xul.template_builder.data_type.label;" hidden="true" flex="1"/>
251                                                                                         <treecol label="&reports.xul.template_builder.field_transform.label;" flex="1"/>
252                                                                                         <treecol label="&reports.xul.template_builder.field_transform_type.label;" hidden="true" flex="1"/>
253                                                                                         <treecol label="&reports.xul.template_builder.operator.label;" flex="1"/>
254                                                                                         <treecol label="&reports.xul.template_builder.value.label;" flex="1"/>
255                                                                                         <treecol label="&reports.xul.template_builder.field_doc.label;" hidden="true" flex="1"/>
256                                                                                 </treecols>
257                                                                                 <treechildren id="filter-col-treetop" alternatingbackground="true" />
258                                                                         </tree>
259                                                                 </hbox>
260                                                                 <hbox pack="center">
261                                                                         <button type="menu" label="&reports.xul.template_builder.change_transform.label;">
262                                                                                 <menupopup id='filter_tab_trans_menu'/>
263                                                                         </button>
264                                                                         <button type="menu" label="&reports.xul.template_builder.change_operator.label;">
265                                                                                 <menupopup id='filter_tab_op_menu'/>
266                                                                         </button>
267                                                                         <button label="&reports.xul.template_builder.change_value.label;" command="filter_tab_value_action"/>
268                                                                         <button label="&reports.xul.template_builder.remove_value.label;" oncommand="removeTemplateFilterValue()"/>
269                                                                         <spacer flex="1"/>
270                                                                         <button label="&reports.xul.template_builder.remove_selected_fields.label;" oncommand="removeReportAtom()"/>
271                                                                         <spacer flex="1"/>
272                                                                         <button label="&reports.xul.template_builder.change_field_doc.label;" oncommand="changeFieldDoc()"/>
273                                                                 </hbox>
274                                                         </vbox>
275                                                 </tabpanel>
276
277                                                 <tabpanel id="aggfilter_tabpanel" orient="vertical">
278                                                         <vbox flex="1">
279                                                                 <hbox flex="1">
280                                                                         <tree
281                                                                                 id="aggfilter-col-view"
282                                                                                 flex="1"
283                                                                                 seltype="single"
284                                                                                 onselect="populateTransformContext();populateOperatorContext();changeTemplateFilterValue();"
285                                                                                 enableColumnDrag="true"
286                                                                         >
287                                                                                 <treecols>
288                                                                                         <treecol label="&reports.xul.template_builder.filter_field.label;" flex="2"/>
289                                                                                         <treecol label="&reports.xul.template_builder.field_name.label;" hidden="true" flex="1"/>
290                                                                                         <treecol label="&reports.xul.template_builder.data_type.label;" hidden="true" flex="1"/>
291                                                                                         <treecol label="&reports.xul.template_builder.field_transform.label;" flex="1"/>
292                                                                                         <treecol label="&reports.xul.template_builder.field_transform_type.label;" hidden="true" flex="1"/>
293                                                                                         <treecol label="&reports.xul.template_builder.operator.label;" flex="1"/>
294                                                                                         <treecol label="&reports.xul.template_builder.value.label;" flex="1"/>
295                                                                                         <treecol label="&reports.xul.template_builder.field_doc.label;" hidden="true" flex="1"/>
296                                                                                 </treecols>
297                                                                                 <treechildren id="aggfilter-col-treetop" alternatingbackground="true" />
298                                                                         </tree>
299                                                                 </hbox>
300                                                                 <hbox pack="center">
301                                                                         <button type="menu" label="&reports.xul.template_builder.change_transform.label;">
302                                                                                 <menupopup id='aggfilter_tab_trans_menu'/>
303                                                                         </button>
304                                                                         <button type="menu" label="&reports.xul.template_builder.change_operator.label;">
305                                                                                 <menupopup id='aggfilter_tab_op_menu'/>
306                                                                         </button>
307                                                                         <button label="&reports.xul.template_builder.change_value.label;" command="aggfilter_tab_value_action"/>
308                                                                         <button label="&reports.xul.template_builder.remove_value.label;" oncommand="removeTemplateFilterValue()"/>
309                                                                         <spacer flex="1"/>
310                                                                         <button label="&reports.xul.template_builder.remove_selected_fields.label;" oncommand="removeReportAtom()"/>
311                                                                         <spacer flex="1"/>
312                                                                         <button label="&reports.xul.template_builder.change_field_doc.label;" oncommand="changeFieldDoc()"/>
313                                                                 </hbox>
314                                                         </vbox>
315                                                 </tabpanel>
316                                         </tabpanels>
317                                 </tabbox>
318                         </hbox>
319                 </vbox>
320         </hbox>
321
322         <splitter id="rtp-build-splitter" collapse="after" persist="state hidden"><grippy/></splitter>
323
324         <hbox flex="3">
325                 <tree
326                         id="used-sources"
327                         flex="1"
328                         onclick="renderSources(true)"
329                         ondblclick="changeTemplateFilterValue()"
330                         enableColumnDrag="true"
331                 >
332                         <treecols>
333                                 <treecol label="&reports.xul.template_builder.source_specifier.label;" flex="2"/>
334                                 <treecol label="&reports.xul.template_builder.table_name.label;" flex="1" hidden="true"/>
335                                 <treecol label="&reports.xul.template_builder.sql_alias.label;" flex="1" hidden="true"/>
336                                 <treecol label="&reports.xul.template_builder.relationship.label;" flex="1" hidden="true"/>
337                         </treecols>
338                         <treechildren id="used-sources-treetop" alternatingbackground="true" />
339                 </tree>
340         </hbox>
341
342 </groupbox>
343
344 <commandset>
345         <command id='filter_tab_value_action'/>
346         <command id='aggfilter_tab_value_action'/>
347 </commandset>
348
349 <popupset>
350         <menupopup id="source-menu" position="after_start"/>
351         <popup
352                 id="calendar-widget"
353                 position="before_start"
354         />
355 </popupset>
356
357 </window>
358