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'?>
8 "-//W3C//DTD XHTML 1.0 Transitional//EN"
9 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
11 <!--#include virtual="/opac/locale/${locale}/reports.dtd"-->
14 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xhtml="http://www.w3.org/1999/xhtml">
17 <script type="text/javascript">
25 <script type="text/javascript" src="/js/dojo/dojo/dojo.js"></script>
26 <script type="text/javascript">
28 dojo.require('dojo.parser');
29 dojo.require('dojo.string');
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"/>
45 <script src="../adminlib.js" type="application/x-javascript; e4x=1"/>
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"/>
55 <script type="text/javascript">
57 dojo.addOnLoad(loadIDL);
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"/>
66 <caption label="&reports.xul.template_builder.db_source_browser.label;"/>
70 <menulist label="&reports.xul.template_builder.sources_menulist.label;" popup="source-menu"/>
74 onclick="sourceTreeHandler(event)"
75 ondblclick="sourceTreeHandlerDblClick(event)"
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"/>
81 <treechildren id="sources-treetop" alternatingbackground="true" />
83 <checkbox id="nullable-source-control" label="&reports.xul.template_builder.nullability_select.label;"/>
87 <splitter id="rtp-browse-splitter" collapse="before" persist="state hidden"><grippy/></splitter>
92 <label control="path-label" value="&reports.xul.template_builder.source_specifier.label;"/>
93 <textbox id="path-label" flex="1"/>
101 onclick="detailTreeHandler()"
102 ondblclick="addReportAtoms()"
103 enableColumnDrag="true"
106 <treecol label="&reports.xul.template_builder.field_name.label;" flex="1"/>
107 <treecol label="&reports.xul.template_builder.data_type.label;" flex="0"/>
109 <treechildren id="class-treetop" alternatingbackground="true" />
114 <splitter><grippy/></splitter>
122 onclick="transformSelectHandler()"
123 ondblclick="addReportAtoms()"
124 enableColumnDrag="true"
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" />
132 <treechildren id="trans-treetop" alternatingbackground="true" />
139 <button label="&reports.xul.template_builder.source_add.label;" id="source-add" oncommand="addReportAtoms()"/>
146 <splitter style="margin:3px" id="rtp-browse-build-splitter" collapse="before" persist="state hidden"><grippy/></splitter>
149 <groupbox flex="1" orient="horizontal">
150 <caption label="&reports.xul.template_builder.template_config_caption.label;"/>
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;"/>
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"/>
166 <button onclick="save_template();" label="&reports.xul.template_builder.save.label;"/>
171 <tabbox flex="2" id="used-source-fields-tabbox">
175 label="&reports.xul.template_builder.displayed_fields.label;"
176 onclick="transformSelectHandler(true);"
180 label="&reports.xul.template_builder.base_filters.label;"
181 onclick="transformSelectHandler(true);"
185 label="&reports.xul.template_builder.aggregate_filters.label;"
187 onclick="transformSelectHandler(true);"
193 onclick="transformSelectHandler(true);"
199 <tabpanel id="dis_tabpanel" orient="vertical">
206 ondblclick="alterColumnLabel()"
207 onselect="populateTransformContext()"
208 enableColumnDrag="true"
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"/>
218 <treechildren id="dis-col-treetop" alternatingbackground="true" />
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'/>
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')"/>
230 <button label="&reports.xul.template_builder.remove_selected_field.label;" oncommand="removeReportAtom()"/>
232 <button label="&reports.xul.template_builder.change_field_doc.label;" oncommand="changeFieldDoc()"/>
237 <tabpanel id="filter_tabpanel" orient="vertical">
244 onselect="populateTransformContext();populateOperatorContext();changeTemplateFilterValue();"
245 enableColumnDrag="true"
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"/>
257 <treechildren id="filter-col-treetop" alternatingbackground="true" />
261 <button type="menu" label="&reports.xul.template_builder.change_transform.label;">
262 <menupopup id='filter_tab_trans_menu'/>
264 <button type="menu" label="&reports.xul.template_builder.change_operator.label;">
265 <menupopup id='filter_tab_op_menu'/>
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()"/>
270 <button label="&reports.xul.template_builder.remove_selected_fields.label;" oncommand="removeReportAtom()"/>
272 <button label="&reports.xul.template_builder.change_field_doc.label;" oncommand="changeFieldDoc()"/>
277 <tabpanel id="aggfilter_tabpanel" orient="vertical">
281 id="aggfilter-col-view"
284 onselect="populateTransformContext();populateOperatorContext();changeTemplateFilterValue();"
285 enableColumnDrag="true"
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"/>
297 <treechildren id="aggfilter-col-treetop" alternatingbackground="true" />
301 <button type="menu" label="&reports.xul.template_builder.change_transform.label;">
302 <menupopup id='aggfilter_tab_trans_menu'/>
304 <button type="menu" label="&reports.xul.template_builder.change_operator.label;">
305 <menupopup id='aggfilter_tab_op_menu'/>
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()"/>
310 <button label="&reports.xul.template_builder.remove_selected_fields.label;" oncommand="removeReportAtom()"/>
312 <button label="&reports.xul.template_builder.change_field_doc.label;" oncommand="changeFieldDoc()"/>
322 <splitter id="rtp-build-splitter" collapse="after" persist="state hidden"><grippy/></splitter>
328 onclick="renderSources(true)"
329 ondblclick="changeTemplateFilterValue()"
330 enableColumnDrag="true"
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"/>
338 <treechildren id="used-sources-treetop" alternatingbackground="true" />
345 <command id='filter_tab_value_action'/>
346 <command id='aggfilter_tab_value_action'/>
350 <menupopup id="source-menu" position="after_start"/>
353 position="before_start"