Jdlrobson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/213990

Change subject: Save 5.3k whenever a campaign is not running
......................................................................

Save 5.3k whenever a campaign is not running

Only load banner code when a campaign is running

Changes:
* Make use of mw.config to pass data between server and client
* Conditionally load code when in test banner mode or campaign mode.

Change-Id: I503a3a9f6785fe8aaaf9abb04344d09175ca3ee2
---
M CentralNotice.modules.php
M includes/CNBannerChoiceDataResourceLoaderModule.php
D modules/ext.centralNotice.banner.init/init.js
M modules/ext.centralNotice.bannerController/bannerController.lib.js
A modules/ext.centralNotice.bannerController/init.js
5 files changed, 24 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CentralNotice 
refs/changes/90/213990/1

diff --git a/CentralNotice.modules.php b/CentralNotice.modules.php
index ed1a222..f770f4d 100644
--- a/CentralNotice.modules.php
+++ b/CentralNotice.modules.php
@@ -115,24 +115,31 @@
        'remoteExtPath' => 'CentralNotice/modules',
        'scripts'       => 'ext.centralNotice.bannerStats/bannerStats.js',
 );
-$wgResourceModules[ 'ext.centralNotice.bannerController' ] = array(
+$wgResourceModules[ 'ext.centralNotice.bannerLoader' ] = array(
        'localBasePath' => $dir . '/modules/ext.centralNotice.bannerController',
        'remoteExtPath' => 
'CentralNotice/modules/ext.centralNotice.bannerController',
        'styles'        => 'bannerController.css',
        'scripts'       => 'bannerController.js',
-       'position'      => 'top',
        'dependencies'  => array(
                'jquery.cookie',
                'json',
                'mediawiki.Uri',
-               'ext.centralNotice.bannerChoiceData',
                'ext.centralNotice.bannerController.lib',
+       ),
+);
+$wgResourceModules[ 'ext.centralNotice.bannerController' ] = array(
+       'localBasePath' => $dir . '/modules/ext.centralNotice.bannerController',
+       'remoteExtPath' => 
'CentralNotice/modules/ext.centralNotice.bannerController',
+       'position'      => 'top',
+       'scripts'       => 'init.js',
+       'dependencies'  => array(
+               'mediawiki.Uri',
+               'ext.centralNotice.bannerChoiceData',
        ),
 );
 $wgResourceModules[ 'ext.centralNotice.bannerChoiceData' ] = array(
        // The following settings are brought in via this PHP class:
        // 'position' => 'top',
-       // 'dependencies' => array( 'ext.centralNotice.bannerController.lib' )
        // 'targets' => array( 'desktop', 'mobile' ),
        'class'         => 'CNBannerChoiceDataResourceLoaderModule'
 );
diff --git a/includes/CNBannerChoiceDataResourceLoaderModule.php 
b/includes/CNBannerChoiceDataResourceLoaderModule.php
index a86df39..f0e38c0 100644
--- a/includes/CNBannerChoiceDataResourceLoaderModule.php
+++ b/includes/CNBannerChoiceDataResourceLoaderModule.php
@@ -110,8 +110,11 @@
         * @see ResourceLoaderModule::getScript()
         */
        public function getScript( ResourceLoaderContext $context ) {
-               return Xml::encodeJsCall( 
'mw.cnBannerControllerLib.setChoiceData',
-                               array( $this->getChoices( $context ) ) );
+               return Xml::encodeJsCall( 'mw.config.set', array(
+                               'wgCentralNoticeChoices',
+                               $this->getChoices( $context )
+                       )
+               );
        }
 
        /**
@@ -119,13 +122,6 @@
         */
        public function getPosition() {
                return 'top';
-       }
-
-       /**
-        * @see ResourceLoaderModule::getDependencies()
-        */
-       public function getDependencies() {
-               return array( 'ext.centralNotice.bannerController.lib' );
        }
 
        /**
diff --git a/modules/ext.centralNotice.banner.init/init.js 
b/modules/ext.centralNotice.banner.init/init.js
deleted file mode 100644
index e69de29..0000000
--- a/modules/ext.centralNotice.banner.init/init.js
+++ /dev/null
diff --git a/modules/ext.centralNotice.bannerController/bannerController.lib.js 
b/modules/ext.centralNotice.bannerController/bannerController.lib.js
index 29e150c..972048a 100644
--- a/modules/ext.centralNotice.bannerController/bannerController.lib.js
+++ b/modules/ext.centralNotice.bannerController/bannerController.lib.js
@@ -49,7 +49,7 @@
                 */
                CAMPAIGN_STALENESS_LEEWAY: 15,
 
-               choiceData: null,
+               choiceData: mw.config.get( 'wgCentralNoticeChoices' ) || null,
 
                /**
                 * Once a campaign is chosen, this will receive a copy of the 
data for
@@ -59,14 +59,6 @@
                campaign: null,
                bucketsByCampaign: null,
                possibleBanners: null,
-
-               /**
-                * Set possible campaign and banner choices. Called by
-                * ext.centralNotice.bannerChoices.
-                */
-               setChoiceData: function( choiceData ) {
-                       this.choiceData = choiceData;
-               },
 
                /**
                 * Has choiceData been set?
diff --git a/modules/ext.centralNotice.bannerController/init.js 
b/modules/ext.centralNotice.bannerController/init.js
new file mode 100644
index 0000000..5566848
--- /dev/null
+++ b/modules/ext.centralNotice.bannerController/init.js
@@ -0,0 +1,7 @@
+// Decide whether code for rendering banners needs to be pulled in
+( function () {
+       var choices = mw.config.get( 'wgCentralNoticeChoices' ) || [];
+       if ( choices.length || mw.util.getParamValue( 'banner' ) ) {
+               mw.loader.load( 'ext.centralNotice.bannerLoader' );
+       }
+} () );

-- 
To view, visit https://gerrit.wikimedia.org/r/213990
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I503a3a9f6785fe8aaaf9abb04344d09175ca3ee2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to