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
This commit is contained in:
Fomafix
2019-12-19 20:30:11 +01:00
parent d31fddd8e7
commit 5fda459531
2 changed files with 7 additions and 7 deletions

View File

@@ -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' );
}

View File

@@ -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;
}