6e24496ddcffa08387021c350c0c3a5de0c4de88
[working/Evergreen.git] / Open-ILS / web / js / ui / default / conify / global / config / circ_matrix_matchpoint.js
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');
6
7 var circModEditor = null;
8 var circModGroupTables = [];
9
10 function load(){
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'));
14 }
15
16 function byName(name, ctxt) {
17     return dojo.query('[name=' + name + ']', ctxt)[0];
18 }
19
20 function buildEditPaneAdditions(editPane) {
21     var node = circModEditor.cloneNode(true);
22     var tableTmpl = node.removeChild(byName('circ-mod-group-table', node));
23     circModGroupTables = [];
24
25     byName('add-circ-mod-group', node).onclick = function() {
26         addCircModGroup(node, tableTmpl)
27     }
28
29     var group = null;
30     if(editPane.mode == 'update') {
31         //group = 
32     } 
33
34     editPane.domNode.appendChild(node);
35 }
36
37
38 function addCircModGroup(node, tableTmpl, group) {
39
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);
43
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);
51         }
52     }
53
54     byName('circ-mod-count', table).value = (group) ? group.items_out() : 0;
55
56     var selector = new openils.widget.AutoFieldWidget({
57         fmClass : 'ccmcmtm',
58         fmField : 'circ_mod',
59         parentNode : byName('circ-mod-selector', table)
60     });
61     selector.build();
62
63     byName('add-circ-mod', table).onclick = function() {
64         addMod(selector.widget.attr('value'), selector.widget.attr('displayedValue'));
65     }
66
67     node.insertBefore(table, byName('add-circ-mod-group-span', node));
68     node.insertBefore(dojo.create('hr'), byName('add-circ-mod-group-span', node));
69 }
70
71 function applyCircModChanges() {
72
73     for(var idx in circModGroupTables) {
74         var table = circModGroupTables[idx];
75
76         var count = byName('circ-mod-count', table).value;
77         var mods = [];
78         dojo.forEach(dojo.query('[name=circ-mod]', table), function(td) { 
79             mods.push(td.getAttribute('code'));
80         });
81
82         alert(count + ' : ' + mods);
83     }
84 }
85
86 openils.Util.addOnLoad(load);
87