PluginProbe
Banhammer – Monitor Site Traffic, Block Bad Users and Bots / 2.2
Banhammer – Monitor Site Traffic, Block Bad Users and Bots v2.2
3.5.3 trunk 1.1 1.2 1.3 1.4 1.5 1.5.1 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.8.1 2.8.2 2.9 3.0 All 43 releases
banhammer / js / armory.js

armory.js in Banhammer – Monitor Site Traffic, Block Bad Users and Bots 2.2, at js/armory.js

488 lines 15.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*
2 Banhammer Armory.js v1.1
3 Jeff Starr @ Monzilla Media
4 https://monzillamedia.com/
5 https://plugin-planet.com/
6 */
7
8 (function($) {
9
10 $(document).ready(function() {
11
12 banhammer_armory();
13
14 document.ondblclick = function() {
15 if (window.getSelection) window.getSelection().removeAllRanges();
16 else if (document.selection) document.selection.empty();
17 }
18
19 $('.banhammer-tools').hide();
20 $(document).on('click', '.banhammer-tools-link', function(e) {
21 e.preventDefault();
22 $('.banhammer-tools').slideToggle(300);
23 $(this).blur();
24 });
25
26 $(document).on('click', '.banhammer-fx-link', function(e) {
27 e.preventDefault();
28 if (banhammer.vars.fx === 0) {
29 banhammer.vars.fx = 1;
30 $(this).text($(this).data('fx-on'));
31 } else {
32 banhammer.vars.fx = 0;
33 $(this).text($(this).data('fx-off'));
34 }
35 banhammer.vars.type = 'items';
36 banhammer_armory();
37 $(this).blur();
38 });
39
40 $(document).on('mouseenter', '.banhammer-row', function(e) {
41 $(this).find('.banhammer-select-target').addClass('banhammer-visible');
42 });
43 $(document).on('mouseleave', '.banhammer-row', function(e) {
44 $(this).find('.banhammer-select-target').removeClass('banhammer-visible');
45 });
46
47 $(document).on('click', '.banhammer-toggle-link', function(e) {
48 e.preventDefault();
49 if (banhammer.vars.toggle == 2) {
50 $(this).text($(this).data('view-adv'));
51 $('.banhammer-data').slideUp();
52 banhammer.vars.toggle = 1;
53 $('.banhammer-request a').each(function() {
54 var request = $(this).data('request');
55 var req = request.substring(0, 50) +'...';
56 if (request.length > 50) $(this).text(req).fadeIn(300);
57 });
58 } else {
59 $(this).text($(this).data('view-bsc'));
60 $('.banhammer-data').slideDown();
61 banhammer.vars.toggle = 2;
62 $('.banhammer-request a').each(function() {
63 var request = $(this).data('request');
64 $(this).text(request).fadeIn(300);
65 });
66 }
67 banhammer.vars.type = 'items';
68 banhammer_armory();
69 $(this).blur();
70 });
71
72 $(document).on('dblclick', '.banhammer-row', function(e) {
73 e.preventDefault();
74 var data = $(this).find('.banhammer-data');
75 var current = $(this).find('.banhammer-request a');
76 var request = current.data('request');
77 var req = request.substring(0, 50) +'...';
78 if (data.is(':visible')) {
79 if (request.length > 50) current.text(req).fadeIn(300);
80 } else {
81 current.text(request).fadeIn(300);
82 }
83 data.slideToggle(300);
84 });
85
86 $(document).on('click', '.banhammer-hostlookup-link', function(e) {
87 e.preventDefault();
88 var id = $(this).data('id');
89 var ip = $(this).data('ip');
90 $('.banhammer-hostlookup-id-'+ id).html(banhammer.vars.dots);
91 banhammer_aux(id, ip);
92 $(this).blur();
93 });
94
95 $(document).on('click', '.banhammer-addvisit-link, .banhammer-reload-link', function(e) {
96 e.preventDefault();
97 banhammer_clear();
98 banhammer.vars.type = 'init';
99 if ($(this).hasClass('banhammer-addvisit-link')) banhammer.vars.type = 'add';
100 banhammer_armory();
101 $(this).blur();
102 });
103
104 $(document).on('click', '.banhammer-reload-current', function(e) {
105 e.preventDefault();
106 banhammer.vars.type = 'init';
107 banhammer_armory();
108 $(this).blur();
109 });
110
111 $(document).on('click', '.banhammer-delete-link', function(e) {
112 e.preventDefault();
113 $(this).blur();
114 var button_names = {};
115 $('.banhammer-dialog').dialog('destroy');
116 button_names[banhammer_delete_items_true] = function() {
117 banhammer_clear();
118 $(this).dialog('close');
119 banhammer.vars.type = 'delete';
120 var del = $('.banhammer-fx-delete')[0];
121 var fx = banhammer.vars.fx;
122 if (fx === 1) del.play();
123 banhammer_armory();
124 }
125 button_names[banhammer_delete_items_false] = function() {
126 $(this).dialog('close');
127 }
128 var dialog = '<div class="banhammer-dialog">'+ banhammer_delete_items_message +'</div>';
129 $(dialog).dialog({
130 title: banhammer_delete_items_title,
131 buttons: button_names,
132 modal: true,
133 width: 350
134 });
135 });
136
137 $(document).on('change', '.banhammer-select-all', function() {
138 $('.banhammer-id').prop('checked', $(this).prop('checked'));
139 });
140 $(document).on('change', '.banhammer-id', function() {
141 if ($('.banhammer-id:checkbox:not(:checked)').length == 0) {
142 var checked = true;
143 } else {
144 var checked = false;
145 }
146 $('.banhammer-select-all').prop('checked', checked);
147 });
148 $('.banhammer-action-bulk').on('click', function(e) {
149 e.preventDefault();
150 var bulk = $('.banhammer-select-bulk').val();
151 var items = [];
152 $('.banhammer-id:checked').each(function() {
153 if (bulk == 'delete') banhammer.vars.count = banhammer.vars.count - 1;
154 items.push($(this).val());
155 });
156 if (banhammer.vars.offset == banhammer.vars.count) {
157 banhammer.vars.offset = Math.abs(banhammer.vars.offset - banhammer.vars.limit);
158 }
159 var jump = Math.ceil(banhammer.vars.offset / banhammer.vars.limit) + 1;
160
161 var del = $('.banhammer-fx-delete')[0];
162 if (banhammer.vars.fx === 1 && bulk == 'delete') del.play();
163
164 banhammer.vars.jump = jump;
165 banhammer.vars.bulk = bulk;
166 banhammer.vars.items = items;
167 banhammer.vars.type = 'bulk';
168 banhammer_armory();
169 $(this).blur();
170 });
171
172 $(document).on('click', '.banhammer-action-ban, .banhammer-action-warn', function(e) {
173 e.preventDefault();
174 $('.jBox-Tooltip').hide();
175 var fx = banhammer.vars.fx;
176 var target = $(this).siblings('.banhammer-select-target').val();
177 var action = $(this).data('action');
178 var bulk = action +'-'+ target;
179 var id = $(this).data('id');
180 var items = [];
181 items.push(id);
182 banhammer.vars.bulk = bulk;
183 banhammer.vars.items = items;
184 banhammer.vars.type = 'bulk';
185 var ban = $('.banhammer-fx-ban')[0];
186 var warn = $('.banhammer-fx-warn')[0];
187 if (fx === 1) {
188 if (action == 'ban') ban.play();
189 else if (action == 'warn') warn.play();
190 }
191 banhammer_armory();
192 $(this).blur();
193 });
194
195 $('.banhammer-page-next').on('click', function(e) {
196 e.preventDefault();
197 if (banhammer.vars.offset < banhammer.vars.count) {
198 banhammer.vars.offset = banhammer.vars.offset + banhammer.vars.limit;
199 banhammer.vars.jump = banhammer.vars.jump + 1;
200 banhammer.vars.type = 'next';
201 banhammer_armory();
202 }
203 $(this).blur();
204 });
205
206 $('.banhammer-page-prev').on('click', function(e) {
207 e.preventDefault();
208 if (banhammer.vars.offset > 0) {
209 banhammer.vars.offset = banhammer.vars.offset - banhammer.vars.limit;
210 banhammer.vars.jump = banhammer.vars.jump - 1;
211 banhammer.vars.type = 'prev';
212 banhammer_armory();
213 }
214 $(this).blur();
215 });
216
217 $('.banhammer-page-jump').on('keypress', function(e) {
218 var code = e.keyCode || e.which;
219 if (code == 13) {
220 e.preventDefault();
221 var jump = parseInt($(this).val());
222 if (jump <= 0) jump = 1;
223 if (jump > banhammer.vars.pages) jump = banhammer.vars.pages;
224 banhammer.vars.offset = (jump - 1) * banhammer.vars.limit;
225 banhammer.vars.jump = jump;
226 banhammer.vars.type = 'jump';
227 banhammer_armory();
228 }
229 });
230
231 $('.banhammer-page-items').val(banhammer.vars.limit).on('keypress', function(e) {
232 var code = e.keyCode || e.which;
233 if (code == 13) {
234 e.preventDefault();
235 var limit_new = parseInt($(this).val());
236 var limit_old = $(this).data('limit');
237 if (limit_new <= 0) {
238 limit_new = limit_old;
239 $(this).val(limit_old);
240 }
241 if (limit_new > 10) {
242 $('.banhammer-dialog').dialog('destroy');
243 var button_names = {};
244 button_names[banhammer_number_rows_true] = function() {
245 banhammer.vars.limit = 10;
246 banhammer.vars.offset = 0;
247 banhammer.vars.jump = 1;
248 banhammer.vars.type = 'items';
249 banhammer_armory();
250 $(this).dialog('close');
251 $('.banhammer-page-items').val(banhammer.vars.limit);
252 }
253 button_names[banhammer_number_rows_false] = function() {
254 $(this).dialog('close');
255 $('.banhammer-page-items').val(limit_old);
256 }
257 $('<div class="banhammer-dialog">'+ banhammer_number_rows_message +'</div>').dialog({
258 title: banhammer_number_rows_title,
259 buttons: button_names,
260 modal: true,
261 width: 350
262 });
263 } else {
264 banhammer.vars.limit = limit_new;
265 banhammer.vars.offset = 0;
266 banhammer.vars.jump = 1;
267 banhammer.vars.type = 'items';
268 banhammer_armory();
269 }
270 }
271 });
272
273 $('.banhammer-action-search, .banhammer-select-filter').on('keypress change', function(e) {
274 var go = false;
275 var code = e.keyCode || e.which;
276 if (code == 13 && e.type == 'keypress' && this.className == 'banhammer-action-search') {
277 e.preventDefault();
278 var search = $(this).val();
279 var filter = $('.banhammer-select-filter').val();
280 go = true;
281 } else if (e.type == 'change' && this.className == 'banhammer-select-filter') {
282 e.preventDefault();
283 var search = $('.banhammer-action-search').val();
284 var filter = $(this).val();
285 if (search) go = true;
286 }
287 if (go == true) {
288 if (!filter) filter = '';
289 banhammer.vars.search = search;
290 banhammer.vars.filter = filter;
291 banhammer.vars.offset = 0;
292 banhammer.vars.count = 0;
293 banhammer.vars.jump = 1;
294 banhammer.vars.type = 'search';
295 banhammer_armory();
296 }
297 });
298
299 $('.banhammer-select-sort, .banhammer-select-order').on('change', function(e) {
300 e.preventDefault();
301 var sort = $('.banhammer-select-sort').val();
302 var order = $('.banhammer-select-order').val();
303 if (!sort) sort = 'id';
304 if (!order) order = 'desc';
305 banhammer.vars.sort = sort;
306 banhammer.vars.order = order;
307 banhammer.vars.type = 'sort';
308 banhammer_armory();
309 $(this).blur();
310 });
311
312 $('.banhammer-select-status').on('change', function(e) {
313 e.preventDefault();
314 var status = $(this).val();
315 if (!status) status = 'all';
316 banhammer.vars.offset = 0;
317 banhammer.vars.count = 0;
318 banhammer.vars.jump = 1;
319 banhammer.vars.type = 'status';
320 banhammer.vars.status = status;
321 banhammer_armory();
322 $(this).blur();
323 });
324
325 });
326
327 function banhammer_aux(id, ip) {
328 if (banhammer.vars.xhr != null) {
329 banhammer.vars.xhr.abort();
330 banhammer.vars.xhr = null;
331 }
332 banhammer.vars.xhr = $.ajax({
333 type: 'POST',
334 url: ajaxurl,
335 data: {
336 action: 'banhammer_aux',
337 nonce: banhammer.vars.nonce,
338 id: id,
339 ip: ip
340 },
341 success: function(data) {
342 $('.banhammer-hostlookup-id-'+ id).html(data);
343 }
344 });
345 }
346
347 function banhammer_armory() {
348 banhammer_prepare();
349 if (banhammer.vars.xhr != null) {
350 banhammer.vars.xhr.abort();
351 banhammer.vars.xhr = null;
352 }
353 banhammer.vars.xhr = $.ajax({
354 type: 'POST',
355 url: ajaxurl,
356 data: {
357 action: 'banhammer_armory',
358 nonce: banhammer.vars.nonce,
359 items: banhammer.vars.items,
360 type: banhammer.vars.type,
361 bulk: banhammer.vars.bulk,
362 sort: banhammer.vars.sort,
363 order: banhammer.vars.order,
364 search: banhammer.vars.search,
365 filter: banhammer.vars.filter,
366 status: banhammer.vars.status,
367 jump: banhammer.vars.jump,
368 count: banhammer.vars.count,
369 limit: banhammer.vars.limit,
370 offset: banhammer.vars.offset,
371 toggle: banhammer.vars.toggle,
372 fx: banhammer.vars.fx
373 },
374 success: function(data) {
375 banhammer_response(data);
376 banhammer_ui();
377 }
378 });
379 }
380
381 function banhammer_prepare() {
382 $('.banhammer-armory').show();
383 $('.banhammer-response').empty();
384 $('.banhammer-loading').show();
385 var tools = $('.banhammer-tools');
386 if (tools.is(':visible')) tools.show();
387 else tools.hide();
388 if (banhammer.vars.type != 'bulk' && banhammer.vars.search != '') banhammer.vars.type = 'search';
389 }
390
391 function banhammer_response(data) {
392 var temp = $(data);
393 var div = temp.filter('.banhammer-count-data');
394 var count = parseInt(div.data('count'));
395 banhammer.vars.count = count;
396 $('.banhammer-loading').hide();
397 if (banhammer.vars.type == 'delete') $('.banhammer-tools').hide();
398 $('.banhammer-count').html(div.html());
399 $('.banhammer-response').empty();
400 if (count > 0) {
401 response = temp.not('.banhammer-count-data');
402 response.filter('.banhammer-row').each(function(i) {
403 $(this).hide().appendTo($('.banhammer-response')).delay((i++) * 50).fadeTo(100, 1);
404 if (banhammer.vars.toggle == 2) {
405 $('.banhammer-toggle-link').text($('.banhammer-toggle-link').data('view-bsc'));
406 $(this).find('.banhammer-data').show();
407 $('.banhammer-request a').each(function() {
408 var request = $(this).data('request');
409 $(this).text(request).fadeIn(300);
410 });
411 } else {
412 $('.banhammer-toggle-link').text($('.banhammer-toggle-link').data('view-adv'));
413 $(this).find('.banhammer-data').hide();
414 $('.banhammer-request a').each(function() {
415 var request = $(this).data('request');
416 var req = request.substring(0, 50) +'...';
417 if (request.length > 50) $(this).text(req).fadeIn(300);
418 });
419 }
420 $(this).find('.banhammer-select-target').removeClass('banhammer-visible');
421 var date = $(this).find('.banhammer-date').html().replace(/@/gi, '<span class="banhammer-at">@</span>');
422 $(this).find('.banhammer-date').html(date);
423 });
424 var height = $('.banhammer-response').height();
425 $('.banhammer-loading').css('min-height', height +'px');
426 } else {
427 div.hide().appendTo($('.banhammer-response')).delay(50).fadeTo(100, 1);
428 $('.banhammer-loading').css('min-height', '80px');
429 }
430 var fx = $('.banhammer-fx-link');
431 if (banhammer.vars.fx === 0) fx.text(fx.data('fx-off'));
432 else fx.text(fx.data('fx-on'));
433 new jBox('Tooltip', {
434 getTitle: 'data-title',
435 attach: '.banhammer-armory *[title]',
436 animation: { open: 'move:bottom', close: 'move:bottom' },
437 adjustPosition: true,
438 adjustTracker: true,
439 fade: 100
440 });
441 }
442
443 function banhammer_ui() {
444 banhammer.vars.pages = Math.ceil(banhammer.vars.count / banhammer.vars.limit);
445 if (banhammer.vars.pages === 0) banhammer.vars.pages = 1;
446 if ((banhammer.vars.count - banhammer.vars.offset) <= banhammer.vars.limit) {
447 $('.banhammer-page-next').prop('disabled', true);
448 } else {
449 $('.banhammer-page-next').prop('disabled', false);
450 }
451 if (banhammer.vars.offset > 0) {
452 $('.banhammer-page-prev').prop('disabled', false);
453 } else {
454 $('.banhammer-page-prev').prop('disabled', true);
455 }
456 if (banhammer.vars.count === 0) {
457 $('.banhammer-paging').hide();
458 } else {
459 $('.banhammer-paging').show();
460 }
461 $('.banhammer-page-items').data('limit', banhammer.vars.limit);
462 $('.banhammer-select-bulk').val('');
463 $('.banhammer-select-sort').val(banhammer.vars.sort);
464 $('.banhammer-select-order').val(banhammer.vars.order);
465 $('.banhammer-action-search').val(banhammer.vars.search);
466 $('.banhammer-select-filter').val(banhammer.vars.filter);
467 $('.banhammer-select-status').val(banhammer.vars.status);
468 $('.banhammer-page-jump').val(banhammer.vars.jump);
469 $('.banhammer-page-total').html(banhammer.vars.pages);
470 $('.banhammer-select-all').prop('checked', false);
471 }
472
473 function banhammer_clear() {
474 banhammer.vars.count = 0;
475 banhammer.vars.items = [];
476 banhammer.vars.type = 'init';
477 banhammer.vars.bulk = '';
478 banhammer.vars.sort = 'id';
479 banhammer.vars.order = 'desc';
480 banhammer.vars.search = '';
481 banhammer.vars.filter = 'all';
482 banhammer.vars.status = 'all';
483 banhammer.vars.jump = 1;
484 banhammer.vars.offset = 0;
485 $('.banhammer-action-search').val('');
486 }
487
488 })(jQuery);