]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/cat/marc_fixed.js
changing legacy code.. ack :( put buckets and volume transfer support in copy browser
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / cat / marc_fixed.js
1 function pad_fixed(value,field) {
2         var padding = '';
3         if (field == '008') {
4                 for (var i = value.length; i<40; i++) {
5                         padding = padding + ' ';
6                 }
7         } else if (field == 'LDR') {
8                 for (var i = value.length; i<24; i++) {
9                         padding = padding + ' ';
10                 }
11         }
12         return padding;
13 }
14
15
16 function handle_fixed_change(ev) {
17         mw.sdump('D_CAT','Entering handle_fixed_change\n');
18         if (ev.target.tagName != 'textbox') { mw.sdump('D_CAT','early exit\n'); return; }
19         var t = ev.target;
20         var field = t.getAttribute('field');
21         var spos = t.getAttribute('spos');
22         var epos = t.getAttribute('epos');
23         var size = t.getAttribute('size');
24         if ( (epos - spos + 1) != size ) { 
25                 mw.sdump('D_CAT','Invalid fixed field DTD: field='+field+' spos='+spos+
26                         ' epos='+epos+' size='+size+'\n');
27                 alert('Invalid fixed field DTD: field='+field+' spos='+spos+
28                         ' epos='+epos+' size='+size+'\n');
29         }
30         if (t.value.length > size) {
31                 t.value = t.value.substr(0,size);
32         } else if (t.value.length < size) {
33                 var padding = '';
34                 for (var i = 0; i<(size-t.value.length); i++) {
35                         padding = padding + ' ';
36                 }
37                 t.value = t.value + padding;
38         }
39         var fixed = find_textbox('ctrl_rows', field);
40         //mw.sdump('D_CAT','length of fixed: ' + fixed.value.length + '\n');
41         fixed.value = fixed.value + pad_fixed(fixed.value,field);
42         mw.sdump('D_CAT','length of fixed: ' + fixed.value.length + '\n');
43
44         //mw.sdump('D_CAT','field='+field+' spos='+spos+' epos='+epos+' size='+size+' t="'+t.value+'"\n');
45         mw.sdump('D_CAT','replacing "'+fixed.value+'"\n');
46         fixed.value = fixed.value.substr(0,spos) + t.value + fixed.value.substr(1+Number(epos));
47         mw.sdump('D_CAT','     with "'+fixed.value+'"\n');
48 }
49
50 function find_textbox(where, field) {
51         var rows = document.getElementById(where).childNodes;
52         var ideal_sibling;
53         for (var r in rows) {
54                 if (typeof(rows[r])=='object') {
55                         //mw.sdump('D_CAT',r + ':' + rows[r] + '\n');
56                         var t = rows[r].childNodes[0].firstChild;
57                         if (t.value == field) {
58                                 return rows[r].childNodes[1].firstChild;
59                         } else if (t.value < field) {
60                                 ideal_sibling = rows[r];
61                         }
62                 }
63         }
64         var new_r = build_ctrl_row('ctrl_' + new_row_id--);
65         new_r.setAttribute('notempty','true');                  
66         new_r.setAttribute('newnode','true');
67         if (ideal_sibling.nextSibling) {
68                 rows.insertBefore(new_r,ideal_sibling.nextSibling);
69         } else {
70                 rows.appendChild(new_r);
71         }
72         new_r.childNodes[0].firstChild.value = field;
73         new_r.childNodes[1].firstChild.value = padding;
74         return new_r.childNodes[1].firstChild;
75 }
76
77 function fixed_fields_update_all(grid) {
78         var g = document.getElementById(grid);
79         var nl = g.getElementsByTagName('textbox');
80         for (var i in nl) {
81                 if (typeof(nl[i])=='object') {
82                         var t = nl[i];
83                         var field = t.getAttribute('field');
84                         var spos = t.getAttribute('spos');
85                         var epos = t.getAttribute('epos');
86                         var size = t.getAttribute('size');
87                         var data = find_textbox('ctrl_rows',field);
88                         data.value = data.value + pad_fixed(data.value,field);
89                         t.value = data.value.substr(spos,size);
90                 }
91         }
92 }
93
94
95 function fixed_fields_hide_all(grid) {
96         var g = document.getElementById(grid);
97         var nl = g.getElementsByTagName('label');
98         for (var i in nl) {
99                 if (typeof(nl[i])=='object') {
100                         nl[i].setAttribute('hidden','true');
101                 }
102         }
103         nl = g.getElementsByTagName('textbox');
104         for (var i in nl) {
105                 if (typeof(nl[i])=='object') {
106                         nl[i].setAttribute('hidden','true');
107                 }
108         }
109 }
110
111 function fixed_fields_show_all(grid) {
112         var g = document.getElementById(grid);
113         var nl = g.getElementsByTagName('label');
114         for (var i in nl) {
115                 if (typeof(nl[i])=='object') {
116                         nl[i].setAttribute('hidden','false');
117                 }
118         }
119         nl = g.getElementsByTagName('textbox');
120         for (var i in nl) {
121                 if (typeof(nl[i])=='object') {
122                         nl[i].setAttribute('hidden','false');
123                 }
124         }
125 }
126
127 function fixed_fields_show_only(grid,attr) {
128         fixed_fields_hide_all(grid);
129         fixed_fields_update_all(grid);
130         var g = document.getElementById(grid);
131         var nl = g.getElementsByTagName('label');
132         for (var i in nl) {
133                 if (typeof(nl[i])=='object') {
134                         if (nl[i].getAttribute(attr) == 'true') {
135                                 nl[i].setAttribute('hidden','false');
136                         }
137                 }
138         }
139         nl = g.getElementsByTagName('textbox');
140         for (var i in nl) {
141                 if (typeof(nl[i])=='object') {
142                         if (nl[i].getAttribute(attr) == 'true') {
143                                 nl[i].setAttribute('hidden','false');
144                         }
145                 }
146         }
147 }
148
149