Move Thread Hiding code before Reply Hiding.
This commit is contained in:
parent
7751f7abd1
commit
7f6782778f
134
4chan_x.user.js
134
4chan_x.user.js
@ -922,6 +922,73 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ThreadHiding = {
|
||||||
|
init: function() {
|
||||||
|
var a, hiddenThreads, thread, _i, _len, _ref;
|
||||||
|
hiddenThreads = $.get("hiddenThreads/" + g.BOARD + "/", {});
|
||||||
|
_ref = $$('.thread');
|
||||||
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
|
thread = _ref[_i];
|
||||||
|
a = $.el('a', {
|
||||||
|
className: 'hide_thread_button',
|
||||||
|
innerHTML: '<span>[ - ]</span>',
|
||||||
|
href: 'javascript:;'
|
||||||
|
});
|
||||||
|
$.on(a, 'click', ThreadHiding.cb);
|
||||||
|
$.prepend(thread, a);
|
||||||
|
if (thread.id.slice(1) in hiddenThreads) {
|
||||||
|
ThreadHiding.hide(thread);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cb: function() {
|
||||||
|
return ThreadHiding.toggle(this.parentNode);
|
||||||
|
},
|
||||||
|
toggle: function(thread) {
|
||||||
|
var hiddenThreads, id;
|
||||||
|
hiddenThreads = $.get("hiddenThreads/" + g.BOARD + "/", {});
|
||||||
|
id = thread.id.slice(1);
|
||||||
|
if (thread.hidden || /\bhidden_thread\b/.test(thread.firstChild.className)) {
|
||||||
|
ThreadHiding.show(thread);
|
||||||
|
delete hiddenThreads[id];
|
||||||
|
} else {
|
||||||
|
ThreadHiding.hide(thread);
|
||||||
|
hiddenThreads[id] = Date.now();
|
||||||
|
}
|
||||||
|
return $.set("hiddenThreads/" + g.BOARD + "/", hiddenThreads);
|
||||||
|
},
|
||||||
|
hide: function(thread) {
|
||||||
|
var a, num, opInfo, span, text;
|
||||||
|
if (!Conf['Show Stubs']) {
|
||||||
|
thread.hidden = true;
|
||||||
|
thread.nextElementSibling.hidden = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (thread.firstChild.className === 'block') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
num = 0;
|
||||||
|
if (span = $('.summary', thread)) {
|
||||||
|
num = Number(span.textContent.match(/\d+/));
|
||||||
|
}
|
||||||
|
num += $$('.opContainer ~ .replyContainer', thread).length;
|
||||||
|
text = num === 1 ? '1 reply' : "" + num + " replies";
|
||||||
|
opInfo = $('.op > .postInfo > .nameBlock', thread).textContent;
|
||||||
|
a = $('.hide_thread_button', thread);
|
||||||
|
$.addClass(a, 'hidden_thread');
|
||||||
|
a.firstChild.textContent = '[ + ]';
|
||||||
|
return $.add(a, $.tn(" " + opInfo + " (" + text + ")"));
|
||||||
|
},
|
||||||
|
show: function(thread) {
|
||||||
|
var a;
|
||||||
|
a = $('.hide_thread_button', thread);
|
||||||
|
$.removeClass(a, 'hidden_thread');
|
||||||
|
a.innerHTML = '<span>[ - ]</span>';
|
||||||
|
thread.hidden = false;
|
||||||
|
return thread.nextElementSibling.hidden = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
ReplyHiding = {
|
ReplyHiding = {
|
||||||
init: function() {
|
init: function() {
|
||||||
return Main.callbacks.push(this.node);
|
return Main.callbacks.push(this.node);
|
||||||
@ -2373,73 +2440,6 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ThreadHiding = {
|
|
||||||
init: function() {
|
|
||||||
var a, hiddenThreads, thread, _i, _len, _ref;
|
|
||||||
hiddenThreads = $.get("hiddenThreads/" + g.BOARD + "/", {});
|
|
||||||
_ref = $$('.thread');
|
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
||||||
thread = _ref[_i];
|
|
||||||
a = $.el('a', {
|
|
||||||
className: 'hide_thread_button',
|
|
||||||
innerHTML: '<span>[ - ]</span>',
|
|
||||||
href: 'javascript:;'
|
|
||||||
});
|
|
||||||
$.on(a, 'click', ThreadHiding.cb);
|
|
||||||
$.prepend(thread, a);
|
|
||||||
if (thread.id.slice(1) in hiddenThreads) {
|
|
||||||
ThreadHiding.hide(thread);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
cb: function() {
|
|
||||||
return ThreadHiding.toggle(this.parentNode);
|
|
||||||
},
|
|
||||||
toggle: function(thread) {
|
|
||||||
var hiddenThreads, id;
|
|
||||||
hiddenThreads = $.get("hiddenThreads/" + g.BOARD + "/", {});
|
|
||||||
id = thread.id.slice(1);
|
|
||||||
if (thread.hidden || /\bhidden_thread\b/.test(thread.firstChild.className)) {
|
|
||||||
ThreadHiding.show(thread);
|
|
||||||
delete hiddenThreads[id];
|
|
||||||
} else {
|
|
||||||
ThreadHiding.hide(thread);
|
|
||||||
hiddenThreads[id] = Date.now();
|
|
||||||
}
|
|
||||||
return $.set("hiddenThreads/" + g.BOARD + "/", hiddenThreads);
|
|
||||||
},
|
|
||||||
hide: function(thread) {
|
|
||||||
var a, num, opInfo, span, text;
|
|
||||||
if (!Conf['Show Stubs']) {
|
|
||||||
thread.hidden = true;
|
|
||||||
thread.nextElementSibling.hidden = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (thread.firstChild.className === 'block') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
num = 0;
|
|
||||||
if (span = $('.summary', thread)) {
|
|
||||||
num = Number(span.textContent.match(/\d+/));
|
|
||||||
}
|
|
||||||
num += $$('.opContainer ~ .replyContainer', thread).length;
|
|
||||||
text = num === 1 ? '1 reply' : "" + num + " replies";
|
|
||||||
opInfo = $('.op > .postInfo > .nameBlock', thread).textContent;
|
|
||||||
a = $('.hide_thread_button', thread);
|
|
||||||
$.addClass(a, 'hidden_thread');
|
|
||||||
a.firstChild.textContent = '[ + ]';
|
|
||||||
return $.add(a, $.tn(" " + opInfo + " (" + text + ")"));
|
|
||||||
},
|
|
||||||
show: function(thread) {
|
|
||||||
var a;
|
|
||||||
a = $('.hide_thread_button', thread);
|
|
||||||
$.removeClass(a, 'hidden_thread');
|
|
||||||
a.innerHTML = '<span>[ - ]</span>';
|
|
||||||
thread.hidden = false;
|
|
||||||
return thread.nextElementSibling.hidden = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Updater = {
|
Updater = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var checkbox, checked, dialog, html, input, name, title, _i, _len, _ref;
|
var checkbox, checked, dialog, html, input, name, title, _i, _len, _ref;
|
||||||
|
|||||||
112
script.coffee
112
script.coffee
@ -719,6 +719,62 @@ ExpandThread =
|
|||||||
$.rm next
|
$.rm next
|
||||||
$.after a, nodes
|
$.after a, nodes
|
||||||
|
|
||||||
|
ThreadHiding =
|
||||||
|
init: ->
|
||||||
|
hiddenThreads = $.get "hiddenThreads/#{g.BOARD}/", {}
|
||||||
|
for thread in $$ '.thread'
|
||||||
|
a = $.el 'a',
|
||||||
|
className: 'hide_thread_button'
|
||||||
|
innerHTML: '<span>[ - ]</span>'
|
||||||
|
href: 'javascript:;'
|
||||||
|
$.on a, 'click', ThreadHiding.cb
|
||||||
|
$.prepend thread, a
|
||||||
|
|
||||||
|
if thread.id[1..] of hiddenThreads
|
||||||
|
ThreadHiding.hide thread
|
||||||
|
return
|
||||||
|
|
||||||
|
cb: ->
|
||||||
|
ThreadHiding.toggle @parentNode
|
||||||
|
|
||||||
|
toggle: (thread) ->
|
||||||
|
hiddenThreads = $.get "hiddenThreads/#{g.BOARD}/", {}
|
||||||
|
id = thread.id[1..]
|
||||||
|
if thread.hidden or /\bhidden_thread\b/.test thread.firstChild.className
|
||||||
|
ThreadHiding.show thread
|
||||||
|
delete hiddenThreads[id]
|
||||||
|
else
|
||||||
|
ThreadHiding.hide thread
|
||||||
|
hiddenThreads[id] = Date.now()
|
||||||
|
$.set "hiddenThreads/#{g.BOARD}/", hiddenThreads
|
||||||
|
|
||||||
|
hide: (thread) ->
|
||||||
|
unless Conf['Show Stubs']
|
||||||
|
thread.hidden = true
|
||||||
|
thread.nextElementSibling.hidden = true
|
||||||
|
return
|
||||||
|
|
||||||
|
return if thread.firstChild.className is 'block' # already hidden by filter
|
||||||
|
|
||||||
|
num = 0
|
||||||
|
if span = $ '.summary', thread
|
||||||
|
num = Number span.textContent.match /\d+/
|
||||||
|
num += $$('.opContainer ~ .replyContainer', thread).length
|
||||||
|
text = if num is 1 then '1 reply' else "#{num} replies"
|
||||||
|
opInfo = $('.op > .postInfo > .nameBlock', thread).textContent
|
||||||
|
|
||||||
|
a = $ '.hide_thread_button', thread
|
||||||
|
$.addClass a, 'hidden_thread'
|
||||||
|
a.firstChild.textContent = '[ + ]'
|
||||||
|
$.add a, $.tn " #{opInfo} (#{text})"
|
||||||
|
|
||||||
|
show: (thread) ->
|
||||||
|
a = $ '.hide_thread_button', thread
|
||||||
|
$.removeClass a, 'hidden_thread'
|
||||||
|
a.innerHTML = '<span>[ - ]</span>'
|
||||||
|
thread.hidden = false
|
||||||
|
thread.nextElementSibling.hidden = false
|
||||||
|
|
||||||
ReplyHiding =
|
ReplyHiding =
|
||||||
init: ->
|
init: ->
|
||||||
Main.callbacks.push @node
|
Main.callbacks.push @node
|
||||||
@ -1871,62 +1927,6 @@ Options =
|
|||||||
Unread.update true
|
Unread.update true
|
||||||
@nextElementSibling.innerHTML = "<img src=#{Favicon.unreadSFW}> <img src=#{Favicon.unreadNSFW}> <img src=#{Favicon.unreadDead}>"
|
@nextElementSibling.innerHTML = "<img src=#{Favicon.unreadSFW}> <img src=#{Favicon.unreadNSFW}> <img src=#{Favicon.unreadDead}>"
|
||||||
|
|
||||||
ThreadHiding =
|
|
||||||
init: ->
|
|
||||||
hiddenThreads = $.get "hiddenThreads/#{g.BOARD}/", {}
|
|
||||||
for thread in $$ '.thread'
|
|
||||||
a = $.el 'a',
|
|
||||||
className: 'hide_thread_button'
|
|
||||||
innerHTML: '<span>[ - ]</span>'
|
|
||||||
href: 'javascript:;'
|
|
||||||
$.on a, 'click', ThreadHiding.cb
|
|
||||||
$.prepend thread, a
|
|
||||||
|
|
||||||
if thread.id[1..] of hiddenThreads
|
|
||||||
ThreadHiding.hide thread
|
|
||||||
return
|
|
||||||
|
|
||||||
cb: ->
|
|
||||||
ThreadHiding.toggle @parentNode
|
|
||||||
|
|
||||||
toggle: (thread) ->
|
|
||||||
hiddenThreads = $.get "hiddenThreads/#{g.BOARD}/", {}
|
|
||||||
id = thread.id[1..]
|
|
||||||
if thread.hidden or /\bhidden_thread\b/.test thread.firstChild.className
|
|
||||||
ThreadHiding.show thread
|
|
||||||
delete hiddenThreads[id]
|
|
||||||
else
|
|
||||||
ThreadHiding.hide thread
|
|
||||||
hiddenThreads[id] = Date.now()
|
|
||||||
$.set "hiddenThreads/#{g.BOARD}/", hiddenThreads
|
|
||||||
|
|
||||||
hide: (thread) ->
|
|
||||||
unless Conf['Show Stubs']
|
|
||||||
thread.hidden = true
|
|
||||||
thread.nextElementSibling.hidden = true
|
|
||||||
return
|
|
||||||
|
|
||||||
return if thread.firstChild.className is 'block' # already hidden by filter
|
|
||||||
|
|
||||||
num = 0
|
|
||||||
if span = $ '.summary', thread
|
|
||||||
num = Number span.textContent.match /\d+/
|
|
||||||
num += $$('.opContainer ~ .replyContainer', thread).length
|
|
||||||
text = if num is 1 then '1 reply' else "#{num} replies"
|
|
||||||
opInfo = $('.op > .postInfo > .nameBlock', thread).textContent
|
|
||||||
|
|
||||||
a = $ '.hide_thread_button', thread
|
|
||||||
$.addClass a, 'hidden_thread'
|
|
||||||
a.firstChild.textContent = '[ + ]'
|
|
||||||
$.add a, $.tn " #{opInfo} (#{text})"
|
|
||||||
|
|
||||||
show: (thread) ->
|
|
||||||
a = $ '.hide_thread_button', thread
|
|
||||||
$.removeClass a, 'hidden_thread'
|
|
||||||
a.innerHTML = '<span>[ - ]</span>'
|
|
||||||
thread.hidden = false
|
|
||||||
thread.nextElementSibling.hidden = false
|
|
||||||
|
|
||||||
Updater =
|
Updater =
|
||||||
init: ->
|
init: ->
|
||||||
html = "<div class=move><span id=count></span> <span id=timer>-#{Conf['Interval']}</span></div>"
|
html = "<div class=move><span id=count></span> <span id=timer>-#{Conf['Interval']}</span></div>"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user