]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/explode.js
first cut and bill details
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / explode.js
1 sdump('D_TRACE','Loading explode.js\n');
2 var EXPLODE = {};
3
4 function explode_aou(id) {
5         return find_ou( mw.G.org_tree, id );
6 }
7 EXPLODE.aou = explode_aou;
8 EXPLODE.au_homelib = explode_aou;
9
10 function explode_ap(id) {
11         //return find_id_object_in_list( mw.G.ap_list, id );
12         return mw.G.ap_hash[ id ];
13 }
14 EXPLODE.ap = explode_ap;
15 EXPLODE.au_profile = explode_ap;
16
17 function magic_field_edit( ev, otype, o_id, field, explode ) {
18         sdump('D_TRACE','\nIn magic_field_edit\n')
19         var target = ev.target;
20         sdump('D_EXPLODE','\ttarget = ' + target + '\n');
21         sdump('D_EXPLODE','\totype = ' + otype + '\n');
22         sdump('D_EXPLODE','\tfield = ' + field + '\n');
23         var value = target.value;
24         sdump('D_EXPLODE','\tvalue = ' + value + '\n');
25         sdump('D_EXPLODE','\texplode = ' + explode + '\n');
26         try {
27                 if (explode) {
28                         var command = ( 'value = EXPLODE.' + otype + '_' + field + '(' + value + ');' );
29                         sdump('D_EXPLODE','\tcommand = ' + command + '\n');
30                         eval( command );
31                 }
32         } catch(E) {
33                 sdump('D_EXPLODE', '\tNo EXPLODE.' + otype + '_' + field + '() defined\n' );
34         }
35         sdump('D_EXPLODE','\tvalue = ' + value + '\n');
36         sdump('D_EXPLODE','\t' + otype + '_id = ' + o_id + '\n');
37         // ######## method 1, node in element
38         var row = document.getElementById( otype + o_id );
39         if (row) {
40                 var node = JSON2js(row.getAttribute('node'));
41                 sdump('D_EXPLODE','\telem: original node = ' + js2JSON(node) + '\n');
42                 var command = ( 'node.' + field + '(' + js2JSON(value) + ');');
43                 eval(command);
44                 var command2 = ( 'node.ischanged("1");');
45                 eval(command2);
46                 sdump('D_EXPLODE','\telem:    after edit = ' + js2JSON(node) + '\n');
47                 row.setAttribute('node',js2JSON(node));
48         } else {
49                 sdump('D_EXPLODE','\tCould not find containing element with id = ' + otype + o_id + '\n');
50         }
51         // ######## method 2, node in hash
52         try {
53                 var myhash = eval('hash_'+otype);
54                 if (typeof(myhash) == 'object') {
55                         if (! myhash[o_id] ) { myhash[o_id] = eval('new ' + otype + '();'); }
56                         sdump('D_EXPLODE','\thash: original node = ' + js2JSON(myhash[o_id]) + '\n');
57                         var command = ('myhash[o_id].' + field + '(' + js2JSON(value) + ');');
58                         eval(command);
59                         var command2 = ( 'myhash[o_id].ischanged("1");');
60                         eval(command2);
61                         sdump('D_EXPLODE','\thash:    after edit = ' + js2JSON(myhash[o_id]) + '\n');
62                 }
63         } catch(E) {
64                 sdump('D_EXPLODE','magic_field_edit: ' + js2JSON(E) + '\n');
65         }
66 }
67