Put highlighted OPs on top of board pages.

This commit is contained in:
Nicolas Stepien 2012-02-21 06:01:43 +01:00
parent e7d1b1b5a8
commit b0d8e84926
3 changed files with 20 additions and 7 deletions

View File

@ -565,10 +565,17 @@
}, },
createFilter: function(regexp, op, hl) { createFilter: function(regexp, op, hl) {
return function(root, value, isOP) { return function(root, value, isOP) {
var firstThread, thisThread;
if (isOP && op === 'no' || !isOP && op === 'only') return false; if (isOP && op === 'no' || !isOP && op === 'only') return false;
if (!regexp.test(value)) return false; if (!regexp.test(value)) return false;
if (hl) { if (hl) {
$.addClass(root, hl); $.addClass(root, hl);
if (isOP && !g.REPLY) {
thisThread = root.parentNode;
if (firstThread = $('div[class=op]')) {
$.before(firstThread.parentNode, [thisThread, thisThread.nextElementSibling]);
}
}
} else if (isOP) { } else if (isOP) {
if (!g.REPLY) threadHiding.hideHide(root.parentNode); if (!g.REPLY) threadHiding.hideHide(root.parentNode);
} else { } else {
@ -2114,10 +2121,10 @@
Use <a href=https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions>regular expressions</a>, one per line.<br>\ Use <a href=https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions>regular expressions</a>, one per line.<br>\
Lines starting with a <code>#</code> will be ignored.<br>\ Lines starting with a <code>#</code> will be ignored.<br>\
For example, <code>/weeaboo/i</code> will filter posts containing `weeaboo` case-insensitive.\ For example, <code>/weeaboo/i</code> will filter posts containing `weeaboo` case-insensitive.\
<ul>You can use these settings with each regular expression, separate them with semi-colons:\ <ul>You can use these settings with each regular expression, separate them with semicolons:\
<li>Per boards, separate them with commas. It is global if not specified.<br>For example: <code>boards:a,jp;</code>.</li>\ <li>Per boards, separate them with commas. It is global if not specified.<br>For example: <code>boards:a,jp;</code>.</li>\
<li>Filter OP along with their threads only (`only`), replies only (`no`, this is default), or both (`yes`).<br>For example: <code>op:only;</code>, <code>op:no;</code> or <code>op:yes;</code>.</li>\ <li>Filter OPs only along with their threads (`only`), replies only (`no`, this is default), or both (`yes`).<br>For example: <code>op:only;</code>, <code>op:no;</code> or <code>op:yes;</code>.</li>\
<li>Highlight instead of hiding. You can specify a class name to use with a userstyle.<br>For example: <code>highlight;</code> or <code>hightlight:wallpaper;</code>.</li>\ <li>Highlight instead of hiding. Highlighted OPs will have their threads put on top of board pages. You can specify a class name to use with a userstyle.<br>For example: <code>highlight;</code> or <code>hightlight:wallpaper;</code>.</li>\
</ul>\ </ul>\
<p>Name:<br><textarea name=name></textarea></p>\ <p>Name:<br><textarea name=name></textarea></p>\
<p>Tripcode:<br><textarea name=tripcode></textarea></p>\ <p>Tripcode:<br><textarea name=tripcode></textarea></p>\

View File

@ -1,9 +1,9 @@
master master
- Mayhem - Mayhem
The Filter now has per filter settings: The Filter now has per filter settings:
- Filter the OP along its thread, replies only, or both. - Filter the OP only along its thread, replies only, or both.
- Per boards, or global. - Per boards, or global.
- Highlight, or hide. - Highlight, or hide. Highlighted OPs will have their threads put on top of the board page.
New filter group: Image dimensions. New filter group: Image dimensions.
Fix posting on Safari. Fix posting on Safari.
Fix rare case where the QR would not accept certain image types. Fix rare case where the QR would not accept certain image types.

View File

@ -485,6 +485,12 @@ filter =
return false return false
if hl if hl
$.addClass root, hl $.addClass root, hl
if isOP and not g.REPLY
# Put the highlighted OPs' threads on top of the board pages...
thisThread = root.parentNode
# ...before the first non highlighted thread.
if firstThread = $ 'div[class=op]'
$.before firstThread.parentNode, [thisThread, thisThread.nextElementSibling]
else if isOP else if isOP
unless g.REPLY unless g.REPLY
threadHiding.hideHide root.parentNode threadHiding.hideHide root.parentNode
@ -1710,8 +1716,8 @@ options =
For example, <code>/weeaboo/i</code> will filter posts containing `weeaboo` case-insensitive. For example, <code>/weeaboo/i</code> will filter posts containing `weeaboo` case-insensitive.
<ul>You can use these settings with each regular expression, separate them with semicolons: <ul>You can use these settings with each regular expression, separate them with semicolons:
<li>Per boards, separate them with commas. It is global if not specified.<br>For example: <code>boards:a,jp;</code>.</li> <li>Per boards, separate them with commas. It is global if not specified.<br>For example: <code>boards:a,jp;</code>.</li>
<li>Filter OPs along with their threads only (`only`), replies only (`no`, this is default), or both (`yes`).<br>For example: <code>op:only;</code>, <code>op:no;</code> or <code>op:yes;</code>.</li> <li>Filter OPs only along with their threads (`only`), replies only (`no`, this is default), or both (`yes`).<br>For example: <code>op:only;</code>, <code>op:no;</code> or <code>op:yes;</code>.</li>
<li>Highlight instead of hiding. You can specify a class name to use with a userstyle.<br>For example: <code>highlight;</code> or <code>hightlight:wallpaper;</code>.</li> <li>Highlight instead of hiding. Highlighted OPs will have their threads put on top of board pages. You can specify a class name to use with a userstyle.<br>For example: <code>highlight;</code> or <code>hightlight:wallpaper;</code>.</li>
</ul> </ul>
<p>Name:<br><textarea name=name></textarea></p> <p>Name:<br><textarea name=name></textarea></p>
<p>Tripcode:<br><textarea name=tripcode></textarea></p> <p>Tripcode:<br><textarea name=tripcode></textarea></p>