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