I don't care for toggles. A dismissed announcement is dismissed.

This commit is contained in:
Zixaphir 2013-04-16 17:41:36 -07:00
parent a973654502
commit e47408cabe
6 changed files with 72 additions and 96 deletions

View File

@ -6430,7 +6430,6 @@
if (!Conf['Announcement Hiding']) { if (!Conf['Announcement Hiding']) {
return; return;
} }
$.addClass(doc, 'hide-announcement');
return $.on(d, '4chanXInitFinished', this.setup); return $.on(d, '4chanXInitFinished', this.setup);
}, },
setup: function() { setup: function() {
@ -6438,48 +6437,43 @@
$.off(d, '4chanXInitFinished', PSAHiding.setup); $.off(d, '4chanXInitFinished', PSAHiding.setup);
if (!(psa = $.id('globalMessage'))) { if (!(psa = $.id('globalMessage'))) {
$.rmClass(doc, 'hide-announcement');
return; return;
} }
PSAHiding.btn = btn = $.el('a', { PSAHiding.btn = btn = $.el('a', {
title: 'Toggle announcement.', title: 'Toggle announcement.',
href: 'javascript:;' href: 'javascript:;',
textContent: '[ - ]'
}); });
$.on(btn, 'click', PSAHiding.toggle); $.on(btn, 'click', PSAHiding.toggle);
$.prepend(psa, btn);
text = PSAHiding.trim(psa); text = PSAHiding.trim(psa);
$.get('hiddenPSAs', [], function(item) { return $.get('hiddenPSAs', [], function(item) {
PSAHiding.sync(item['hiddenPSAs']); return PSAHiding.sync(item['hiddenPSAs']);
$.before(psa, btn);
return $.rmClass(doc, 'hide-announcement');
}); });
return $.sync('hiddenPSAs', PSAHiding.sync);
}, },
toggle: function(e) { toggle: function(e) {
var hide, text; var text;
hide = $.hasClass(this, 'hide-announcement');
text = PSAHiding.trim($.id('globalMessage')); text = PSAHiding.trim($.id('globalMessage'));
return $.get('hiddenPSAs', [], function(item) { return $.get('hiddenPSAs', [], function(item) {
var hiddenPSAs, i; var hiddenPSAs;
hiddenPSAs = item.hiddenPSAs; hiddenPSAs = item.hiddenPSAs;
if (hide) { hiddenPSAs.push(text);
hiddenPSAs.push(text);
} else {
i = hiddenPSAs.indexOf(text);
hiddenPSAs.splice(i, 1);
}
hiddenPSAs = hiddenPSAs.slice(-5); hiddenPSAs = hiddenPSAs.slice(-5);
PSAHiding.sync(hiddenPSAs); PSAHiding.sync(hiddenPSAs);
return $.set('hiddenPSAs', hiddenPSAs); return $.set('hiddenPSAs', hiddenPSAs);
}); });
}, },
sync: function(hiddenPSAs) { sync: function(hiddenPSAs) {
var btn, psa, _ref; var btn, psa;
btn = PSAHiding.btn; btn = PSAHiding.btn;
psa = $.id('globalMessage'); psa = $.id('globalMessage');
return _ref = hiddenPSAs.contains(PSAHiding.trim(psa)) ? [true, '<span>[&nbsp;+&nbsp;]</span>', 'show-announcement'] : [false, '<span>[&nbsp;-&nbsp;]</span>', 'hide-announcement'], psa.hidden = _ref[0], btn.innerHTML = _ref[1], btn.className = _ref[2], _ref; if (hiddenPSAs.contains(PSAHiding.trim(psa))) {
$.rm(psa);
return Style.iconPositions();
}
}, },
trim: function(psa) { trim: function(psa) {
return psa.textContent.replace(/\W+/g, '').toLowerCase(); return psa.textContent.replace(/\W+/g, '').toLowerCase();

View File

@ -6423,7 +6423,6 @@
if (!Conf['Announcement Hiding']) { if (!Conf['Announcement Hiding']) {
return; return;
} }
$.addClass(doc, 'hide-announcement');
return $.on(d, '4chanXInitFinished', this.setup); return $.on(d, '4chanXInitFinished', this.setup);
}, },
setup: function() { setup: function() {
@ -6431,48 +6430,43 @@
$.off(d, '4chanXInitFinished', PSAHiding.setup); $.off(d, '4chanXInitFinished', PSAHiding.setup);
if (!(psa = $.id('globalMessage'))) { if (!(psa = $.id('globalMessage'))) {
$.rmClass(doc, 'hide-announcement');
return; return;
} }
PSAHiding.btn = btn = $.el('a', { PSAHiding.btn = btn = $.el('a', {
title: 'Toggle announcement.', title: 'Toggle announcement.',
href: 'javascript:;' href: 'javascript:;',
textContent: '[ - ]'
}); });
$.on(btn, 'click', PSAHiding.toggle); $.on(btn, 'click', PSAHiding.toggle);
$.prepend(psa, btn);
text = PSAHiding.trim(psa); text = PSAHiding.trim(psa);
$.get('hiddenPSAs', [], function(item) { return $.get('hiddenPSAs', [], function(item) {
PSAHiding.sync(item['hiddenPSAs']); return PSAHiding.sync(item['hiddenPSAs']);
$.before(psa, btn);
return $.rmClass(doc, 'hide-announcement');
}); });
return $.sync('hiddenPSAs', PSAHiding.sync);
}, },
toggle: function(e) { toggle: function(e) {
var hide, text; var text;
hide = $.hasClass(this, 'hide-announcement');
text = PSAHiding.trim($.id('globalMessage')); text = PSAHiding.trim($.id('globalMessage'));
return $.get('hiddenPSAs', [], function(item) { return $.get('hiddenPSAs', [], function(item) {
var hiddenPSAs, i; var hiddenPSAs;
hiddenPSAs = item.hiddenPSAs; hiddenPSAs = item.hiddenPSAs;
if (hide) { hiddenPSAs.push(text);
hiddenPSAs.push(text);
} else {
i = hiddenPSAs.indexOf(text);
hiddenPSAs.splice(i, 1);
}
hiddenPSAs = hiddenPSAs.slice(-5); hiddenPSAs = hiddenPSAs.slice(-5);
PSAHiding.sync(hiddenPSAs); PSAHiding.sync(hiddenPSAs);
return $.set('hiddenPSAs', hiddenPSAs); return $.set('hiddenPSAs', hiddenPSAs);
}); });
}, },
sync: function(hiddenPSAs) { sync: function(hiddenPSAs) {
var btn, psa, _ref; var btn, psa;
btn = PSAHiding.btn; btn = PSAHiding.btn;
psa = $.id('globalMessage'); psa = $.id('globalMessage');
return _ref = hiddenPSAs.contains(PSAHiding.trim(psa)) ? [true, '<span>[&nbsp;+&nbsp;]</span>', 'show-announcement'] : [false, '<span>[&nbsp;-&nbsp;]</span>', 'hide-announcement'], psa.hidden = _ref[0], btn.innerHTML = _ref[1], btn.className = _ref[2], _ref; if (hiddenPSAs.contains(PSAHiding.trim(psa))) {
$.rm(psa);
return Style.iconPositions();
}
}, },
trim: function(psa) { trim: function(psa) {
return psa.textContent.replace(/\W+/g, '').toLowerCase(); return psa.textContent.replace(/\W+/g, '').toLowerCase();

Binary file not shown.

Binary file not shown.

View File

@ -6368,7 +6368,6 @@
if (!Conf['Announcement Hiding']) { if (!Conf['Announcement Hiding']) {
return; return;
} }
$.addClass(doc, 'hide-announcement');
return $.on(d, '4chanXInitFinished', this.setup); return $.on(d, '4chanXInitFinished', this.setup);
}, },
setup: function() { setup: function() {
@ -6376,48 +6375,43 @@
$.off(d, '4chanXInitFinished', PSAHiding.setup); $.off(d, '4chanXInitFinished', PSAHiding.setup);
if (!(psa = $.id('globalMessage'))) { if (!(psa = $.id('globalMessage'))) {
$.rmClass(doc, 'hide-announcement');
return; return;
} }
PSAHiding.btn = btn = $.el('a', { PSAHiding.btn = btn = $.el('a', {
title: 'Toggle announcement.', title: 'Toggle announcement.',
href: 'javascript:;' href: 'javascript:;',
textContent: '[ - ]'
}); });
$.on(btn, 'click', PSAHiding.toggle); $.on(btn, 'click', PSAHiding.toggle);
$.prepend(psa, btn);
text = PSAHiding.trim(psa); text = PSAHiding.trim(psa);
$.get('hiddenPSAs', [], function(item) { return $.get('hiddenPSAs', [], function(item) {
PSAHiding.sync(item['hiddenPSAs']); return PSAHiding.sync(item['hiddenPSAs']);
$.before(psa, btn);
return $.rmClass(doc, 'hide-announcement');
}); });
return $.sync('hiddenPSAs', PSAHiding.sync);
}, },
toggle: function(e) { toggle: function(e) {
var hide, text; var text;
hide = $.hasClass(this, 'hide-announcement');
text = PSAHiding.trim($.id('globalMessage')); text = PSAHiding.trim($.id('globalMessage'));
return $.get('hiddenPSAs', [], function(item) { return $.get('hiddenPSAs', [], function(item) {
var hiddenPSAs, i; var hiddenPSAs;
hiddenPSAs = item.hiddenPSAs; hiddenPSAs = item.hiddenPSAs;
if (hide) { hiddenPSAs.push(text);
hiddenPSAs.push(text);
} else {
i = hiddenPSAs.indexOf(text);
hiddenPSAs.splice(i, 1);
}
hiddenPSAs = hiddenPSAs.slice(-5); hiddenPSAs = hiddenPSAs.slice(-5);
PSAHiding.sync(hiddenPSAs); PSAHiding.sync(hiddenPSAs);
return $.set('hiddenPSAs', hiddenPSAs); return $.set('hiddenPSAs', hiddenPSAs);
}); });
}, },
sync: function(hiddenPSAs) { sync: function(hiddenPSAs) {
var btn, psa, _ref; var btn, psa;
btn = PSAHiding.btn; btn = PSAHiding.btn;
psa = $.id('globalMessage'); psa = $.id('globalMessage');
return _ref = hiddenPSAs.contains(PSAHiding.trim(psa)) ? [true, '<span>[&nbsp;+&nbsp;]</span>', 'show-announcement'] : [false, '<span>[&nbsp;-&nbsp;]</span>', 'hide-announcement'], psa.hidden = _ref[0], btn.innerHTML = _ref[1], btn.className = _ref[2], _ref; if (hiddenPSAs.contains(PSAHiding.trim(psa))) {
$.rm(psa);
return Style.iconPositions();
}
}, },
trim: function(psa) { trim: function(psa) {
return psa.textContent.replace(/\W+/g, '').toLowerCase(); return psa.textContent.replace(/\W+/g, '').toLowerCase();

View File

@ -303,50 +303,44 @@ CatalogLinks =
PSAHiding = PSAHiding =
init: -> init: ->
return if !Conf['Announcement Hiding'] return unless Conf['Announcement Hiding']
$.addClass doc, 'hide-announcement'
$.on d, '4chanXInitFinished', @setup $.on d, '4chanXInitFinished', @setup
setup: -> setup: ->
$.off d, '4chanXInitFinished', PSAHiding.setup $.off d, '4chanXInitFinished', PSAHiding.setup
unless psa = $.id 'globalMessage' unless psa = $.id 'globalMessage'
$.rmClass doc, 'hide-announcement'
return return
PSAHiding.btn = btn = $.el 'a', PSAHiding.btn = btn = $.el 'a',
title: 'Toggle announcement.' title: 'Toggle announcement.'
href: 'javascript:;' href: 'javascript:;'
textContent: '[ - ]'
$.on btn, 'click', PSAHiding.toggle $.on btn, 'click', PSAHiding.toggle
$.prepend psa, btn
text = PSAHiding.trim psa text = PSAHiding.trim psa
$.get 'hiddenPSAs', [], (item) -> $.get 'hiddenPSAs', [], (item) ->
PSAHiding.sync item['hiddenPSAs'] PSAHiding.sync item['hiddenPSAs']
$.before psa, btn
$.rmClass doc, 'hide-announcement'
$.sync 'hiddenPSAs', PSAHiding.sync
toggle: (e) -> toggle: (e) ->
hide = $.hasClass @, 'hide-announcement'
text = PSAHiding.trim $.id 'globalMessage' text = PSAHiding.trim $.id 'globalMessage'
$.get 'hiddenPSAs', [], (item) -> $.get 'hiddenPSAs', [], (item) ->
{hiddenPSAs} = item {hiddenPSAs} = item
if hide hiddenPSAs.push text
hiddenPSAs.push text
else
i = hiddenPSAs.indexOf text
hiddenPSAs.splice i, 1
hiddenPSAs = hiddenPSAs[-5..] hiddenPSAs = hiddenPSAs[-5..]
PSAHiding.sync hiddenPSAs PSAHiding.sync hiddenPSAs
$.set 'hiddenPSAs', hiddenPSAs $.set 'hiddenPSAs', hiddenPSAs
sync: (hiddenPSAs) -> sync: (hiddenPSAs) ->
{btn} = PSAHiding {btn} = PSAHiding
psa = $.id 'globalMessage' psa = $.id 'globalMessage'
[psa.hidden, btn.innerHTML, btn.className] = if hiddenPSAs.contains PSAHiding.trim psa if hiddenPSAs.contains PSAHiding.trim psa
[true, '<span>[&nbsp;+&nbsp;]</span>', 'show-announcement'] $.rm psa
else do Style.iconPositions
[false, '<span>[&nbsp;-&nbsp;]</span>', 'hide-announcement']
trim: (psa) -> trim: (psa) ->
psa.textContent.replace(/\W+/g, '').toLowerCase() psa.textContent.replace(/\W+/g, '').toLowerCase()
@ -3507,32 +3501,32 @@ Favicon =
unreadDead = Favicon.unreadDeadY = Favicon.unreadSFW = Favicon.unreadSFWY = Favicon.unreadNSFW = Favicon.unreadNSFWY = 'data:image/png;base64,' unreadDead = Favicon.unreadDeadY = Favicon.unreadSFW = Favicon.unreadSFWY = Favicon.unreadNSFW = Favicon.unreadNSFWY = 'data:image/png;base64,'
switch Conf['favicon'] switch Conf['favicon']
when 'ferongr' when 'ferongr'
Favicon.unreadDead += '<%= grunt.file.read("img/favicons/ferongr/unreadDead.png", {encoding: "base64"}) %>' Favicon.unreadDead += '<%= grunt.file.read("img/favicons/ferongr/unreadDead.png", {encoding: "base64"}) %>'
Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/ferongr/unreadDeadY.png", {encoding: "base64"}) %>' Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/ferongr/unreadDeadY.png", {encoding: "base64"}) %>'
Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/ferongr/unreadSFW.png", {encoding: "base64"}) %>' Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/ferongr/unreadSFW.png", {encoding: "base64"}) %>'
Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/ferongr/unreadSFWY.png", {encoding: "base64"}) %>' Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/ferongr/unreadSFWY.png", {encoding: "base64"}) %>'
Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/ferongr/unreadNSFW.png", {encoding: "base64"}) %>' Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/ferongr/unreadNSFW.png", {encoding: "base64"}) %>'
Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/ferongr/unreadNSFWY.png", {encoding: "base64"}) %>' Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/ferongr/unreadNSFWY.png", {encoding: "base64"}) %>'
when 'xat-' when 'xat-'
Favicon.unreadDead += '<%= grunt.file.read("img/favicons/xat-/unreadDead.png", {encoding: "base64"}) %>' Favicon.unreadDead += '<%= grunt.file.read("img/favicons/xat-/unreadDead.png", {encoding: "base64"}) %>'
Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/xat-/unreadDeadY.png", {encoding: "base64"}) %>' Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/xat-/unreadDeadY.png", {encoding: "base64"}) %>'
Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/xat-/unreadSFW.png", {encoding: "base64"}) %>' Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/xat-/unreadSFW.png", {encoding: "base64"}) %>'
Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/xat-/unreadSFWY.png", {encoding: "base64"}) %>' Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/xat-/unreadSFWY.png", {encoding: "base64"}) %>'
Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/xat-/unreadNSFW.png", {encoding: "base64"}) %>' Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/xat-/unreadNSFW.png", {encoding: "base64"}) %>'
Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/xat-/unreadNSFWY.png", {encoding: "base64"}) %>' Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/xat-/unreadNSFWY.png", {encoding: "base64"}) %>'
when 'Mayhem' when 'Mayhem'
Favicon.unreadDead += '<%= grunt.file.read("img/favicons/Mayhem/unreadDead.png", {encoding: "base64"}) %>' Favicon.unreadDead += '<%= grunt.file.read("img/favicons/Mayhem/unreadDead.png", {encoding: "base64"}) %>'
Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/Mayhem/unreadDeadY.png", {encoding: "base64"}) %>' Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/Mayhem/unreadDeadY.png", {encoding: "base64"}) %>'
Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/Mayhem/unreadSFW.png", {encoding: "base64"}) %>' Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/Mayhem/unreadSFW.png", {encoding: "base64"}) %>'
Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/Mayhem/unreadSFWY.png", {encoding: "base64"}) %>' Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/Mayhem/unreadSFWY.png", {encoding: "base64"}) %>'
Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/Mayhem/unreadNSFW.png", {encoding: "base64"}) %>' Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/Mayhem/unreadNSFW.png", {encoding: "base64"}) %>'
Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/Mayhem/unreadNSFWY.png", {encoding: "base64"}) %>' Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/Mayhem/unreadNSFWY.png", {encoding: "base64"}) %>'
when 'Original' when 'Original'
Favicon.unreadDead += '<%= grunt.file.read("img/favicons/Original/unreadDead.png", {encoding: "base64"}) %>' Favicon.unreadDead += '<%= grunt.file.read("img/favicons/Original/unreadDead.png", {encoding: "base64"}) %>'
Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/Original/unreadDeadY.png", {encoding: "base64"}) %>' Favicon.unreadDeadY += '<%= grunt.file.read("img/favicons/Original/unreadDeadY.png", {encoding: "base64"}) %>'
Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/Original/unreadSFW.png", {encoding: "base64"}) %>' Favicon.unreadSFW += '<%= grunt.file.read("img/favicons/Original/unreadSFW.png", {encoding: "base64"}) %>'
Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/Original/unreadSFWY.png", {encoding: "base64"}) %>' Favicon.unreadSFWY += '<%= grunt.file.read("img/favicons/Original/unreadSFWY.png", {encoding: "base64"}) %>'
Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/Original/unreadNSFW.png", {encoding: "base64"}) %>' Favicon.unreadNSFW += '<%= grunt.file.read("img/favicons/Original/unreadNSFW.png", {encoding: "base64"}) %>'
Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/Original/unreadNSFWY.png", {encoding: "base64"}) %>' Favicon.unreadNSFWY += '<%= grunt.file.read("img/favicons/Original/unreadNSFWY.png", {encoding: "base64"}) %>'
if Favicon.SFW if Favicon.SFW
Favicon.unread = Favicon.unreadSFW Favicon.unread = Favicon.unreadSFW