beast rev 2066
[beast-modified.git] / vendor / plugins / exception_logger / assets / exception_logger.js
blob8278cf69891f56214bdfb4015121e1b791e68c2f
1 ExceptionLogger = {
2   filters: ['exception_names', 'controller_actions', 'date_ranges'],
3   setPage: function(num) {
4     $('page').value = num;
5     $('query-form').onsubmit();
6   },
7   
8   setFilter: function(context, name) {
9     var filterName = context + '_filter'
10     $(filterName).value = ($F(filterName) == name) ? '' : name;
11     this.deselect(context, filterName);
12     $('page').value = '1';
13     $('query-form').onsubmit();
14   },
16   deselect: function(context, filterName) {
17     $$('#' + context + ' a').each(function(a) {
18       var value = $(filterName) ? $F(filterName) : null;
19       a.className = (value && (a.getAttribute('title') == value || a.innerHTML == value)) ? 'selected' : '';
20     });
21   },
22   
23   deleteAll: function() {
24     return Form.serialize('query-form') + '&' + $$('tr.exception').collect(function(tr) { return tr.getAttribute('id').gsub(/^\w+-/, ''); }).toQueryString('ids');
25   }
28 Event.observe(window, 'load', function() {
29   ExceptionLogger.filters.each(function(context) {
30     $(context + '_filter').value = '';
31   });
32 });
34 Object.extend(Array.prototype, {
35   toQueryString: function(name) {
36     return this.collect(function(item) { return name + "[]=" + encodeURIComponent(item) }).join('&');
37   }
38 });
40 Ajax.Responders.register({
41   onCreate: function() {
42     if($('activity') && Ajax.activeRequestCount > 0) $('activity').visualEffect('appear', {duration:0.25});
43   },
45   onComplete: function() {
46     if($('activity') && Ajax.activeRequestCount == 0) $('activity').visualEffect('fade', {duration:0.25});
47   }
48 });