X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialPreferences.php;h=a5c24e7b1e4f077247b00e5f4846018958e49974;hb=5dc68aedf45a7b2de6d6c6e736f9014873aa8186;hp=7fa74afddbad284b2dddbdb24b3b3b42ca16065d;hpb=587d08c5a626f8195def9f82ee83e17c85824db8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialPreferences.php b/includes/specials/SpecialPreferences.php index 7fa74afddb..a5c24e7b1e 100644 --- a/includes/specials/SpecialPreferences.php +++ b/includes/specials/SpecialPreferences.php @@ -21,6 +21,8 @@ * @ingroup SpecialPage */ +use MediaWiki\MediaWikiServices; + /** * A special page that allows users to change their preferences * @@ -50,8 +52,8 @@ class SpecialPreferences extends SpecialPage { return; } - $out->addModules( 'mediawiki.special.preferences.ooui' ); - $out->addModuleStyles( 'mediawiki.special.preferences.styles.ooui' ); + $out->addModules( 'mediawiki.special.preferences' ); + $out->addModuleStyles( 'mediawiki.special.preferences.styles' ); $session = $this->getRequest()->getSession(); if ( $session->get( 'specialPreferencesSaveSuccess' ) ) { @@ -82,20 +84,37 @@ class SpecialPreferences extends SpecialPage { } $htmlForm = $this->getFormObject( $user, $this->getContext() ); - $htmlForm->setSubmitCallback( [ 'Preferences', 'tryUISubmit' ] ); - - $prefTabs = []; - foreach ( $htmlForm->getPreferenceSections() as $key ) { - $prefTabs[] = [ - 'name' => $key, - 'label' => $htmlForm->getLegend( $key ), - ]; + $sectionTitles = $htmlForm->getPreferenceSections(); + + $prefTabs = ''; + foreach ( $sectionTitles as $key ) { + $prefTabs .= Html::rawElement( 'li', + [ + 'role' => 'presentation', + 'class' => ( $key === 'personal' ) ? 'selected' : null + ], + Html::rawElement( 'a', + [ + 'id' => 'preftab-' . $key, + 'role' => 'tab', + 'href' => '#mw-prefsection-' . $key, + 'aria-controls' => 'mw-prefsection-' . $key, + 'aria-selected' => ( $key === 'personal' ) ? 'true' : 'false', + 'tabIndex' => ( $key === 'personal' ) ? 0 : -1, + ], + $htmlForm->getLegend( $key ) + ) + ); } - $out->addJsConfigVars( 'wgPreferencesTabs', $prefTabs ); - - // TODO: Render fake tabs here to avoid FOUC. - // $out->addHTML( $fakeTabs ); + $out->addHTML( + Html::rawElement( 'ul', + [ + 'id' => 'preftoc', + 'role' => 'tablist' + ], + $prefTabs ) + ); $htmlForm->show(); } @@ -106,7 +125,9 @@ class SpecialPreferences extends SpecialPage { * @return PreferencesForm|HTMLForm */ protected function getFormObject( $user, IContextSource $context ) { - return Preferences::getFormObject( $user, $context ); + $preferencesFactory = MediaWikiServices::getInstance()->getPreferencesFactory(); + $form = $preferencesFactory->getForm( $user, $context ); + return $form; } protected function showResetForm() { @@ -118,7 +139,7 @@ class SpecialPreferences extends SpecialPage { $context = new DerivativeContext( $this->getContext() ); $context->setTitle( $this->getPageTitle( 'reset' ) ); // Reset subpage - $htmlForm = HTMLForm::factory( 'ooui', [], $context, 'prefs-restore' ); + $htmlForm = new HTMLForm( [], $context, 'prefs-restore' ); $htmlForm->setSubmitTextMsg( 'restoreprefs' ); $htmlForm->setSubmitDestructive();