From 5fda459531b0d64f369e077b33f0316dbd704a52 Mon Sep 17 00:00:00 2001 From: Fomafix Date: Thu, 19 Dec 2019 20:30:11 +0100 Subject: [PATCH] Remove URL parameter setlang from history when language is unchanged This change allows to use the ULS language changer without getting a dialog for restoring the old language. This change requires that the module is also loaded in this case. Change-Id: Ie5169e986d0362034ede122b0bc29ce7a4aa481e --- includes/UniversalLanguageSelectorHooks.php | 5 ----- resources/js/ext.uls.setlang.js | 9 +++++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/includes/UniversalLanguageSelectorHooks.php b/includes/UniversalLanguageSelectorHooks.php index fbfa5e16..29a50300 100644 --- a/includes/UniversalLanguageSelectorHooks.php +++ b/includes/UniversalLanguageSelectorHooks.php @@ -162,11 +162,6 @@ class UniversalLanguageSelectorHooks { return; } - if ( $out->getLanguage()->getCode() === $languageToSet ) { - // If we are already using the preferred language, don't bother. - return; - } - $out->addModules( 'ext.uls.setlang' ); } diff --git a/resources/js/ext.uls.setlang.js b/resources/js/ext.uls.setlang.js index 3b710248..5f887718 100644 --- a/resources/js/ext.uls.setlang.js +++ b/resources/js/ext.uls.setlang.js @@ -51,6 +51,11 @@ return uri.toString(); } + function removeSetlangFromHistory() { + var urlWithoutSetlang = removeParam( 'setlang' ); + history.replaceState( null, 'no-setlang-url', urlWithoutSetlang ); + } + function updateLanguage( langCode ) { var api = new mw.Api(); return api.postWithToken( 'csrf', { @@ -93,8 +98,7 @@ } ); $cancelBtn.on( 'click', function () { - var urlWithoutSetlang = removeParam( 'setlang' ); - history.replaceState( null, 'no-setlang-url', urlWithoutSetlang ); + removeSetlangFromHistory(); ulsDialog.close(); } ); } @@ -106,6 +110,7 @@ $ulsDialog, ulsSetLangDialog; if ( currentLangCode === setLangCode ) { + removeSetlangFromHistory(); return; }