jenkins-bot has submitted this change and it was merged.

Change subject: Structured language overlay filtering fix
......................................................................


Structured language overlay filtering fix

Correctly display the filtered variants. Don't hide variants when
hiding the parent.

Bug: T123384
Change-Id: If383095cedbf71b4107d337d1fbdbd09c06d0799
---
M resources/mobile.languages.structured/LanguageOverlay.hogan
M resources/mobile.languages.structured/LanguageOverlay.js
M tests/qunit/mobile.languages.structured/test_LanguageOverlay.js
3 files changed, 22 insertions(+), 15 deletions(-)

Approvals:
  Phuedx: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/mobile.languages.structured/LanguageOverlay.hogan 
b/resources/mobile.languages.structured/LanguageOverlay.hogan
index 25a06cd..7a0a25a 100644
--- a/resources/mobile.languages.structured/LanguageOverlay.hogan
+++ b/resources/mobile.languages.structured/LanguageOverlay.hogan
@@ -9,8 +9,8 @@
        <h3 class="list-header">{{preferredLanguagesHeader}}</h3>
        <ol class="site-link-list preferred-languages">
                {{#preferredLanguages}}
-                       <li class="{{lang}}">
-                               <a href="{{url}}" hreflang="{{lang}}" 
lang="{{lang}}">
+                       <li>
+                               <a href="{{url}}" class="{{lang}}" 
hreflang="{{lang}}" lang="{{lang}}">
                                        <div>
                                                <span 
class="lang">{{lang}}</span>
                                        </div>
@@ -30,10 +30,10 @@
        <h3 
class="list-header">{{allLanguagesHeader}}<span>{{allLanguagesCount}}</span></h3>
        <ul class="site-link-list all-languages">
                {{#allLanguages}}
-                       <li class="{{lang}}{{#hasVariants}} 
has-variants{{/hasVariants}}">
+                       <li 
{{#hasVariants}}class="has-variants"{{/hasVariants}}>
                                {{#hasVariants}}<h3 
class="list-header">{{variantsHeader}}</h3>{{/hasVariants}}
                                {{#lang}}{{! this test is important because 
variants may exist, but not the parent language }}
-                               <a href="{{url}}" hreflang="{{lang}}" 
lang="{{lang}}">
+                               <a href="{{url}}" class="{{lang}}" 
hreflang="{{lang}}" lang="{{lang}}">
                                        <div>
                                                <span 
class="lang">{{lang}}</span>
                                        </div>
@@ -48,8 +48,8 @@
                                {{#hasVariants}}
                                        <ul class="variants">
                                        {{#variants}}
-                                               <li class="{{lang}}">
-                                                       <a href="{{url}}" 
hreflang="{{lang}}" lang="{{lang}}">
+                                               <li>
+                                                       <a href="{{url}}" 
class="{{lang}}" hreflang="{{lang}}" lang="{{lang}}">
                                                                <div>
                                                                        <span 
class="lang">{{lang}}</span>
                                                                        <span 
class="variant">{{variant}}</span>
diff --git a/resources/mobile.languages.structured/LanguageOverlay.js 
b/resources/mobile.languages.structured/LanguageOverlay.js
index 915ab59..df86106 100644
--- a/resources/mobile.languages.structured/LanguageOverlay.js
+++ b/resources/mobile.languages.structured/LanguageOverlay.js
@@ -49,7 +49,7 @@
                        // cache
                        this.$searchInput = this.$( 'input.search' );
                        this.$siteLinksList = this.$( '.site-link-list' );
-                       this.$languageItems = this.$siteLinksList.find( 'li' );
+                       this.$languageItems = this.$siteLinksList.find( 'a' );
                        this.$subheaders = this.$( 'h3' );
 
                        if ( this.options.languageSwitcherSchema ) {
diff --git a/tests/qunit/mobile.languages.structured/test_LanguageOverlay.js 
b/tests/qunit/mobile.languages.structured/test_LanguageOverlay.js
index aba0ae6..34d84b8 100644
--- a/tests/qunit/mobile.languages.structured/test_LanguageOverlay.js
+++ b/tests/qunit/mobile.languages.structured/test_LanguageOverlay.js
@@ -81,7 +81,7 @@
 
        QUnit.test( 'test language overlay', 3, function ( assert ) {
                assert.equal(
-                       this.languageOverlay.$( 
'.site-link-list.preferred-languages li' ).length,
+                       this.languageOverlay.$( 
'.site-link-list.preferred-languages a' ).length,
                        3,
                        'There are 3 preferred languages.'
                );
@@ -93,32 +93,39 @@
                );
 
                assert.equal(
-                       this.languageOverlay.$( '.site-link-list.all-languages 
.variants li' ).length,
+                       this.languageOverlay.$( '.site-link-list.all-languages 
.variants a' ).length,
                        1,
                        'One language is a variant.'
                );
        } );
 
-       QUnit.test( 'test language overlay search', 3, function ( assert ) {
+       QUnit.test( 'test language overlay search', 4, function ( assert ) {
                this.languageOverlay.filterLanguages( 'zh' );
                assert.equal(
-                       this.languageOverlay.$( '.site-link-list 
li:not(.hidden)' ).length,
+                       this.languageOverlay.$( '.site-link-list 
a:not(.hidden)' ).length,
                        3,
-                       'Three languages match "zh". And only those languages 
are visible.'
+                       'Three languages match "zh" and only those languages 
are visible.'
+               );
+
+               this.languageOverlay.filterLanguages( 'ol' );
+               assert.ok(
+                       this.languageOverlay.$( '.site-link-list 
a:not(.hidden)' ).length === 1 &&
+                       this.languageOverlay.$( '.site-link-list 
a:not(.hidden)' ).hasClass( 'be-x-old' ),
+                       'One language (be-x-old) matches "old" and only that 
language is visible.'
                );
 
                this.languageOverlay.filterLanguages( '' );
                assert.equal(
-                       this.languageOverlay.$( '.site-link-list 
li:not(.hidden)' ).length,
+                       this.languageOverlay.$( '.site-link-list 
a:not(.hidden)' ).length,
                        10,
                        'The search filter has been cleared. All 10 languages 
(including variants) are visible.'
                );
 
                this.languageOverlay.filterLanguages( 'ўз' );
                assert.equal(
-                       this.languageOverlay.$( '.site-link-list 
li:not(.hidden)' ).length,
+                       this.languageOverlay.$( '.site-link-list 
a:not(.hidden)' ).length,
                        1,
-                       'One language match "ўз". And only that language is 
visible.'
+                       'One language matches "ўз" and only that language is 
visible.'
                );
        } );
 } )( mw.mobileFrontend );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If383095cedbf71b4107d337d1fbdbd09c06d0799
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Bmansurov <bmansu...@wikimedia.org>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Jhobs <jhob...@wikimedia.org>
Gerrit-Reviewer: Phuedx <g...@samsmith.io>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to