forked from defunkt/exception_logger
-
Notifications
You must be signed in to change notification settings - Fork 3
/
exception_logger.js
48 lines (41 loc) · 1.5 KB
/
exception_logger.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
ExceptionLogger = {
filters: ['exception_names', 'controller_actions', 'date_ranges'],
setPage: function(num) {
$('page').value = num;
$('query-form').onsubmit();
},
setFilter: function(context, name) {
var filterName = context + '_filter'
$(filterName).value = ($F(filterName) == name) ? '' : name;
this.deselect(context, filterName);
$('page').value = '1';
$('query-form').onsubmit();
},
deselect: function(context, filterName) {
$$('#' + context + ' a').each(function(a) {
var value = $(filterName) ? $F(filterName) : null;
a.className = (value && (a.getAttribute('title') == value || a.innerHTML == value)) ? 'selected' : '';
});
},
deleteAll: function() {
return Form.serialize('query-form') + '&' + $$('tr.exception').collect(function(tr) { return tr.getAttribute('id').gsub(/^\w+-/, ''); }).toQueryString('ids');
}
}
Event.observe(window, 'load', function() {
ExceptionLogger.filters.each(function(context) {
$(context + '_filter').value = '';
});
});
Object.extend(Array.prototype, {
toQueryString: function(name) {
return this.collect(function(item) { return name + "[]=" + encodeURIComponent(item) }).join('&');
}
});
Ajax.Responders.register({
onCreate: function() {
if($('activity') && Ajax.activeRequestCount > 0) $('activity').visualEffect('appear', {duration:0.25});
},
onComplete: function() {
if($('activity') && Ajax.activeRequestCount == 0) $('activity').visualEffect('fade', {duration:0.25});
}
});