2 <!-- Application: Evergreen Staff Client -->
6 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
7 <?xml-stylesheet href="chrome://open_ils_staff_client/skin/global.css" type="text/css"?>
10 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
12 <window id="fm_view_win"
13 onload="try { my_init(); font_helper(); } catch(E) { dump(E+'\n'); alert(E); }"
14 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
16 <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
17 <scripts id="openils_util_scripts"/>
19 <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
25 'get_list_from_tree_selection' : function() {
26 var d = document; var tree_w;
27 if (arguments.length == 1) {
28 tree_w = arguments[0];
31 tree_w = arguments[1];
34 if (typeof(tree_w) != 'object') {
35 hitlist = d.getElementById(tree_w);
40 var start = new Object();
41 var end = new Object();
42 var numRanges = hitlist.view.selection.getRangeCount();
43 for (var t=0; t<numRanges; t++){
44 hitlist.view.selection.getRangeAt(t,start,end);
45 for (var v=start.value; v<=end.value; v++){
46 var i = hitlist.contentView.getItemAtIndex(v);
56 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
57 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
58 JSAN.errorLevel = "die"; // none, warn, or die
59 JSAN.addRepository('/xul/server/');
60 JSAN.use('util.error'); g.error = new util.error();
61 JSAN.use('util.network'); g.network = new util.network();
62 JSAN.use('util.window'); g.window = new util.window();
63 JSAN.use('util.functional');
64 g.error.sdump('D_TRACE','my_init() for fm_view.xul');
66 var treechildren = window.document.getElementById('tc');
67 var fm = g.network.request('open-ils.actor','opensrf.open-ils.system.fieldmapper',[]);
68 var fma = []; var fmh = {} ;
69 for (var i in fm) { fmh[ fm[i].hint ] = fm[i]; fma.push( [ fm[i].hint, i ] ); }
71 for (var i = 0; i < fma.length; i++) {
72 var hint = fma[i][0]; var name = fma[i][1]; var o = fmh[ hint ];
73 var ti = window.document.createElement('treeitem');
74 treechildren.appendChild( ti );
75 ti.setAttribute( 'container', 'true' );
76 var tr = window.document.createElement('treerow');
78 var tc = window.document.createElement('treecell');
80 tc.setAttribute('label',hint);
81 tc = window.document.createElement('treecell');
83 tc.setAttribute('label', name );
84 var _treechildren = window.document.createElement( 'treechildren' );
85 ti.appendChild( _treechildren );
86 for (var j in o.fields) {
87 var _ti = window.document.createElement( 'treeitem' );
88 _treechildren.appendChild( _ti );
89 _ti.setAttribute('fm_class',hint);
90 _ti.setAttribute('fm_field',j);
91 _ti.setAttribute('fm_virtual',o.fields[j].virtual);
92 _ti.setAttribute('fm_position',o.fields[j].position);
93 var _tr = window.document.createElement( 'treerow' );
94 _ti.appendChild( _tr );
95 var _tc = window.document.createElement( 'treecell' );
96 _tr.appendChild( _tc );
97 _tc.setAttribute('label',j);
98 _tc = window.document.createElement( 'treecell' );
99 _tr.appendChild( _tc );
100 _tc.setAttribute('label','\t Position: ' + o.fields[j].position + ' Virtual: ' + o.fields[j].virtual);
103 tree = window.document.getElementById('t');
104 tree.view.selection.select( 0 ); tree.focus();
109 function gen_cols() {
110 var data_url = 'data:application/vnd.mozilla.xul+xml,<?xml version="1.0"?><window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><?xml-stylesheet href="chrome://global/skin" type="text/css"?><vbox flex="1"><textbox id="desc" multiline="true" flex="1"/></vbox></window>';
111 var w = g.window.SafeWindowOpen(data_url,'paged_tree cols','chrome,resizable,width=800,height=600');
112 var css = '<?xml-stylesheet href="data:text/css,#a{-moz-box-flex:1;}"?>';
113 var treeitems = mw.get_list_from_tree_selection( tree );
116 var tb = w.document.getElementById('desc');
117 for (var i = 0; i < treeitems.length; i++) {
118 var hint = treeitems[i].getAttribute('fm_class');
119 var field = treeitems[i].getAttribute('fm_field');
121 "{\n\t'id' : '" + field + "', 'label' : getString('" + hint + "_" +
122 field + "_label'), 'flex' : 1,\n" +
123 "\t'primary' : false, 'hidden' : false, 'fm_class' : '" + hint +
124 "', 'fm_field_render' : '." + field + "()'\n},\n"
128 dump(tb.value + '\n');
133 function gen_properties() {
134 var data_url = 'data:application/vnd.mozilla.xul+xml,<?xml version="1.0"?><window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><?xml-stylesheet href="chrome://global/skin" type="text/css"?><vbox flex="1"><textbox id="desc" multiline="true" flex="1"/></vbox></window>';
135 var w = g.window.SafeWindowOpen(data_url,'paged_tree cols','chrome,resizable,width=800,height=600');
136 var css = '<?xml-stylesheet href="data:text/css,#a{-moz-box-flex:1;}"?>';
137 var treeitems = mw.get_list_from_tree_selection( tree );
140 var tb = w.document.getElementById('desc');
141 for (var i = 0; i < treeitems.length; i++) {
142 var hint = treeitems[i].getAttribute('fm_class');
143 var field = treeitems[i].getAttribute('fm_field');
144 var pretty = util.functional.map_list(
147 return s.substr(0,1).toUpperCase() + s.substr(1);
151 hint + '_' + field + '_label=' + pretty + '\n'
155 dump(tb.value + '\n');
160 function gen_wikitable() {
161 var data_url = 'data:application/vnd.mozilla.xul+xml,<?xml version="1.0"?><window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><?xml-stylesheet href="chrome://global/skin" type="text/css"?><vbox flex="1"><textbox id="desc" multiline="true" flex="1"/></vbox></window>';
162 var w = g.window.SafeWindowOpen(data_url,'paged_tree cols','chrome,resizable,width=800,height=600');
163 var css = '<?xml-stylesheet href="data:text/css,#a{-moz-box-flex:1;}"?>';
164 var treeitems = mw.get_list_from_tree_selection( tree );
167 var tb = w.document.getElementById('desc');
168 for (var i = 0; i < treeitems.length; i++) {
169 var hint = treeitems[i].getAttribute('fm_class');
170 var field = treeitems[i].getAttribute('fm_field');
172 '|' + hint + '|' + field
175 if (treeitems[i].getAttribute('fm_virtual') == '1') text += ' * ';
179 dump(tb.value + '\n');
188 <vbox flex="1" class="my_overflow">
189 <groupbox orient="vertical" flex="1">
190 <caption label="Fieldmapper Class Viewer"/>
192 <button label="Generate paged_tree cols for selected fields" accesskey="G" oncommand="gen_cols();"/>
193 <button label="Generate string bundle properties for selected fields" accesskey="P" oncommand="gen_properties();"/>
194 <button label="Generate dokuwiki table for selected fields" accesskey="P" oncommand="gen_wikitable();"/>
196 <tree id="t" flex="1">
198 <treecol id="tcol1" label="opensrf.open-ils.system.fieldmapper" primary="true" flex="0"/>
199 <treecol id="tcol2" label="" flex="1"/>
201 <treechildren id="tc"/>