MaxSem has submitted this change and it was merged.

Change subject: Move header to generic MinervaTemplate
......................................................................


Move header to generic MinervaTemplate

Slight modifications to handling of special page headers to store
them in one template variable. This makes a few html changes to the
special page making it more consistent with the normal page skin

Ensure watch star doesn't initiate on special pages

Change-Id: I95d3cdacb6c07744541f0a0d5d04d2b976dcf22b
---
M includes/skins/MinervaTemplate.php
M includes/skins/SkinMobile.php
M includes/skins/SkinMobileTemplate.php
M javascripts/modules/mf-watchstar.js
4 files changed, 78 insertions(+), 44 deletions(-)

Approvals:
  MaxSem: Verified; Looks good to me, approved
  awjrichards: Verified; Looks good to me, but someone else must approve



diff --git a/includes/skins/MinervaTemplate.php 
b/includes/skins/MinervaTemplate.php
index 663e417..f6d9451 100644
--- a/includes/skins/MinervaTemplate.php
+++ b/includes/skins/MinervaTemplate.php
@@ -1,6 +1,29 @@
 <?php
 class MinervaTemplate extends BaseTemplate {
+       public function getSearchPlaceholderText() {
+               return wfMessage( 'mobile-frontend-placeholder' )->escaped();
+       }
+
        private function prepareCommonData() {
+               $searchBox = $this->makeSearchInput(
+                       array(
+                               'id' => 'searchInput',
+                               'class' => 'search',
+                               'autocomplete' => 'off',
+                               'placeholder' => 
$this->getSearchPlaceholderText(),
+                       )
+               );
+               $script = $this->data['wgScript'];
+               $searchButton = $this->makeSearchButton( 'go', array( 'class' 
=> 'searchSubmit' ) );
+               $header = <<<HTML
+<form action="{$script}" class="search-box">
+       <div class="divclearable">
+               {$searchBox}
+               {$searchButton}
+       </div>
+</form>
+HTML;
+               $this->set( 'header', $header );
 
                // menu button
                $url = SpecialPage::getTitleFor( 'MobileMenu' )->getLocalUrl() 
. '#mw-mf-page-left';
@@ -13,7 +36,8 @@
                );
        }
 
-       public function prepareData() { // expects to be overriden
+       public function prepareData() {
+               $this->set( 'isSpecialPage', Title::newFromText( $this->data[ 
'title' ] )->isSpecialPage() );
        }
 
        private function prepareBannerData() {
@@ -93,5 +117,15 @@
                                <!-- start -->
                                <?php
                                        echo $this->html( 'banners' );
+                               ?>
+                               <div class="header">
+                               <?php
+                                       echo $this->html( 'menuButton' );
+                                       echo $this->html( 'header' );
+                               ?>
+                                       <ul id="mw-mf-menu-page">
+                                       </ul>
+                               </div>
+               <?php
        }
 }
diff --git a/includes/skins/SkinMobile.php b/includes/skins/SkinMobile.php
index 750898b..dd7d8ef 100644
--- a/includes/skins/SkinMobile.php
+++ b/includes/skins/SkinMobile.php
@@ -16,10 +16,10 @@
                $tpl->set( 'title', $title );
                $tpl->set( 'user', $user );
                $context = MobileContext::singleton();
-
-               $device = $context->getDevice();
                $inBeta = $context->isBetaGroupMember();
                $inAlpha = $context->isAlphaGroupMember();
+
+               $device = $context->getDevice();
 
                $tpl->set( 'action', $context->getRequest()->getText( 'action' 
) );
                $tpl->set( 'isAlphaGroupMember', $inAlpha );
