| 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); |