Cicalese has uploaded a new change for review.
https://gerrit.wikimedia.org/r/277605
Change subject: removed inline JavaScript
......................................................................
removed inline JavaScript
Change-Id: I4e5a63fcc12cb81245f9b35ae6553bda4e5b4c28
---
M HierarchyBuilder_body.php
M includes/renderHierarchy.js
M includes/renderHierarchySelected.js
3 files changed, 55 insertions(+), 53 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/HierarchyBuilder
refs/changes/05/277605/1
diff --git a/HierarchyBuilder_body.php b/HierarchyBuilder_body.php
index 53bfcc1..6a4798d 100644
--- a/HierarchyBuilder_body.php
+++ b/HierarchyBuilder_body.php
@@ -852,6 +852,8 @@
return $rowsOfDepth;
}
+ private static $renderHierarchies = array();
+
/**
* Renders a wikitext formatted hierarchy on a page.
*
@@ -875,21 +877,15 @@
self::$m_hierarchy_num++;
if ( isset( $attributes[HierarchyBuilder::COLLAPSED] ) ) {
- $collapsed = htmlspecialchars(
$attributes[HierarchyBuilder::COLLAPSED] );
- if ( $collapsed === 'collapsed' ) {
- $collapsed = 'true';
- }
+ $collapsed = true;
} else {
- $collapsed = 'false';
+ $collapsed = false;
}
if ( isset( $attributes[HierarchyBuilder::NUMBERED] ) ) {
- $numbered = htmlspecialchars(
$attributes[HierarchyBuilder::NUMBERED] );
- if ( $numbered === 'numbered' ) {
- $numbered = 'true';
- }
+ $numbered = true;
} else {
- $numbered = 'false';
+ $numbered = false;
}
if ( isset( $attributes[HierarchyBuilder::TITLEICONPROPERTY] )
) {
@@ -927,19 +923,13 @@
$parser->getOutput()->addModules( 'ext.HierarchyBuilder.render'
);
- $hierarchy = strtr( $hierarchy, array( '"' => "'" ) );
-
- $script = <<<END
-mw.loader.using(['ext.HierarchyBuilder.render'], function () {
- renderHierarchy("$hierarchyName", "$hierarchy", $collapsed, $numbered);
-});
-END;
-
- global $wgOut;
- $script = Html::inlineScript( $script );
- $wgOut->addScript( $script );
-
- //return Html::element( 'div', array( 'id' => $hierarchyName )
);
+ self::$renderHierarchies[] = array(
+ 'div' => $hierarchyName,
+ 'hierarchy' => $hierarchy,
+ 'collapsed' => $collapsed,
+ 'numbered' => $numbered
+ );
+ $parser->getOutput()->addJsConfigVars(
'HierarchyBuilderRender', self::$renderHierarchies );
$output = Html::element( 'div', array( 'id' => $hierarchyName )
);
$parser->disableCache();
@@ -947,40 +937,32 @@
'noparse' => false );
}
+ private static $renderHierarchiesSelected = array();
+
public function renderHierarchySelected( $input, $attributes, $parser,
$frame ) {
$hierarchyName = 'HierarchyDiv' . self::$m_hierarchy_num;
self::$m_hierarchy_num++;
if ( isset( $attributes[HierarchyBuilder::COLLAPSED] ) ) {
- $collapsed = htmlspecialchars(
$attributes[HierarchyBuilder::COLLAPSED] );
- if ( $collapsed === 'collapsed' ) {
- $collapsed = 'true';
- }
+ $collapsed = true;
} else {
- $collapsed = 'false';
+ $collapsed = false;
}
if ( isset( $attributes[HierarchyBuilder::NUMBERED] ) ) {
- $numbered = htmlspecialchars(
$attributes[HierarchyBuilder::NUMBERED] );
- if ( $numbered === 'numbered' ) {
- $numbered = 'true';
- }
+ $numbered = true;
} else {
- $numbered = 'false';
+ $numbered = false;
}
if ( isset( $attributes[HierarchyBuilder::SELECTED] ) ) {
- $selectedPages =
- json_encode( explode( ',', urldecode(
$attributes[HierarchyBuilder::SELECTED] ) ) );
$selectedPages =
- json_encode(
- array_map(
- function ($pageName){
- return
HierarchyBuilder::getPageDisplayName( $pageName );
- },
- explode( ',', urldecode(
$attributes[HierarchyBuilder::SELECTED] ) )
- )
+ array_map(
+ function ($pageName){
+ return
HierarchyBuilder::getPageDisplayName( $pageName );
+ },
+ explode( ',', urldecode(
$attributes[HierarchyBuilder::SELECTED] ) )
);
} else {
$selectedPages = '';
@@ -1010,17 +992,14 @@
$parser->getOutput()->addModules(
'ext.HierarchyBuilder.renderSelected' );
- $hierarchy = strtr( $hierarchy, array( '"' => "'" ) );
-
- $script = <<<END
-mw.loader.using(['ext.HierarchyBuilder.renderSelected'], function () {
- renderHierarchySelected("$hierarchyName", "$hierarchy", $collapsed,
$numbered, $selectedPages);
-});
-END;
-
- global $wgOut;
- $script = Html::inlineScript( $script );
- $wgOut->addScript( $script );
+ self::$renderHierarchiesSelected[] = array(
+ 'div' => $hierarchyName,
+ 'hierarchy' => $hierarchy,
+ 'collapsed' => $collapsed,
+ 'numbered' => $numbered,
+ 'selectedPages' => $selectedPages
+ );
+ $parser->getOutput()->addJsConfigVars(
'HierarchyBuilderRenderSelected', self::$renderHierarchiesSelected );
$output = Html::element( 'div', array( 'id' => $hierarchyName )
);
diff --git a/includes/renderHierarchy.js b/includes/renderHierarchy.js
index bd2e0b0..f57bfa5 100644
--- a/includes/renderHierarchy.js
+++ b/includes/renderHierarchy.js
@@ -21,6 +21,17 @@
*/
+$( function() {
+ if ( mw.config.exists( 'HierarchyBuilderRender' ) ) {
+ var hierarchies = mw.config.get( 'HierarchyBuilderRender' );
+ for ( index in hierarchies ) {
+ var hierarchy = hierarchies[index];
+ renderHierarchy( hierarchy.div, hierarchy.hierarchy,
+ hierarchy.collapsed, hierarchy.numbered );
+ }
+ }
+});
+
( function( $ ) {
/**
* Gobal function to display a hierarchy.
diff --git a/includes/renderHierarchySelected.js
b/includes/renderHierarchySelected.js
index 142fb2e..f160b0d 100644
--- a/includes/renderHierarchySelected.js
+++ b/includes/renderHierarchySelected.js
@@ -20,6 +20,18 @@
* DEALINGS IN THE SOFTWARE.
*/
+$( function() {
+ if ( mw.config.exists( 'HierarchyBuilderRenderSelected' ) ) {
+ var hierarchies = mw.config.get(
'HierarchyBuilderRenderSelected' );
+ for ( index in hierarchies ) {
+ var hierarchy = hierarchies[index];
+ renderHierarchySelected( hierarchy.div,
hierarchy.hierarchy,
+ hierarchy.collapsed, hierarchy.numbered,
+ hierarchy.selectedPages );
+ }
+ }
+});
+
( function( $ ) {
/**
* Gobal function to display a hierarchy.
--
To view, visit https://gerrit.wikimedia.org/r/277605
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e5a63fcc12cb81245f9b35ae6553bda4e5b4c28
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/HierarchyBuilder
Gerrit-Branch: master
Gerrit-Owner: Cicalese <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits