Drop wgVectorResponsive support from modern Vector

Move the body of enableResponsiveMode method into the onBeforePageDisplayMobile hook.
Replace BeforePageDisplayMobile hook with BeforePageDisplay hook.

Bug: T254378
Change-Id: I63da1b67bf2b85c644e4af196bf894efc4797433
This commit is contained in:
Vas Jaremchuk 2020-06-12 15:31:08 +03:00 committed by Peter Ovchyn
parent 13ba8ebe6a
commit 1874e40d87
4 changed files with 26 additions and 33 deletions

1
.gitignore vendored
View File

@ -44,3 +44,4 @@ Thumbs.db
# storybook # storybook
/.storybook/resolve-less-imports/ /.storybook/resolve-less-imports/
/.storybook/integration.less /.storybook/integration.less
.vscode

View File

@ -2,6 +2,7 @@
namespace Vector; namespace Vector;
use ExtensionRegistry;
use HTMLForm; use HTMLForm;
use MediaWiki\MediaWikiServices; use MediaWiki\MediaWikiServices;
use OutputPage; use OutputPage;
@ -21,16 +22,33 @@ class Hooks {
/** /**
* BeforePageDisplayMobile hook handler * BeforePageDisplayMobile hook handler
* *
* Make Vector responsive when operating in mobile mode (useformat=mobile) * Make Legacy Vector responsive when $wgVectorResponsive = true
* *
* @see https://www.mediawiki.org/wiki/Extension:MobileFrontend/BeforePageDisplayMobile * @see https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay
* @param OutputPage $out * @param OutputPage $out
* @param SkinTemplate $sk * @param SkinTemplate $sk
*/ */
public static function onBeforePageDisplayMobile( OutputPage $out, $sk ) { public static function onBeforePageDisplay( OutputPage $out, $sk ) {
// This makes Vector behave in responsive mode when MobileFrontend is installed if ( !$sk instanceof SkinVector ) {
if ( $sk instanceof SkinVector ) { return;
$sk->enableResponsiveMode(); }
$skinVersionLookup = new SkinVersionLookup(
$out->getRequest(), $sk->getUser(), self::getServiceConfig()
);
$mobile = false;
if ( ExtensionRegistry::getInstance()->isLoaded( 'MobileFrontend' ) ) {
$mobFrontContext = MediaWikiServices::getInstance()->getService( 'MobileFrontend.Context' );
$mobile = $mobFrontContext->shouldDisplayMobileView();
}
if ( $skinVersionLookup->isLegacy()
&& ( $mobile || $sk->getConfig()->get( 'VectorResponsive' ) )
) {
$out->addMeta( 'viewport', 'width=device-width, initial-scale=1' );
$out->addModuleStyles( 'skins.vector.styles.responsive' );
} }
} }

View File

@ -37,32 +37,6 @@ class SkinVector extends SkinTemplate {
public $stylename = 'Vector'; public $stylename = 'Vector';
public $template = 'VectorTemplate'; public $template = 'VectorTemplate';
private $responsiveMode = false;
/**
* Enables the responsive mode
*/
public function enableResponsiveMode() {
if ( !$this->responsiveMode ) {
$out = $this->getOutput();
$out->addMeta( 'viewport', 'width=device-width, initial-scale=1' );
$out->addModuleStyles( 'skins.vector.styles.responsive' );
$this->responsiveMode = true;
}
}
/**
* Initializes output page and sets up skin-specific parameters
* @param OutputPage $out Object to initialize
*/
public function initPage( OutputPage $out ) {
parent::initPage( $out );
if ( $this->getConfig()->get( 'VectorResponsive' ) ) {
$this->enableResponsiveMode();
}
}
/** /**
* @inheritDoc * @inheritDoc
* @return array * @return array

View File

@ -32,7 +32,7 @@
"vector": "GlobalVarConfig::newInstance" "vector": "GlobalVarConfig::newInstance"
}, },
"Hooks": { "Hooks": {
"BeforePageDisplayMobile": "Vector\\Hooks::onBeforePageDisplayMobile", "BeforePageDisplay": "Vector\\Hooks::onBeforePageDisplay",
"GetPreferences": "Vector\\Hooks::onGetPreferences", "GetPreferences": "Vector\\Hooks::onGetPreferences",
"PreferencesFormPreSave": "Vector\\Hooks::onPreferencesFormPreSave", "PreferencesFormPreSave": "Vector\\Hooks::onPreferencesFormPreSave",
"SkinTemplateNavigation": "Vector\\Hooks::onSkinTemplateNavigation", "SkinTemplateNavigation": "Vector\\Hooks::onSkinTemplateNavigation",