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

Reply via email to