From 70e9ff49177d2a88d8e40bd16ae2c51c7f9a51cc Mon Sep 17 00:00:00 2001 From: Ed Sanders Date: Thu, 3 May 2018 14:17:41 +0100 Subject: [PATCH] Preserve 'ooui' query string when overriding Change-Id: I32df23b427f18e6275beaa6cc10cd58dc3b6eb36 --- includes/preferences/DefaultPreferencesFactory.php | 10 +++++++++- includes/specials/SpecialPreferences.php | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/includes/preferences/DefaultPreferencesFactory.php b/includes/preferences/DefaultPreferencesFactory.php index d94832429e..2d7d73fac3 100644 --- a/includes/preferences/DefaultPreferencesFactory.php +++ b/includes/preferences/DefaultPreferencesFactory.php @@ -1724,17 +1724,25 @@ class DefaultPreferencesFactory implements PreferencesFactory { $res = $this->saveFormData( $formData, $form ); if ( $res ) { + $context = $form->getContext(); + $urlOptions = []; if ( $res === 'eauth' ) { $urlOptions['eauth'] = 1; } + if ( + $context->getRequest()->getFuzzyBool( 'ooui' ) !== + $context->getConfig()->get( 'OOUIPreferences' ) + ) { + $urlOptions[ 'ooui' ] = $context->getRequest()->getFuzzyBool( 'ooui' ) ? 1 : 0; + } + $urlOptions += $form->getExtraSuccessRedirectParameters(); $url = $form->getTitle()->getFullURL( $urlOptions ); - $context = $form->getContext(); // Set session data for the success message $context->getRequest()->getSession()->set( 'specialPreferencesSaveSuccess', 1 ); diff --git a/includes/specials/SpecialPreferences.php b/includes/specials/SpecialPreferences.php index 0f6be06ba0..f67fe9f757 100644 --- a/includes/specials/SpecialPreferences.php +++ b/includes/specials/SpecialPreferences.php @@ -154,6 +154,8 @@ class SpecialPreferences extends SpecialPage { ); } + $htmlForm->addHiddenField( 'ooui', $this->oouiEnabled ? '1' : '0' ); + $htmlForm->show(); } -- 2.20.1