2 # Copyright (C) 2008 Georgia Public Library Service / Equinox Software, Inc
3 # Mike Rylander <miker@esilibrary.com>
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
16 "-//W3C//DTD XHTML 1.0 Transitional//EN"
17 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
18 <!--#include virtual="/opac/locale/${locale}/conify.dtd"-->
20 <html xmlns="http://www.w3.org/1999/xhtml">
22 <title>&conify.marc_code_maps.title;</title>
24 <style type="text/css">
25 @import url('/js/dojo/dojox/grid/_grid/tundraGrid.css');
26 @import url('/js/dojo/dojo/resources/dojo.css');
27 @import url('/js/dojo/dijit/themes/tundra/tundra.css');
28 @import url('/js/dojo/dojox/widget/Toaster/Toaster.css');
31 <style type="text/css">
35 margin: 0px 0px 0px 0px;
36 padding: 0px 0px 0px 0px;
52 <!-- The OpenSRF API writ JS -->
53 <script language='javascript' src='/opac/common/js/utils.js' type='text/javascript'></script>
54 <script language='javascript' src='/opac/common/js/Cookies.js' type='text/javascript'></script>
55 <script language='javascript' src='/opac/common/js/CGI.js' type='text/javascript'></script>
56 <script language='javascript' src='/opac/common/js/JSON_v1.js' type='text/javascript'></script>
58 <!-- Dojo goodness -->
59 <script type="text/javascript" src="/js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
60 <script type="text/javascript" src="/js/dojo/dojo/openils_dojo.js"
61 djConfig="parseOnLoad: true, isDebug:false"></script>
62 <script type="text/javascript" src="/js/dojo/dijit/dijit.js"></script>
64 <script type="text/javascript" src="marc_code_maps.js"></script>
66 <script type="text/javascript">
68 var grid_row_object_cache = {};
71 console.log('create the special layout for cam');
76 { name : cam_strings.LABEL_CODE, field : "code", width : "5em", editor : dojox.grid.editors.Dijit, rowSpan : "2" },
77 { name : cam_strings.LABEL_VALUE, field : "value", width : "auto", editor : dojox.grid.editors.Editor, style : "minHeight:1em;" },
78 { name : cam_strings.LABEL_DESCRIPTION, field : "description", width : "auto", editor : dojox.grid.editors.Editor, style : "minHeight:1em;" }
81 { name : cam_strings.LABEL_TRANSLATION,
84 formatter : function (row) {
85 return '<span class="cam_value_'+row+'"></span>';
87 get : function (row) {
88 if (!grid_row_object_cache.cam) grid_row_object_cache.cam = [];
89 var r = this.grid.model.getRow(row);
91 grid_row_object_cache.cam[row] = new fieldmapper.cam().fromHash(this.grid.model.getRow(row));
93 'dojo.query(".cam_value_' + row + '").'+
95 'openils.widget.TranslatorPopup,{field:"value",'+
96 'targetObject:"grid_row_object_cache.cam['+row+']"}'+
97 ');cam_grid.rowHeightChanged('+row+');',
100 var oldnode = dojo.byId('value_translation_cam_' + row);
101 if (oldnode) dijit.byNode(oldnode).destroyRecursive();
107 { name : cam_strings.LABEL_TRANSLATION,
110 formatter : function (row) {
111 return '<span class="cam_description_'+row+'"></span>';
113 get : function (row) {
114 if (!grid_row_object_cache.cam) grid_row_object_cache.cam = [];
115 var r = this.grid.model.getRow(row);
117 grid_row_object_cache.cam[row] = new fieldmapper.cam().fromHash(this.grid.model.getRow(row));
119 'dojo.query(".cam_description_' + row + '").'+
121 'openils.widget.TranslatorPopup,{field:"description",'+
122 'targetObject:"grid_row_object_cache.cam['+row+']"}'+
123 ');cam_grid.rowHeightChanged('+row+');',
126 var oldnode = dojo.byId('description_translation_cam_' + row);
127 if (oldnode) dijit.byNode(oldnode).destroyRecursive();
138 var codelist = ['cam','cblvl','cifm','citm','clm','clfm','cvrfm'];
143 console.log('about to loop over codelist: ' + codelist);
145 for (var i in codelist) {
147 (function (classname) {
149 hashes[classname] = fieldmapper.standardRequest(
150 [ 'open-ils.fielder', 'open-ils.fielder.' + classname + '.atomic'],
151 [ { query : { code : { '!=' : null } } } ]
154 console.log('created hashes for ' + classname);
156 if (!hashes[classname]) return;
158 objects[classname] = dojo.map(
159 hashes[classname].concat(),
160 new Function('x', 'return new fieldmapper.' + classname + '().fromHash( x );')
163 console.log('created objects for ' + classname);
165 stores[classname] = new dojo.data.ItemFileWriteStore(
166 { data : fieldmapper[classname].toStoreData( objects[classname], 'value' ) }
169 console.log('create store for ' + classname);
171 if (classname != 'cam') {
172 layouts[classname] = [
175 { name : cam_strings.LABEL_CODE, field : "code", width : "5em", editor : dojox.grid.editors.Dijit },
176 { name : cam_strings.LABEL_VALUE, field : "value", width : "auto", editor : dojox.grid.editors.Editor, style : "minHeight:1em;" },
177 { name : cam_strings.LABEL_TRANSLATION,
180 formatter : function (row) {
181 return '<span class="'+classname+'_value_'+row+'"></span>';
183 get : function (row) {
184 if (!grid_row_object_cache[classname]) grid_row_object_cache[classname] = [];
185 var r = this.grid.model.getRow(row);
187 grid_row_object_cache[classname][row] = new fieldmapper[classname]().fromHash(r);
189 'dojo.query(".'+classname+'_value_' + row + '").'+
191 'openils.widget.TranslatorPopup,{field:"value",'+
192 'targetObject:"grid_row_object_cache.'+classname+'['+row+']"}'+
193 ');'+classname+'_grid.rowHeightChanged('+row+');',
196 var oldnode = dojo.byId('value_translation_' + classname + '_' + row);
197 if (oldnode) dijit.byNode(oldnode).destroyRecursive();
216 <body class="tundra" id='pagebody'>
218 <div dojoType="dijit.layout.TabContainer" id="grid_container" class="grid_container" style="margin: 5px;" orientation="vertical" layoutAlign="top">
220 <div dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.audience_map.title;">
221 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
223 <div dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top" onSubmit="create_marc_code">
224 <div>&conify.marc_code_maps.audience_map.new.label;</div>
225 <input type="hidden" name="classname" value="cam"/>
226 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
227 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
228 <label for="description">&conify.marc_code_maps.audience_map.description;</label><input dojoType="dijit.form.TextBox" name="description" title="&conify.marc_code_maps.audience_map.description;"/>
229 <button type="submit" dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;"></button>
230 <button style="margin-left:10px" layoutAlign="bottom" jsId="delete_cam_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('cam',cam_grid)"></button>
231 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
234 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
235 <div dojoType="dojox.grid.data.DojoData" jsId="cam_model" store="stores.cam" query="{ code : '*' }"></div>
236 <div dojoType="dojox.Grid" jsId="cam_grid">
237 <script type="dojo/connect" event="startup">
238 this.setStructure(window.layouts.cam);
239 this.setModel(window.cam_model);
249 <div id="cblvl_pane" dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.bib_level.title;">
250 <script type="dojo/connect" event="onShow">
251 if (!window.cblvl_once) setTimeout("cblvl_grid.render()",0);
252 window.cblvl_once = 1;
254 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
256 <div dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top" onSubmit="create_marc_code">
257 <div>&conify.marc_code_maps.bib_level.new.label;</div>
258 <input type="hidden" name="classname" value="cblvl"/>
259 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
260 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
261 <button type="submit" dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;"></button>
262 <button style="margin-left:20px" layoutAlign="bottom" jsId="delete_cblvl_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('cblvl',cblvl_grid)"></button>
263 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
266 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
267 <div dojoType="dojox.grid.data.DojoData" jsId="cblvl_model" store="stores.cblvl" query="{ code : '*' }"></div>
268 <div dojoType="dojox.Grid" jsId="cblvl_grid">
269 <script type="dojo/connect" event="startup">
270 this.setStructure(window.layouts.cblvl);
271 this.setModel(window.cblvl_model);
281 <div dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.item_form.title;">
282 <script type="dojo/connect" event="onShow">
283 if (!window.cifm_once) setTimeout("cifm_grid.render()",0);
284 window.cifm_once = 1;
286 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
288 <div jsId="new_form_form" dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top">
289 <div>&conify.marc_code_maps.item_form.new.label;</div>
290 <input type="hidden" name="classname" value="cifm"/>
291 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
292 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
293 <button dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;" onclick="create_marc_code(new_form_form)"></button>
295 <button style="margin-left:20px" layoutAlign="bottom" jsId="delete_cifm_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('cifm',cifm_grid)"></button>
296 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
299 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
300 <div dojoType="dojox.grid.data.DojoData" jsId="cifm_model" store="stores.cifm" query="{ code : '*' }"></div>
301 <div dojoType="dojox.Grid" jsId="cifm_grid">
302 <script type="dojo/connect" event="startup">
303 this.setStructure(window.layouts.cifm);
304 this.setModel(window.cifm_model);
314 <div dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.item_type.title;">
315 <script type="dojo/connect" event="onShow">
316 if (!window.citm_once) setTimeout("citm_grid.render()",0);
317 window.citm_once = 1;
320 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
322 <div dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top" onSubmit="create_marc_code">
323 <div>&conify.marc_code_maps.item_type.new.label;</div>
324 <input type="hidden" name="classname" value="citm"/>
325 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
326 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
327 <button type="submit" dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;"></button>
328 <button style="margin-left:20px" layoutAlign="bottom" jsId="delete_citm_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('citm',citm_grid)"></button>
329 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
332 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
333 <div dojoType="dojox.grid.data.DojoData" jsId="citm_model" store="stores.citm" query="{ code : '*' }"></div>
334 <div dojoType="dojox.Grid" jsId="citm_grid">
335 <script type="dojo/connect" event="startup">
336 this.setStructure(window.layouts.citm);
337 this.setModel(window.citm_model);
347 <div dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.language.title;">
348 <script type="dojo/connect" event="onShow">
349 if (!window.clm_once) setTimeout("clm_grid.render()",0);
353 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
355 <div dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top" onSubmit="create_marc_code">
356 <div>&conify.marc_code_maps.language.new.label;</div>
357 <input type="hidden" name="classname" value="clm"/>
358 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
359 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
360 <button type="submit" dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;"></button>
361 <button style="margin-left:20px" layoutAlign="bottom" jsId="delete_clm_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('clm',clm_grid)"></button>
362 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
365 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
366 <div dojoType="dojox.grid.data.DojoData" jsId="clm_model" store="stores.clm" query="{ code : '*' }"></div>
367 <div dojoType="dojox.Grid" jsId="clm_grid">
368 <script type="dojo/connect" event="startup">
369 this.setStructure(window.layouts.clm);
370 this.setModel(window.clm_model);
380 <div dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.literary_form.title;">
381 <script type="dojo/connect" event="onShow">
382 if (!window.clfm_once) setTimeout("clfm_grid.render()",0);
383 window.clfm_once = 1;
386 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
388 <div dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top" onSubmit="create_marc_code">
389 <div>&conify.marc_code_maps.literary_form.new.label;</div>
390 <input type="hidden" name="classname" value="clfm"/>
391 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
392 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
393 <button type="submit" dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;"></button>
394 <button style="margin-left:20px" layoutAlign="bottom" jsId="delete_clfm_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('clfm',clfm_grid)"></button>
395 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
398 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
399 <div dojoType="dojox.grid.data.DojoData" jsId="clfm_model" store="stores.clfm" query="{ code : '*' }"></div>
400 <div dojoType="dojox.Grid" jsId="clfm_grid">
401 <script type="dojo/connect" event="startup">
402 this.setStructure(window.layouts.clfm);
403 this.setModel(window.clfm_model);
413 <div dojoType="dijit.layout.ContentPane" class="grid_container" orientation="vertical" title="&conify.marc_code_maps.video.title;">
414 <script type="dojo/connect" event="onShow">
415 if (!window.cvrfm_once) setTimeout("cvrfm_grid.render()",0);
416 window.cvrfm_once = 1;
419 <div dojoType="dijit.layout.LayoutContainer" class="grid_container" orientation="vertical">
421 <div dojoType="dijit.form.Form" orientation="horizontal" style="margin: 5px;" layoutAlign="top" onSubmit="create_marc_code">
422 <div>&conify.marc_code_maps.video.new.label;</div>
423 <input type="hidden" name="classname" value="cvrfm"/>
424 <label for="code">&conify.marc_code_maps.new_code;</label><input dojoType="dijit.form.TextBox" name="code" title="&conify.marc_code_maps.new_code;"/>
425 <label for="value">&conify.marc_code_maps.new_value;</label><input dojoType="dijit.form.TextBox" name="value" title="&conify.marc_code_maps.new_value;"/>
426 <button type="submit" dojoType="dijit.form.Button" label="&conify.marc_code_maps.add;"></button>
427 <button style="margin-left:20px" layoutAlign="bottom" jsId="delete_cvrfm_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.delete_selected;" onclick="delete_grid_selection('cvrfm',cvrfm_grid)"></button>
428 <button style="margin-left:20px" layoutAlign="bottom" jsId="save_button" dojoType="dijit.form.Button" label="&conify.marc_code_maps.save_changes;" onClick="save_them_all()"></button>
431 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
432 <div dojoType="dojox.grid.data.DojoData" jsId="cvrfm_model" store="stores.cvrfm" query="{ code : '*' }"></div>
433 <div dojoType="dojox.Grid" jsId="cvrfm_grid">
434 <script type="dojo/connect" event="startup">
435 this.setStructure(window.layouts.cvrfm);
436 this.setModel(window.cvrfm_model);