Move some Menu things around.

This commit is contained in:
Nicolas Stepien 2012-06-24 22:34:08 +02:00
parent f446147def
commit 48b3a099cd
2 changed files with 36 additions and 51 deletions

View File

@ -1121,17 +1121,7 @@
_ref = Menu.entries; _ref = Menu.entries;
for (_i = 0, _len = _ref.length; _i < _len; _i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
entry = _ref[_i]; entry = _ref[_i];
if ((function() { if (entry.requirement(post)) {
var requirement, val, _ref1;
_ref1 = entry.requirements;
for (requirement in _ref1) {
val = _ref1[requirement];
if (val !== post[requirement]) {
return false;
}
}
return true;
})()) {
$.add(el, entry.el); $.add(el, entry.el);
$.event(entry.el, new CustomEvent('context')); $.event(entry.el, new CustomEvent('context'));
} }
@ -1145,11 +1135,9 @@
delete Menu.lastOpener; delete Menu.lastOpener;
return $.off(d, 'click', Menu.close); return $.off(d, 'click', Menu.close);
}, },
newEntry: function(name) { addEntry: function(entry) {
return $.el(name, { $.addClass(entry.el, 'entry');
className: 'entry', return Menu.entries.push(entry);
tabIndex: 0
});
} }
}; };
@ -3811,17 +3799,18 @@
DeleteLink = { DeleteLink = {
init: function() { init: function() {
var a; var a;
a = Menu.newEntry('a'); a = $.el('a', {
a.href = 'javascript:;'; className: 'delete_link',
$.addClass(a, 'delete_link'); href: 'javascript:;'
});
$.on(a, 'context', function() { $.on(a, 'context', function() {
a.textContent = 'Delete this post'; a.textContent = 'Delete this post';
return $.on(a, 'click', DeleteLink["delete"]); return $.on(a, 'click', DeleteLink["delete"]);
}); });
return Menu.entries.push({ return Menu.addEntry({
el: a, el: a,
requirements: { requirement: function(post) {
isArchived: false return post.isArchived === false;
} }
}); });
}, },
@ -3872,15 +3861,16 @@
ReportLink = { ReportLink = {
init: function() { init: function() {
var a; var a;
a = Menu.newEntry('a'); a = $.el('a', {
a.href = 'javascript:;'; className: 'report_link',
a.textContent = 'Report this post'; href: 'javascript:;',
$.addClass(a, 'report_link'); textContent: 'Report this post'
});
$.on(a, 'click', this.report); $.on(a, 'click', this.report);
return Menu.entries.push({ return Menu.addEntry({
el: a, el: a,
requirements: { requirement: function(post) {
isArchived: false return post.isArchived === false;
} }
}); });
}, },

View File

@ -862,11 +862,7 @@ Menu =
# className: 'entry' # className: 'entry'
# textContent: "#{i}: #{post[i]}" # textContent: "#{i}: #{post[i]}"
for entry in Menu.entries for entry in Menu.entries
if (-> if entry.requirement post
for requirement, val of entry.requirements
return false if val isnt post[requirement]
true
)()
$.add el, entry.el $.add el, entry.el
# XXX 'context' event? # XXX 'context' event?
$.event entry.el, new CustomEvent 'context' $.event entry.el, new CustomEvent 'context'
@ -878,10 +874,9 @@ Menu =
delete Menu.lastOpener delete Menu.lastOpener
$.off d, 'click', Menu.close $.off d, 'click', Menu.close
newEntry: (name) -> addEntry: (entry) ->
$.el name, $.addClass entry.el, 'entry'
className: 'entry' Menu.entries.push entry
tabIndex: 0
Keybinds = Keybinds =
init: -> init: ->
@ -2989,16 +2984,16 @@ Quotify =
DeleteLink = DeleteLink =
init: -> init: ->
a = Menu.newEntry 'a' a = $.el 'a',
a.href = 'javascript:;' className: 'delete_link'
$.addClass a, 'delete_link' href: 'javascript:;'
$.on a, 'context', -> $.on a, 'context', ->
a.textContent = 'Delete this post' a.textContent = 'Delete this post'
$.on a, 'click', DeleteLink.delete $.on a, 'click', DeleteLink.delete
Menu.entries.push Menu.addEntry
el: a el: a
requirements: requirement: (post) ->
isArchived: false post.isArchived is false
delete: -> delete: ->
$.off @, 'click', DeleteLink.delete $.off @, 'click', DeleteLink.delete
@textContent = 'Deleting...' @textContent = 'Deleting...'
@ -3042,15 +3037,15 @@ DeleteLink =
ReportLink = ReportLink =
init: -> init: ->
a = Menu.newEntry 'a' a = $.el 'a',
a.href = 'javascript:;' className: 'report_link'
a.textContent = 'Report this post' href: 'javascript:;'
$.addClass a, 'report_link' textContent: 'Report this post'
$.on a, 'click', @report $.on a, 'click', @report
Menu.entries.push Menu.addEntry
el: a el: a
requirements: requirement: (post) ->
isArchived: false post.isArchived is false
report: -> report: ->
a = $ '.postNum > a[title="Highlight this post"]', $.id @parentNode.dataset.rootid a = $ '.postNum > a[title="Highlight this post"]', $.id @parentNode.dataset.rootid
url = "//sys.4chan.org/#{a.pathname.split('/')[1]}/imgboard.php?mode=report&no=#{@parentNode.dataset.id}" url = "//sys.4chan.org/#{a.pathname.split('/')[1]}/imgboard.php?mode=report&no=#{@parentNode.dataset.id}"