]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/error.js
patron search form and convenience variables for js shell
[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         'D_WIN' : true,
15         'D_PATRON_SEARCH_FORM' : true
16 };
17
18 function sdump(level,msg) {
19         try {
20                 if (sdump_levels[level])
21                         debug(msg);
22         } catch(E) {}
23 }
24
25 function arg_dump(args,dump_these) {
26         var s = '*>*>*> Called function ';
27         try {
28                 if (!dump_these)
29                         dump_these = {};
30                 s += args.callee.toString().match(/\w+/g)[1] + ' : ';
31                 for (var i = 0; i < args.length; i++)
32                         s += typeof(args[i]) + ' ';
33                 s += '\n';
34                 for (var i = 0; i < args.length; i++)
35                         if (dump_these[i]) {
36
37                                 var arg = args[i];
38                                 dump('dump_these[i] = ' + dump_these[i] + '  arg = ' + arg + '\n');
39
40                                 if (typeof(dump_these[i])=='string') {
41
42                                         if (dump_these[i].slice(0,1) == '.') {
43                                                 var cmd = 'arg' + dump_these[i];
44                                                 var result;
45                                                 try {
46                                                         result = eval( cmd );
47                                                 } catch(E) {
48                                                         result = cmd + ' ==> ' + E;
49                                                 }
50                                                 s += '\targ #' + i + ': ' + cmd + ' = ' + result;
51                                         } else {
52                                                 var result;
53                                                 try {
54                                                         result = eval( dump_these[i] );
55                                                 } catch(E) {
56                                                         result = dump_these[i] + ' ==> ' + E;
57                                                 }
58                                                 s += '\targ #' + i + ': ' + result;
59                                         }
60
61                                 } else {
62                                         s += '\targ #' + i + ' = ';
63                                         try {
64                                                 s += js2JSON( arg );
65                                         } catch(E) {
66                                                 s += arg;
67                                         }
68                                 }
69
70                                 s += '\n';
71
72                         }
73                 return s;
74         } catch(E) {
75                 return s + '\nDEBUG ME: ' + js2JSON(E) + '\n';
76         }
77 }
78
79 function handle_error(E) {
80         var s = '';
81         if (instanceOf(E,ex)) {
82                 s += E.err_msg();
83                 //s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
84                 //s += 'This error was anticipated.\n\n';
85                 //s += js2JSON(E).substr(0,200) + '...\n\n';
86                 if (snd_bad) snd_bad();
87         } else {
88                 s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
89                 s += 'This is a bug that we will fix later.\n\n';
90                 s += js2JSON(E).substr(0,200) + '\n\n';
91                 if (snd_really_bad) snd_really_bad();
92         }
93         s_alert(s);
94 }
95