Add blur images option for raids #55
Merged
discomrade
merged 1 commits from blur-images
into config
3 years ago
1 changed files with 102 additions and 0 deletions
@ -0,0 +1,102 @@ |
|||
/* |
|||
* blur-images.js (edit of toggle-images.js) |
|||
* |
|||
* Released under the MIT license |
|||
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org> |
|||
* Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net> |
|||
* |
|||
* Usage: |
|||
* $config['additional_javascript'][] = 'js/jquery.min.js'; |
|||
* //$config['additional_javascript'][] = 'js/options.js';
|
|||
* //$config['additional_javascript'][] = 'js/style-select.js';
|
|||
* //$config['additional_javascript'][] = 'js/options/general.js';
|
|||
* $config['additional_javascript'][] = 'js/toggle-images.js'; |
|||
* |
|||
* Note: I put it immediately under options/general and make the opacity !important to ensure fast loading time |
|||
* Intended for anti-raid protection |
|||
*/ |
|||
|
|||
$(document).ready(function(){ |
|||
var hide_images = localStorage['hideimages'] ? true : false; |
|||
|
|||
$('<style type="text/css"> img.hidden{ opacity: 1 !important; filter: blur(20px); } </style>').appendTo($('head')); |
|||
|
|||
var hideImage = function() { |
|||
if ($(this).parent().data('expanded') == 'true') { |
|||
$(this).parent().click(); |
|||
} |
|||
$(this).addClass('hidden'); |
|||
}; |
|||
|
|||
var restoreImage = function() { |
|||
$(this) |
|||
.attr('src', $(this).attr('data-orig')) |
|||
.removeClass('hidden'); |
|||
}; |
|||
|
|||
// Fix for hide-images.js
|
|||
var show_hide_hide_images_buttons = function() { |
|||
if (hide_images) { |
|||
$('a.hide-image-link').each(function() { |
|||
if ($(this).next().hasClass('show-image-link')) { |
|||
$(this).next().hide(); |
|||
} |
|||
$(this).hide().after('<span class="toggle-images-placeholder">'+_('hidden')+'</span>'); |
|||
}); |
|||
} else { |
|||
$('span.toggle-images-placeholder').remove(); |
|||
$('a.hide-image-link').each(function() { |
|||
if ($(this).next().hasClass('show-image-link')) { |
|||
$(this).next().show(); |
|||
} else { |
|||
$(this).show(); |
|||
} |
|||
}); |
|||
} |
|||
}; |
|||
|
|||
var selector, event; |
|||
if (window.Options && Options.get_tab('general')) { |
|||
selector = '#toggle-images>input'; |
|||
event = 'change'; |
|||
Options.extend_tab("general", "<label id='toggle-images'><input type='checkbox' />"+_('Blur images')+"</label>"); |
|||
} |
|||
else { |
|||
selector = '#toggle-images a'; |
|||
event = 'click'; |
|||
$('hr:first').before('<div id="toggle-images" style="text-align:right"><a class="unimportant" href="javascript:void(0)">-</a></div>'); |
|||
$('div#toggle-images a') |
|||
.text(hide_images ? _('Show images') : _('Hide images')); |
|||
} |
|||
|
|||
$(selector) |
|||
.on(event, function() { |
|||
hide_images = !hide_images; |
|||
if (hide_images) { |
|||
$('img.post-image, .theme-catalog .thread>a>img').each(hideImage); |
|||
localStorage.hideimages = true; |
|||
} else { |
|||
$('img.post-image, .theme-catalog .thread>a>img').each(restoreImage); |
|||
delete localStorage.hideimages; |
|||
} |
|||
|
|||
show_hide_hide_images_buttons(); |
|||
|
|||
$(this).text(hide_images ? _('Show images') : _('Hide images')) |
|||
}); |
|||
|
|||
if (hide_images) { |
|||
$('img.post-image, .theme-catalog .thread>a>img').each(hideImage); |
|||
show_hide_hide_images_buttons(); |
|||
|
|||
if (window.Options && Options.get_tab('general')) { |
|||
$('#toggle-images>input').prop('checked', true); |
|||
} |
|||
} |
|||
|
|||
$(document).on('new_post', function(e, post) { |
|||
if (hide_images) { |
|||
$(post).find('img.post-image').each(hideImage); |
|||
} |
|||
}); |
|||
}); |
Loading…
Reference in new issue