]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/error.js
eliminate some non-sdumps
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / error.js
1 sdump('D_TRACE',"Loading error.js\n");
2
3 var consoleService = Components.classes['@mozilla.org/consoleservice;1']
4         .getService(Components.interfaces.nsIConsoleService);
5
6 var consoleDump = true;
7
8 var sdump_levels = {
9         'D_TRACE' :  true,
10         'D_AUTH' : false,
11         'D_UTIL' : false,
12         'D_EXPLODE' : false,
13         'D_PRINT' : false,
14         'D_SES' : false,
15         'D_SPAWN' : true,
16         'D_TAB' : false,
17         'D_CLAM' : false,
18         'D_OPAC' : true,
19         'D_STRING' : false,
20         'D_WIN' : false,
21         'D_PATRON_SEARCH' : true,
22         'D_PATRON_SEARCH_FORM' : true
23 };
24
25 function sdump(level,msg) {
26         try {
27                 if (sdump_levels[level]) {
28                         debug(level + ': ' + msg);
29                         if (consoleDump)
30                                 consoleService.logStringMessage(level + ': ' + msg);
31                 }
32         } catch(E) {}
33 }
34
35 function arg_dump(args,dump_these) {
36         var s = '*>*>*> Called function ';
37         try {
38                 if (!dump_these)
39                         dump_these = {};
40                 s += args.callee.toString().match(/\w+/g)[1] + ' : ';
41                 for (var i = 0; i < args.length; i++)
42                         s += typeof(args[i]) + ' ';
43                 s += '\n';
44                 for (var i = 0; i < args.length; i++)
45                         if (dump_these[i]) {
46
47                                 var arg = args[i];
48                                 //dump('dump_these[i] = ' + dump_these[i] + '  arg = ' + arg + '\n');
49
50                                 if (typeof(dump_these[i])=='string') {
51
52                                         if (dump_these[i].slice(0,1) == '.') {
53                                                 var cmd = 'arg' + dump_these[i];
54                                                 var result;
55                                                 try {
56                                                         result = eval( cmd );
57                                                 } catch(E) {
58                                                         result = cmd + ' ==> ' + E;
59                                                 }
60                                                 s += '\targ #' + i + ': ' + cmd + ' = ' + result;
61                                         } else {
62                                                 var result;
63                                                 try {
64                                                         result = eval( dump_these[i] );
65                                                 } catch(E) {
66                                                         result = dump_these[i] + ' ==> ' + E;
67                                                 }
68                                                 s += '\targ #' + i + ': ' + result;
69                                         }
70
71                                 } else {
72                                         s += '\targ #' + i + ' = ';
73                                         try {
74                                                 s += js2JSON( arg );
75                                         } catch(E) {
76                                                 s += arg;
77                                         }
78                                 }
79
80                                 s += '\n';
81
82                         }
83                 return s;
84         } catch(E) {
85                 return s + '\nDEBUG ME: ' + js2JSON(E) + '\n';
86         }
87 }
88
89 function handle_error(E) {
90         var s = '';
91         if (instanceOf(E,ex)) {
92                 s += E.err_msg();
93                 //s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
94                 //s += 'This error was anticipated.\n\n';
95                 //s += js2JSON(E).substr(0,200) + '...\n\n';
96                 if (snd_bad) snd_bad();
97         } else {
98                 s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
99                 s += 'This is a bug that we will fix later.\n\n';
100                 s += js2JSON(E).substr(0,200) + '\n\n';
101                 if (snd_really_bad) snd_really_bad();
102         }
103         s_alert(s);
104 }
105