-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathadmin.js
124 lines (105 loc) · 4.3 KB
/
admin.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
(function($) {
$(function() {
// Refresh
LHR.refresh = function() {
$('.lhr-refresh').text('Refreshing...').attr('disabled', 'disabled');
$.post(ajaxurl, {
'action': 'lhr_query',
'_wpnonce': LHR.nonce,
'data': LHR.query_args
}, function(data) {
LHR.response = data;
LHR.query_args.page = 1;
var html = '';
$.each(data.rows, function(idx, row) {
var runtime = parseFloat(row.runtime);
var css_class = (runtime > 1) ? ' warn' : '';
css_class = (runtime > 2) ? ' error' : css_class;
html += `
<tr>
<td class="field-url">
<div><a href="javascript:;" data-id="` + idx + `">` + row.url + `</a></div>
</td>
<td class="field-referrer">` + row.referrer + `</div></td>
<td class="field-status-code">` + row.status_code + `</td>
<td class="field-runtime` + css_class + `">` + row.runtime + `</td>
<td class="field-date" title="` + row.date_raw + `">` + row.date_added + `</td>
</tr>
`;
});
$('.lhr-listing tbody').html(html);
$('.lhr-pager').html(data.pager);
$('.lhr-refresh').text('Refresh').removeAttr('disabled');
}, 'json');
}
// Clear
LHR.clear = function() {
$('.lhr-clear').text('Clearing...').attr('disabled', 'disabled');
$.post(ajaxurl, {
'action': 'lhr_clear',
'_wpnonce': LHR.nonce
}, function(data) {
$('.lhr-listing tbody').html('');
$('.lhr-clear').text('Clear log').removeAttr('disabled');
}, 'json');
}
LHR.show_details = function(action) {
var id = LHR.active_id;
if ('next' == action && id < LHR.response.rows.length - 1) {
id = id + 1;
}
else if ('prev' == action && id > 0) {
id = id - 1;
}
LHR.active_id = id;
var data = LHR.response.rows[id];
$('.http-url').text(data.url);
$('.http-request-id').text(id);
$('.http-request-args').text(JSON.stringify(JSON.parse(data.request_args), null, 2));
$('.http-response').text(JSON.stringify(JSON.parse(data.response), null, 2));
$('.media-modal').addClass('open');
$('.media-modal-backdrop').addClass('open');
}
// Page change
$(document).on('click', '.lhr-page:not(.active)', function() {
LHR.query_args.page = parseInt($(this).attr('data-page'));
LHR.refresh();
});
// Open detail modal
$(document).on('click', '.field-url a', function() {
LHR.active_id = parseInt($(this).attr('data-id'));
LHR.show_details('curr');
});
// Close modal window
$(document).on('click', '.media-modal-close', function() {
var $this = $(this);
if ($this.hasClass('prev') || $this.hasClass('next')) {
var action = $this.hasClass('prev') ? 'prev' : 'next';
LHR.show_details(action);
return;
}
$('.media-modal').removeClass('open');
$('.media-modal-backdrop').removeClass('open');
$(document).off('keydown.lhr-modal-close');
});
$(document).keydown(function(e) {
if (! $('.media-modal').hasClass('open')) {
return;
}
if (-1 < $.inArray(e.keyCode, [27, 38, 40])) {
e.preventDefault();
if (27 == e.keyCode) { // esc
$('.media-modal-close').click();
}
else if (38 == e.keyCode) { // up
$('.media-modal-close.prev').click();
}
else if (40 == e.keyCode) { // down
$('.media-modal-close.next').click();
}
}
});
// Ajax
LHR.refresh();
});
})(jQuery);