mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-11-28 01:20:07 +00:00
Show empty language portal if HTML has been added after portal
Bug: T252800 Change-Id: Iefe0ed2728b6fd08da8f3e58edbfaae7d27d1a2d
This commit is contained in:
parent
0846c8463d
commit
4086d850e5
|
@ -346,12 +346,16 @@ class VectorTemplate extends BaseTemplate {
|
|||
case 'LANGUAGES':
|
||||
// @phan-suppress-next-line PhanUndeclaredMethod
|
||||
$languages = $skin->getLanguages();
|
||||
if ( count( $languages ) ) {
|
||||
$props[] = $this->getMenuData(
|
||||
$portal = $this->getMenuData(
|
||||
'lang',
|
||||
$languages,
|
||||
self::MENU_TYPE_PORTAL
|
||||
);
|
||||
// The language portal will be added provided either
|
||||
// languages exist or there is a value in html-after-portal
|
||||
// for example to show the add language wikidata link (T252800)
|
||||
if ( count( $languages ) || $portal['html-after-portal'] ) {
|
||||
$props[] = $portal;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -445,7 +449,6 @@ class VectorTemplate extends BaseTemplate {
|
|||
array $options = [],
|
||||
bool $setLabelToSelected = false
|
||||
) : array {
|
||||
$class = ( count( $urls ) == 0 ) ? 'vector-menu-empty emptyPortlet' : '';
|
||||
$extraClasses = [
|
||||
self::MENU_TYPE_DROPDOWN => 'vector-menu vector-menu-dropdown vectorMenu',
|
||||
self::MENU_TYPE_TABS => 'vector-menu vector-menu-tabs vectorTabs',
|
||||
|
@ -459,7 +462,6 @@ class VectorTemplate extends BaseTemplate {
|
|||
$msgObj = $this->msg( self::MENU_LABEL_KEYS[ $label ] ?? $label );
|
||||
$props = [
|
||||
'id' => "p-$label",
|
||||
'class' => trim( "$class $extraClasses[$type]" ),
|
||||
'label-id' => "p-{$label}-label",
|
||||
// If no message exists fallback to plain text (T252727)
|
||||
'label' => $msgObj->exists() ? $msgObj->text() : $label,
|
||||
|
@ -482,6 +484,11 @@ class VectorTemplate extends BaseTemplate {
|
|||
}
|
||||
|
||||
$props['html-after-portal'] = $isPortal ? $this->getAfterPortlet( $label ) : '';
|
||||
|
||||
// Mark the portal as empty if it has no content
|
||||
$class = ( count( $urls ) == 0 && !$props['html-after-portal'] )
|
||||
? 'vector-menu-empty emptyPortlet' : '';
|
||||
$props['class'] = trim( "$class $extraClasses[$type]" );
|
||||
return $props;
|
||||
}
|
||||
|
||||
|
|
|
@ -154,15 +154,14 @@ class VectorTemplateTest extends MediaWikiIntegrationTestCase {
|
|||
|
||||
$this->assertSame( $views, [
|
||||
'id' => 'p-views',
|
||||
'class' => 'vector-menu-empty emptyPortlet vector-menu vector-menu-tabs vectorTabs',
|
||||
'label-id' => 'p-views-label',
|
||||
'label' => 'Views',
|
||||
'html-userlangattributes' => $langAttrs,
|
||||
'html-items' => '',
|
||||
'class' => 'vector-menu-empty emptyPortlet vector-menu vector-menu-tabs vectorTabs',
|
||||
'is-dropdown' => false,
|
||||
'html-tooltip' => '',
|
||||
'html-after-portal' => ''
|
||||
'html-after-portal' => '',
|
||||
'class' => 'vector-menu-empty emptyPortlet vector-menu vector-menu-tabs vectorTabs',
|
||||
] );
|
||||
|
||||
$variants = $props['data-variants'];
|
||||
|
|
Loading…
Reference in a new issue