1 dojo.require('dijit.layout.ContentPane');
2 dojo.require('dijit.form.Button');
3 dojo.require('openils.widget.AutoGrid');
4 dojo.require('openils.widget.AutoFieldWidget');
5 dojo.require('openils.PermaCrud');
7 var circModEditor = null;
8 var circModGroupTables = [];
11 cmGrid.loadAll({order_by:{ccmm:'circ_modifier'}});
12 cmGrid.onEditPane = buildEditPaneAdditions;
13 circModEditor = dojo.byId('circ-mod-editor').parentNode.removeChild(dojo.byId('circ-mod-editor'));
16 function byName(name, ctxt) {
17 return dojo.query('[name=' + name + ']', ctxt)[0];
20 function buildEditPaneAdditions(editPane) {
21 var node = circModEditor.cloneNode(true);
22 var tableTmpl = node.removeChild(byName('circ-mod-group-table', node));
23 circModGroupTables = [];
25 byName('add-circ-mod-group', node).onclick = function() {
26 addCircModGroup(node, tableTmpl)
30 if(editPane.mode == 'update') {
34 editPane.domNode.appendChild(node);
38 function addCircModGroup(node, tableTmpl, group) {
40 var table = tableTmpl.cloneNode(true);
41 var circModRowTmpl = byName('circ-mod-entry-tbody', table).removeChild(byName('circ-mod-entry-row', table));
42 circModGroupTables.push(table);
44 function addMod(code, name) {
45 var row = circModRowTmpl.cloneNode(true);
46 byName('circ-mod', row).innerHTML = name;
47 byName('circ-mod', row).setAttribute('code', code);
48 byName('circ-mod-entry-tbody', table).appendChild(row);
49 byName('remove-circ-mod', row).onclick = function() {
50 byName('circ-mod-entry-tbody', table).removeChild(row);
54 byName('circ-mod-count', table).value = (group) ? group.items_out() : 0;
56 var selector = new openils.widget.AutoFieldWidget({
59 parentNode : byName('circ-mod-selector', table)
63 byName('add-circ-mod', table).onclick = function() {
64 addMod(selector.widget.attr('value'), selector.widget.attr('displayedValue'));
67 node.insertBefore(table, byName('add-circ-mod-group-span', node));
68 node.insertBefore(dojo.create('hr'), byName('add-circ-mod-group-span', node));
71 function applyCircModChanges() {
73 for(var idx in circModGroupTables) {
74 var table = circModGroupTables[idx];
76 var count = byName('circ-mod-count', table).value;
78 dojo.forEach(dojo.query('[name=circ-mod]', table), function(td) {
79 mods.push(td.getAttribute('code'));
82 alert(count + ' : ' + mods);
86 openils.Util.addOnLoad(load);