X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fspecials%2FSpecialNewimages.php;h=0a653e73704fd64802db5f4f54ef76e11d155504;hp=8528ce26c8ce182875bcf464b67c97618f0e03bc;hb=7ececd89751310a7d46310b10ca80d5a0aa77528;hpb=25d765c4735346f5207037c6f939709509013601 diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php index 8528ce26c8..0a653e7370 100644 --- a/includes/specials/SpecialNewimages.php +++ b/includes/specials/SpecialNewimages.php @@ -33,6 +33,8 @@ class SpecialNewFiles extends IncludableSpecialPage { } public function execute( $par ) { + $context = new DerivativeContext( $this->getContext() ); + $this->setHeaders(); $this->outputHeader(); $mimeAnalyzer = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer(); @@ -71,6 +73,15 @@ class SpecialNewFiles extends IncludableSpecialPage { $opts->setValue( 'start', $start, true ); $opts->setValue( 'end', $end, true ); + + // also swap values in request object, which is used by HTMLForm + // to pre-populate the fields with the previous input + $request = $context->getRequest(); + $context->setRequest( new DerivativeRequest( + $request, + [ 'start' => $start, 'end' => $end ] + $request->getValues(), + $request->wasPosted() + ) ); } // if all media types have been selected, wipe out the array to prevent @@ -87,10 +98,10 @@ class SpecialNewFiles extends IncludableSpecialPage { if ( !$this->including() ) { $this->setTopText(); - $this->buildForm(); + $this->buildForm( $context ); } - $pager = new NewFilesPager( $this->getContext(), $opts ); + $pager = new NewFilesPager( $context, $opts ); $out->addHTML( $pager->getBody() ); if ( !$this->including() ) { @@ -98,13 +109,14 @@ class SpecialNewFiles extends IncludableSpecialPage { } } - protected function buildForm() { + protected function buildForm( IContextSource $context ) { $mediaTypesText = array_map( function ( $type ) { // mediastatistics-header-unknown, mediastatistics-header-bitmap, // mediastatistics-header-drawing, mediastatistics-header-audio, // mediastatistics-header-video, mediastatistics-header-multimedia, // mediastatistics-header-office, mediastatistics-header-text, // mediastatistics-header-executable, mediastatistics-header-archive, + // mediastatistics-header-3d, return $this->msg( 'mediastatistics-header-' . strtolower( $type ) )->text(); }, $this->mediaTypes ); $mediaTypesOptions = array_combine( $mediaTypesText, $this->mediaTypes ); @@ -184,7 +196,7 @@ class SpecialNewFiles extends IncludableSpecialPage { unset( $formDescriptor['hidepatrolled'] ); } - HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() ) + HTMLForm::factory( 'ooui', $formDescriptor, $context ) // For the 'multiselect' field values to be preserved on submit ->setFormIdentifier( 'specialnewimages' ) ->setWrapperLegendMsg( 'newimages-legend' ) @@ -192,8 +204,6 @@ class SpecialNewFiles extends IncludableSpecialPage { ->setMethod( 'get' ) ->prepareForm() ->displayForm( false ); - - $this->getOutput()->addModules( 'mediawiki.special.newFiles' ); } protected function getGroupName() {