Add a menu button next to stubs. Close #502.

This commit is contained in:
Nicolas Stepien 2012-06-27 22:23:47 +02:00
parent 5430a1198b
commit 469b60a4c5
2 changed files with 51 additions and 25 deletions

View File

@ -947,7 +947,7 @@
}
},
cb: function() {
return ThreadHiding.toggle(this.parentNode);
return ThreadHiding.toggle($.x('ancestor::div[parent::div[@class="board"]]', this));
},
toggle: function(thread) {
var hiddenThreads, id;
@ -963,7 +963,7 @@
return $.set("hiddenThreads/" + g.BOARD + "/", hiddenThreads);
},
hide: function(thread, show_stub) {
var a, num, opInfo, span, text;
var a, menuButton, num, opInfo, span, stub, text;
if (show_stub == null) {
show_stub = Conf['Show Stubs'];
}
@ -982,19 +982,24 @@
num += $$('.opContainer ~ .replyContainer', thread).length;
text = num === 1 ? '1 reply' : "" + num + " replies";
opInfo = $('.op > .postInfo > .nameBlock', thread).textContent;
a = $.el('a', {
stub = $.el('div', {
className: 'hide_thread_button hidden_thread',
innerHTML: '<span>[ + ]</span>',
href: 'javascript:;'
innerHTML: '<a href="javascript:;"><span>[ + ]</span> </a>'
});
$.add(a, $.tn(" " + opInfo + " (" + text + ")"));
a = stub.firstChild;
$.on(a, 'click', ThreadHiding.cb);
return $.prepend(thread, a);
$.add(a, $.tn("" + opInfo + " (" + text + ")"));
if (Conf['Menu']) {
menuButton = Menu.a.cloneNode(true);
$.on(menuButton, 'click', Menu.toggle);
$.add(stub, [$.tn(' '), menuButton]);
}
return $.prepend(thread, stub);
},
show: function(thread) {
var a;
if (a = $('.hidden_thread', thread)) {
$.rm(a);
var stub;
if (stub = $('.hidden_thread', thread)) {
$.rm(stub);
}
thread.hidden = false;
return thread.nextElementSibling.hidden = false;
@ -1042,7 +1047,7 @@
return $.set("hiddenReplies/" + g.BOARD + "/", g.hiddenReplies);
},
hide: function(root, show_stub) {
var a, el, side, stub;
var a, el, menuButton, side, stub;
if (show_stub == null) {
show_stub = Conf['Show Stubs'];
}
@ -1061,8 +1066,13 @@
innerHTML: '<a href="javascript:;"><span>[ + ]</span> </a>'
});
a = stub.firstChild;
$.add(a, $.tn($('.nameBlock', el).textContent));
$.on(a, 'click', ReplyHiding.toggle);
$.add(a, $.tn($('.nameBlock', el).textContent));
if (Conf['Menu']) {
menuButton = Menu.a.cloneNode(true);
$.on(menuButton, 'click', Menu.toggle);
$.add(stub, [$.tn(' '), menuButton]);
}
return $.prepend(root, stub);
},
show: function(root) {
@ -1103,7 +1113,7 @@
return $.on(a, 'click', Menu.toggle);
},
toggle: function(e) {
var lastOpener;
var lastOpener, post;
e.preventDefault();
e.stopPropagation();
if (Menu.el.parentNode) {
@ -1114,7 +1124,9 @@
}
}
Menu.lastOpener = this;
return Menu.open(this, Main.preParse($.x('ancestor::div[contains(@class,"postContainer")][1]', this)));
post = /\bhidden_thread\b/.test(this.parentNode.className) ? $.x('ancestor::div[parent::div[@class="board"]]/child::div[contains(@class,"opContainer")]', this) : $.x('ancestor::div[contains(@class,"postContainer")][1]', this);
$.log(postContainer);
return Menu.open(this, Main.preParse(post));
},
open: function(button, post) {
var bLeft, bRect, bTop, el, entry, mRect, _i, _len, _ref;

View File

@ -719,7 +719,7 @@ ThreadHiding =
return
cb: ->
ThreadHiding.toggle @parentNode
ThreadHiding.toggle $.x 'ancestor::div[parent::div[@class="board"]]', @
toggle: (thread) ->
hiddenThreads = $.get "hiddenThreads/#{g.BOARD}/", {}
@ -747,17 +747,21 @@ ThreadHiding =
text = if num is 1 then '1 reply' else "#{num} replies"
opInfo = $('.op > .postInfo > .nameBlock', thread).textContent
a = $.el 'a',
stub = $.el 'div',
className: 'hide_thread_button hidden_thread'
innerHTML: '<span>[ + ]</span>'
href: 'javascript:;'
$.add a, $.tn " #{opInfo} (#{text})"
$.on a, 'click', ThreadHiding.cb
$.prepend thread, a
innerHTML: '<a href="javascript:;"><span>[ + ]</span> </a>'
a = stub.firstChild
$.on a, 'click', ThreadHiding.cb
$.add a, $.tn "#{opInfo} (#{text})"
if Conf['Menu']
menuButton = Menu.a.cloneNode true
$.on menuButton, 'click', Menu.toggle
$.add stub, [$.tn(' '), menuButton]
$.prepend thread, stub
show: (thread) ->
if a = $ '.hidden_thread', thread
$.rm a
if stub = $ '.hidden_thread', thread
$.rm stub
thread.hidden = false
thread.nextElementSibling.hidden = false
@ -805,8 +809,12 @@ ReplyHiding =
className: 'hide_reply_button stub'
innerHTML: '<a href="javascript:;"><span>[ + ]</span> </a>'
a = stub.firstChild
$.add a, $.tn $('.nameBlock', el).textContent
$.on a, 'click', ReplyHiding.toggle
$.add a, $.tn $('.nameBlock', el).textContent
if Conf['Menu']
menuButton = Menu.a.cloneNode true
$.on menuButton, 'click', Menu.toggle
$.add stub, [$.tn(' '), menuButton]
$.prepend root, stub
show: (root) ->
@ -848,7 +856,13 @@ Menu =
return if lastOpener is @
Menu.lastOpener = @
Menu.open @, Main.preParse $.x 'ancestor::div[contains(@class,"postContainer")][1]', @
post =
if /\bhidden_thread\b/.test @parentNode.className
$.x 'ancestor::div[parent::div[@class="board"]]/child::div[contains(@class,"opContainer")]', @
else
$.x 'ancestor::div[contains(@class,"postContainer")][1]', @
$.log postContainer
Menu.open @, Main.preParse post
open: (button, post) ->
{el} = Menu
# XXX GM/Scriptish require setAttribute