Jdlrobson has uploaded a new change for review.
https://gerrit.wikimedia.org/r/57553
Change subject: Move modules from MobileFrontend into ZeroRatedMobileAccess
......................................................................
Move modules from MobileFrontend into ZeroRatedMobileAccess
TODO: Make tests run (requires RL changes in MobileFrontend extension)
Change-Id: I04e0c37af78bd16754aa2fff734a02b9abf00b0f
---
M ZeroRatedMobileAccess.body.php
M ZeroRatedMobileAccess.php
A javascripts/banner.js
A stylesheets/banner.css
4 files changed, 148 insertions(+), 0 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ZeroRatedMobileAccess
refs/changes/53/57553/1
diff --git a/ZeroRatedMobileAccess.body.php b/ZeroRatedMobileAccess.body.php
index 7c575e8..9809144 100644
--- a/ZeroRatedMobileAccess.body.php
+++ b/ZeroRatedMobileAccess.body.php
@@ -49,6 +49,8 @@
* @return bool
*/
public static function onBeforePageDisplay( &$out, &$options ) {
+ $out->addModuleScripts( 'mobile.zero' );
+ $out->addModuleStyles( 'mobile.zero' );
$ext = new ExtZeroRatedMobileAccess();
return $ext->beforePageDisplayHTML( $out, $options );
}
@@ -357,6 +359,29 @@
}
/**
+ * ResourceLoaderTestModules hook handler
+ * @see
https://www.mediawiki.org/wiki/Manual:Hooks/ResourceLoaderTestModules
+ *
+ * @param array $testModules
+ * @param ResourceLoader $resourceLoader
+ * @return bool
+ */
+ public static function onResourceLoaderTestModules( array
&$testModules, ResourceLoader &$resourceLoader ) {
+ $testModules['qunit']['ext.zero.tests'] = array(
+ 'dependencies' => array(
+ 'mobile.zero'
+ ),
+ 'targets' => array( 'mobile' ),
+ 'localBasePath' => dirname( dirname( __FILE__ ) ),
+ 'remoteExtPath' => 'ZeroRatedMobileAccess',
+ 'scripts' => array(
+ 'tests/js/test_banner.js',
+ ),
+ );
+ return true;
+ }
+
+ /**
* @return Array
*/
private function mergeCarrierData() {
diff --git a/ZeroRatedMobileAccess.php b/ZeroRatedMobileAccess.php
index 11b478e..34f8cb4 100644
--- a/ZeroRatedMobileAccess.php
+++ b/ZeroRatedMobileAccess.php
@@ -40,8 +40,25 @@
$wgAutoloadClasses[$className] = $cwd . $classFilename . '.php';
}
+$localBasePath = dirname( __FILE__ );
+$remoteExtPath = 'ZeroRatedMobileAccess';
+
+$wgResourceModules['mobile.zero'] = array(
+ 'localBasePath' => $localBasePath,
+ 'remoteExtPath' => $remoteExtPath,
+ 'targets' => array( 'mobile' ),
+ 'dependencies' => array( 'mobile.startup' ),
+ 'scripts' => array(
+ 'javascripts/banner.js',
+ ),
+ 'styles' => array(
+ 'stylesheets/banner.css',
+ ),
+);
+
$wgEnableZeroRatedMobileAccessTesting = false;
+$wgHooks['ResourceLoaderTestModules'][] =
'ExtZeroRatedMobileAccess::onResourceLoaderTestModules';
$wgHooks['BeforePageDisplayMobile'][] =
'ExtZeroRatedMobileAccess::onBeforePageDisplay';
$wgHooks['GetMobileUrl'][] = 'ExtZeroRatedMobileAccess::getMobileUrl';
$wgSpecialPages['ZeroRatedMobileAccess'] = 'ZeroRatedMobileAccess';
diff --git a/javascripts/banner.js b/javascripts/banner.js
new file mode 100644
index 0000000..68eb3e5
--- /dev/null
+++ b/javascripts/banner.js
@@ -0,0 +1,48 @@
+( function( M ) {
+var m = ( function() {
+ var $ = M.jQuery;
+
+ function initBanner( banner ) {
+ var cookieNameZeroVisibility = banner.getAttribute( 'id' ),
+ settings = M.settings,
+ saveUserSetting = settings.saveUserSetting,
+ getUserSetting = settings.getUserSetting,
+ visibility,
+ dismissNotification = banner.getElementsByTagName(
'button' )[ 0 ];
+
+ if ( dismissNotification ) {
+ visibility = getUserSetting( cookieNameZeroVisibility );
+
+ if ( visibility === 'off' ) {
+ banner.style.display = 'none';
+ }
+
+ dismissNotification.onclick = function() {
+ banner.parentNode.removeChild( banner );
+ saveUserSetting( cookieNameZeroVisibility,
'off',
+ // FIXME: currently we only resort to
cookie saving for the zero rated banners to avoid cache fragmentation
+ // (this has side effect that any
banners shown on pages which do not support localStorage are not supported)
+ 'zeroRatedBannerVisibility' ===
cookieNameZeroVisibility );
+ };
+ }
+ }
+
+ function init() {
+ if ( $ ) {
+ $( '.mw-mf-banner' ).each( function() {
+ if ( $( this ).find( 'button.notify-close'
).length === 0 &&
+ !$( this ).hasClass(
'mw-mf-banner-undismissable' ) ) {
+ $( '<button class="notify-close">'
).text( '×' ).appendTo( this );
+ }
+ initBanner( this );
+ } );
+ }
+ }
+
+ return {
+ init: init,
+ initBanner: initBanner
+ };
+}() );
+M.define( 'banner', m );
+}( mw.mobileFrontend ) );
diff --git a/stylesheets/banner.css b/stylesheets/banner.css
new file mode 100644
index 0000000..90fbdb6
--- /dev/null
+++ b/stylesheets/banner.css
@@ -0,0 +1,58 @@
+/* ZERO-RATED BANNERS
+moved from beta_common.css in
+Change-Id: Ia25126d950ee87cbc76f2e91d679cdd27405ee51
+*/
+.mw-mf-banner {
+ position: relative;
+ width: 100%;
+ z-index: 99;
+ background: #F4A83D;
+ display: block;
+ border-bottom: 1px solid #D6800C;
+ font-weight: bold;
+ padding: 0;
+ text-align: center;
+ color: #735005;
+ font-family: Tahoma, sans-serif;
+}
+.mw-mf-banner .mw-mf-message,
+.mw-mf-banner button {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+.android.mw-mf-banner {
+ display: none;
+}
+html.android .android.mw-mf-banner {
+ display: block;
+}
+.mw-mf-banner a {
+ text-decoration: underline;
+ color: #735005;
+}
+.mw-mf-banner button.notify-close {
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ background-color: #FAD163;
+ margin-right: 0;
+ border: 2px solid #735005;
+}
+.mw-mf-banner p {
+ line-height: normal;
+}
+.mw-mf-banner .mw-mf-message {
+ margin: 0;
+ color: #ffffff;
+ font-weight: bold;
+ text-align: center;
+ display: block;
+}
+.mw-mf-banner.mw-mf-banner-undismissable {
+ color: #ffffff;
+ background-color: red;
+}
+.mw-mf-banner.mw-mf-banner-undismissable a {
+ text-decoration: underline;
+ color: #ffffff;
+}
--
To view, visit https://gerrit.wikimedia.org/r/57553
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I04e0c37af78bd16754aa2fff734a02b9abf00b0f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ZeroRatedMobileAccess
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits