]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/error.js
something wrong with tab handling. more flexible dump_args
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / error.js
1 sdump('D_TRACE',"Loading error.js\n");
2
3 var sdump_levels = {
4         'D_TRACE' :  true,
5         'D_AUTH' : false,
6         'D_UTIL' : false,
7         'D_EXPLODE' : false,
8         'D_PRINT' : false,
9         'D_SES' : true,
10         'D_SPAWN' : true,
11         'D_TAB' : true,
12         'D_OPAC' : true,
13         'D_STRING' : true
14 };
15
16 function sdump(level,msg) {
17         try {
18                 if (sdump_levels[level])
19                         debug(msg);
20         } catch(E) {}
21 }
22
23 function arg_dump(args,dump_these) {
24         var s = '*>*>*> Called function ';
25         try {
26                 if (!dump_these)
27                         dump_these = {};
28                 s += args.callee.toString().match(/\w+/g)[1] + ' : ';
29                 for (var i = 0; i < args.length; i++)
30                         s += typeof(args[i]) + ' ';
31                 s += '\n';
32                 for (var i = 0; i < args.length; i++)
33                         if (dump_these[i]) {
34
35                                 if (typeof(dump_these[i])=='string') {
36
37                                         if (dump_these[i].slice(0,1) == '.') {
38                                                 var cmd = 'args[' + i + ']' + dump_these[i];
39                                                 var result = eval( cmd );
40                                                 s += '\targ #' + i + ': ' + cmd + ' = ' + result;
41                                         } else {
42                                                 var result = eval( dump_these[i] );
43                                                 s += '\targ #' + i + ': ' + dump_these[i] + ' = ' + result;
44                                         }
45
46                                 } else {
47                                         s += '\targ #' + i + ' = ';
48                                         try {
49                                                 s += js2JSON( args[i] );
50                                         } catch(E) {
51                                                 s += args[i];
52                                         }
53                                 }
54
55                                 s += '\n';
56
57                         }
58                 return s;
59         } catch(E) {
60                 return s + '\nDEBUG ME: ' + js2JSON(E) + '\n';
61         }
62 }
63
64 function handle_error(E) {
65         var s = '';
66         if (instanceOf(E,ex)) {
67                 s += E.err_msg();
68                 //s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
69                 //s += 'This error was anticipated.\n\n';
70                 //s += js2JSON(E).substr(0,200) + '...\n\n';
71                 if (snd_bad) snd_bad();
72         } else {
73                 s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
74                 s += 'This is a bug that we will fix later.\n\n';
75                 s += js2JSON(E).substr(0,200) + '\n\n';
76                 if (snd_really_bad) snd_really_bad();
77         }
78         s_alert(s);
79 }
80