MarkTraceur has uploaded a new change for review. https://gerrit.wikimedia.org/r/92602
Change subject: Fix up whitelistHtml
......................................................................
Fix up whitelistHtml
There were a few nasty things going on here, but it looks fixed up, and
probably a mite faster too!
Thanks so much for the review, Krinkle.
Change-Id: I630a1ad625abb803e31c7e7dd2cb4f4386d52607
---
M js/ext.multimediaViewer.js
1 file changed, 30 insertions(+), 30 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MultimediaViewer
refs/changes/02/92602/1
diff --git a/js/ext.multimediaViewer.js b/js/ext.multimediaViewer.js
index 2c39791..bc2d255 100755
--- a/js/ext.multimediaViewer.js
+++ b/js/ext.multimediaViewer.js
@@ -96,39 +96,43 @@
viewer.fetchImageInfo( fileTitle, function (
imageInfo ) {
function whitelistHtml( $ele ) {
+ var $children, $wlEle;
+
function test( $ele ) {
- return $ele.jquery && (
- $ele.is( 'a' )
||
- false
- );
+ return $ele.is( 'a' );
}
- var $children,
- whitelisted = '';
+ if ( $ele ) {
+ if ( $ele.jquery &&
$ele ) {
+ $children =
$ele.contents();
+ } else if (
$ele.textContent ) {
+ return
mw.html.escape( $ele.textContent );
+ } else {
+ return $ele;
+ }
- if ( $ele && $ele.jquery &&
$ele.contents ) {
- $children =
$ele.contents();
- } else if ( $ele &&
$ele.textContent ) {
- return $ele.textContent;
- } else if ( $ele ) {
- return $ele;
+ $wlEle =
$ele.clone().empty();
+ } else {
+ return;
}
if ( !$children ||
$children.length === 0 ) {
- return $ele.text();
+ return mw.html.escape(
$ele.text() );
}
$children.each( function ( i,
ele ) {
- var $ele = $( ele );
+ var $innerEle = $( ele
);
- if ( test( $ele ) ===
true ) {
- whitelisted +=
$ele.html( whitelistHtml( $ele ) ).get( 0 ).outerHTML;
+ if ( test( $innerEle )
=== true ) {
+ $wlEle.append(
whitelistHtml( $innerEle ) );
+ } else if (
$innerEle.jquery ) {
+ $wlEle.append(
whitelistHtml( $( '<span>' ).append( $innerEle.contents() ) ) );
} else {
- whitelisted +=
'<span>' + whitelistHtml( $ele ) + '</span>';
+ $wlEle.append(
$innerEle );
}
} );
- return whitelisted;
+ return $wlEle;
}
function setUserpageLink( username,
gender ) {
@@ -219,8 +223,8 @@
if ( desc ) {
desc = desc.value;
- ui.$imageDesc.html(
- whitelistHtml(
$( desc ) )
+
ui.$imageDesc.empty().append(
+ whitelistHtml(
$.parseHTML( desc ) )
);
}
@@ -251,21 +255,17 @@
if ( source ) {
source = source.value;
- ui.$source.html( source
);
+
ui.$source.empty().append(
+ whitelistHtml(
$.parseHTML( source ) )
+ );
}
if ( author ) {
author = author.value;
- ui.$author.html( author
);
+
ui.$author.empty().append(
+ whitelistHtml(
$.parseHTML( author ) )
+ );
}
-
- ui.$author.html(
- whitelistHtml(
ui.$author )
- );
-
- ui.$source.html(
- whitelistHtml(
ui.$source )
- );
if ( source && author ) {
ui.$credit.html(
--
To view, visit https://gerrit.wikimedia.org/r/92602
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I630a1ad625abb803e31c7e7dd2cb4f4386d52607
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