@@ -193,13 +193,15 @@
                }
 
                $htmlHeader = $this->getOutput()->getProperty( 
'mobile.htmlHeader' );
-               if ( !$htmlHeader && $isSpecialPage ) {
-                       $htmlHeader = Html::element( 'h1', array(), 
$pageHeading );
+               if ( $isSpecialPage ) {
+                       if ( !$htmlHeader ) {
+                               $htmlHeader = Html::element( 'h1', array(), 
$pageHeading );
+                       }
+                       $tpl->set( 'specialPageHeader', $htmlHeader );
                }
 
                $tpl->set( 'prebodytext', $preBodyText );
                $tpl->set( 'postbodytext', $postBodyText );
-               $tpl->set( 'htmlHeader', $htmlHeader );
        }
 
        /**
diff --git a/includes/skins/SkinMobileTemplate.php 
b/includes/skins/SkinMobileTemplate.php
index 666e9f9..6927a98 100644
--- a/includes/skins/SkinMobileTemplate.php
+++ b/includes/skins/SkinMobileTemplate.php
@@ -1,6 +1,35 @@
 <?php
 
 class SkinMobileTemplate extends MinervaTemplate {
+       public function getMode() {
+               $context = MobileContext::singleton();
+               if ( $context->isAlphaGroupMember() ) {
+                       return 'alpha';
+               } else if ( $context->isBetaGroupMember() ) {
+                       return 'beta';
+               } else {
+                       return 'stable';
+               }
+       }
+
+       public function getSearchPlaceholderText() {
+               $mode = $this->getMode();
+               if ( $mode === 'alpha' ) {
+                       return wfMessage( 'mobile-frontend-placeholder-alpha' 
)->escaped();
+               } else if ( $mode === 'beta' ) {
+                       return wfMessage( 'mobile-frontend-placeholder-beta' 
)->escaped();
+               } else {
+                       return wfMessage( 'mobile-frontend-placeholder' 
)->escaped();
+               }
+       }
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               parent::__construct();
+       }
+
        public function renderArticleSkin() {
                $languages = $this->getLanguages();
                $variants = $this->getLanguageVariants();
@@ -12,7 +41,6 @@
                        'variantSummary' => count( $variants ) > 1 ? wfMessage( 
'mobile-frontend-language-variant-header' )->text() : '',
                );
                ?>
-               <?php $this->renderArticleHeader() ?>
        <div class='show' id='content_wrapper'>
                        <div id="content" class="content">
                        <?php
@@ -29,17 +57,6 @@
                } ?>
                <?php
                        $this->navigationEnd();
-       }
-
-       public function renderArticleHeader() {
-               echo '<div class="header">';
-               if ( $this->data['htmlHeader'] ) {
-                       $this->html( 'menuButton' );
-                       echo $this->data['htmlHeader'];
-               } else {
-                       $this->searchBox();
-               }
-               echo '</div>';
        }
 
        public function execute() {
@@ -61,36 +78,16 @@
        public function prepareData() {
                global $wgExtensionAssetsPath,
                        $wgMobileFrontendLogo;
+               $data = $this->data;
 
                wfProfileIn( __METHOD__ );
                $this->setRef( 'wgExtensionAssetsPath', $wgExtensionAssetsPath 
);
                $this->set( 'wgMobileFrontendLogo', $wgMobileFrontendLogo );
 
-               wfProfileOut( __METHOD__ );
-       }
-
-       private function searchBox() {
-               if ( $this->data['isAlphaGroupMember'] ) {
-                       $placeholder = wfMessage( 
'mobile-frontend-placeholder-alpha' )->text();
-               } else if ( $this->data['isBetaGroupMember'] ) {
-                       $placeholder = wfMessage( 
'mobile-frontend-placeholder-beta' )->text();
-               } else {
-                       $placeholder = wfMessage( 'mobile-frontend-placeholder' 
)->text();
+               if ( isset( $data['specialPageHeader'] ) ) {
+                       $this->set( 'header', $data['specialPageHeader'] );
                }
-               ?>
-               <?php $this->html( 'menuButton' ) ?>
-               <form id="mw-mf-searchForm" action="<?php $this->text( 
'wgScript' ) ?>" class="search-box" method="get">
-                       <input type="hidden" value="Special:Search" 
name="title" />
-                       <div id="mw-mf-sq" class="divclearable">
-                               <input type="search" name="search" 
id="searchInput" size="22" value="<?php $this->text( 'searchField' )
-                                       ?>" autocomplete="off" maxlength="1024" 
class="search"
-                                       placeholder="<?php echo $placeholder ?>"
-                                       />
-                               <input class='searchSubmit' type="submit" 
value="<?php $this->msg( 'mobile-frontend-search-submit' ) ?>">
-                       </div>
-               </form>
-               <ul id="mw-mf-menu-page"></ul>
-               <?php
+               wfProfileOut( __METHOD__ );
        }
 
        private function footer() {
diff --git a/javascripts/modules/mf-watchstar.js 
b/javascripts/modules/mf-watchstar.js
index d46e1c8..99a8af3 100644
--- a/javascripts/modules/mf-watchstar.js
+++ b/javascripts/modules/mf-watchstar.js
@@ -222,11 +222,12 @@
        }
 
        function init( container, title ) {
-               var pageTitle = mw.config.get( 'wgTitle' );
+               var pageTitle = mw.config.get( 'wgTitle' ),
+                       isSpecialPage = mw.config.get( 'wgNamespaceNumber' ) 
=== mw.config.get( 'wgNamespaceIds' ).special;
                container = container || $( '<li>' ).appendTo( 
nav.getPageMenu() )[ 0 ];
                title = title || pageTitle;
                // initialise on current page
-               if ( container ) {
+               if ( container && !isSpecialPage ) {
                        initWatchListIcon( container, title );
                }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I95d3cdacb6c07744541f0a0d5d04d2b976dcf22b
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: awjrichards <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to