Catch errors due to "Restricted" selection. #2905
This commit is contained in:
parent
19268975ea
commit
2a47dfd8ba
@ -295,35 +295,36 @@ QR =
|
|||||||
postRange.selectNode root
|
postRange.selectNode root
|
||||||
text = if post.board.ID is g.BOARD.ID then ">>#{post}\n" else ">>>/#{post.board}/#{post}\n"
|
text = if post.board.ID is g.BOARD.ID then ">>#{post}\n" else ">>>/#{post.board}/#{post}\n"
|
||||||
for i in [0...sel.rangeCount]
|
for i in [0...sel.rangeCount]
|
||||||
range = sel.getRangeAt i
|
try
|
||||||
# Trim range to be fully inside post
|
range = sel.getRangeAt i
|
||||||
if range.compareBoundaryPoints(Range.START_TO_START, postRange) < 0
|
# Trim range to be fully inside post
|
||||||
range.setStartBefore root
|
if range.compareBoundaryPoints(Range.START_TO_START, postRange) < 0
|
||||||
if range.compareBoundaryPoints(Range.END_TO_END, postRange) > 0
|
range.setStartBefore root
|
||||||
range.setEndAfter root
|
if range.compareBoundaryPoints(Range.END_TO_END, postRange) > 0
|
||||||
|
range.setEndAfter root
|
||||||
|
|
||||||
continue unless range.toString().trim()
|
continue unless range.toString().trim()
|
||||||
|
|
||||||
frag = range.cloneContents()
|
frag = range.cloneContents()
|
||||||
ancestor = range.commonAncestorContainer
|
ancestor = range.commonAncestorContainer
|
||||||
# Quoting the insides of a spoiler/code tag.
|
# Quoting the insides of a spoiler/code tag.
|
||||||
if $.x 'ancestor-or-self::*[self::s or contains(@class,"removed-spoiler")]', ancestor
|
if $.x 'ancestor-or-self::*[self::s or contains(@class,"removed-spoiler")]', ancestor
|
||||||
$.prepend frag, $.tn '[spoiler]'
|
$.prepend frag, $.tn '[spoiler]'
|
||||||
$.add frag, $.tn '[/spoiler]'
|
$.add frag, $.tn '[/spoiler]'
|
||||||
if insideCode = $.x 'ancestor-or-self::pre[contains(@class,"prettyprint")]', ancestor
|
if insideCode = $.x 'ancestor-or-self::pre[contains(@class,"prettyprint")]', ancestor
|
||||||
$.prepend frag, $.tn '[code]'
|
$.prepend frag, $.tn '[code]'
|
||||||
$.add frag, $.tn '[/code]'
|
$.add frag, $.tn '[/code]'
|
||||||
for node in $$ (if insideCode then 'br' else '.prettyprint br'), frag
|
for node in $$ (if insideCode then 'br' else '.prettyprint br'), frag
|
||||||
$.replace node, $.tn '\n'
|
$.replace node, $.tn '\n'
|
||||||
for node in $$ 'br', frag
|
for node in $$ 'br', frag
|
||||||
$.replace node, $.tn '\n>' unless node is frag.lastChild
|
$.replace node, $.tn '\n>' unless node is frag.lastChild
|
||||||
g.SITE.insertTags?(frag)
|
g.SITE.insertTags?(frag)
|
||||||
for node in $$ '.linkify[data-original]', frag
|
for node in $$ '.linkify[data-original]', frag
|
||||||
$.replace node, $.tn node.dataset.original
|
$.replace node, $.tn node.dataset.original
|
||||||
for node in $$ '.embedder', frag
|
for node in $$ '.embedder', frag
|
||||||
$.rm node.previousSibling if node.previousSibling?.nodeValue is ' '
|
$.rm node.previousSibling if node.previousSibling?.nodeValue is ' '
|
||||||
$.rm node
|
$.rm node
|
||||||
text += ">#{frag.textContent.trim()}\n"
|
text += ">#{frag.textContent.trim()}\n"
|
||||||
|
|
||||||
QR.openPost()
|
QR.openPost()
|
||||||
{com, thread} = QR.nodes
|
{com, thread} = QR.nodes
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user