91 lines
3.0 KiB
JavaScript
91 lines
3.0 KiB
JavaScript
/*
|
|
* toggle-locked-threads.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-locked-threads.js';
|
|
*
|
|
*/
|
|
|
|
if (active_page == 'ukko' || active_page == 'index' || (window.Options && Options.get_tab('general')))
|
|
$(document).ready(function(){
|
|
var hide_locked_threads = localStorage['hidelockedthreads'] ? true : false;
|
|
|
|
$('<style type="text/css"> img.hidden{ opacity: 0.1; background: grey; border: 1px solid #000; } </style>').appendTo($('head'));
|
|
|
|
var hideLockedThread = function($thread) {
|
|
if (active_page == 'ukko' || active_page == 'index')
|
|
$thread
|
|
.hide()
|
|
.addClass('hidden');
|
|
};
|
|
|
|
var restoreLockedThread = function($thread) {
|
|
$thread
|
|
.show()
|
|
.removeClass('hidden');
|
|
};
|
|
|
|
var getThreadFromIcon = function($icon) {
|
|
return $icon.parent().parent().parent()
|
|
};
|
|
|
|
var selector, event;
|
|
if (window.Options && Options.get_tab('general')) {
|
|
selector = '#toggle-locked-threads>input';
|
|
event = 'change';
|
|
Options.extend_tab("general", "<label id='toggle-locked-threads'><input type='checkbox' /> "+_('Hide locked threads')+"</label>");
|
|
}
|
|
else {
|
|
selector = '#toggle-locked-threads a';
|
|
event = 'click';
|
|
$('hr:first').before('<div id="toggle-locked-threads" style="text-align:right"><a class="unimportant" href="javascript:void(0)">-</a></div>');
|
|
}
|
|
|
|
$('div#toggle-locked-threads a')
|
|
.text(hide_locked_threads ? _('Show locked threads') : _('Hide locked threads'));
|
|
|
|
$(selector)
|
|
.on(event, function() {
|
|
hide_locked_threads = !hide_locked_threads;
|
|
if (hide_locked_threads) {
|
|
$('img.icon[title="Locked"], i.fa-lock.fa').each(function() {
|
|
hideLockedThread(getThreadFromIcon($(this)));
|
|
});
|
|
localStorage.hidelockedthreads = true;
|
|
} else {
|
|
$('img.icon[title="Locked"], i.fa-lock.fa').each(function() {
|
|
restoreLockedThread(getThreadFromIcon($(this)));
|
|
});
|
|
delete localStorage.hidelockedthreads;
|
|
}
|
|
|
|
$(this).text(hide_locked_threads ? _('Show locked threads') : _('Hide locked threads'))
|
|
});
|
|
|
|
if (hide_locked_threads) {
|
|
$('img.icon[title="Locked"], i.fa-lock.fa').each(function() {
|
|
hideLockedThread(getThreadFromIcon($(this)));
|
|
});
|
|
|
|
if (window.Options && Options.get_tab('general')) {
|
|
$('#toggle-locked-threads>input').prop('checked', true);
|
|
}
|
|
}
|
|
$(document).on('new_post', function(e, post) {
|
|
if (hide_locked_threads) {
|
|
$(post).find('img.icon[title="Locked"], i.fa-lock.fa').each(function() {
|
|
hideLockedThread(getThreadFromIcon($(this)));
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|