summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMarcin Łabanowski <marcin@6irc.net>2013-01-28 13:29:21 +0100
committerMarcin Łabanowski <marcin@6irc.net>2013-01-28 13:29:21 +0100
commitd1bd4e1f7bb67eb863f4fd4233720e6e9baea8d1 (patch)
tree880263a122e50baa20cb6b22a9b4343cd0b456af /js
parente6b9bad788a6d9ae5f203b999925b9368a77536c (diff)
parentfd33e9eba1e72fd4ee5f064944e9592be66c12c1 (diff)
Merge branch 'master' of https://github.com/savetheinternet/Tinyboard
Diffstat (limited to 'js')
-rw-r--r--js/toggle-locked-threads.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/js/toggle-locked-threads.js b/js/toggle-locked-threads.js
new file mode 100644
index 00000000..50c44eda
--- /dev/null
+++ b/js/toggle-locked-threads.js
@@ -0,0 +1,63 @@
+/*
+ * toggle-locked-threads.js
+ *
+ * Released under the MIT license
+ * Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
+ *
+ * Usage:
+ * $config['additional_javascript'][] = 'js/jquery.min.js';
+ * $config['additional_javascript'][] = 'js/toggle-locked-threads.js';
+ *
+ */
+
+$(document).ready(function(){
+ if($('div.banner').length != 0)
+ return; // not index
+
+ 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) {
+ $thread
+ .hide()
+ .addClass('hidden');
+ };
+
+ var restoreLockedThread = function($thread) {
+ $thread
+ .show()
+ .removeClass('hidden');
+ };
+
+ var getThreadFromIcon = function($icon) {
+ return $icon.parent().parent().parent()
+ };
+
+ $('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' : 'Hide') + ' locked threads')
+ .click(function() {
+ hide_locked_threads = !hide_locked_threads;
+ if (hide_locked_threads) {
+ $('img.icon[title="Locked"]').each(function() {
+ hideLockedThread(getThreadFromIcon($(this)));
+ });
+ localStorage.hidelockedthreads = true;
+ } else {
+ $('img.icon[title="Locked"]').each(function() {
+ restoreLockedThread(getThreadFromIcon($(this)));
+ });
+ delete localStorage.hidelockedthreads;
+ }
+
+ $(this).text((hide_locked_threads ? 'Show' : 'Hide') + ' locked threads')
+ });
+
+ if (hide_locked_threads) {
+ $('img.icon[title="Locked"]').each(function() {
+ hideLockedThread(getThreadFromIcon($(this)));
+ });
+ }
+});
+