From: jenkins-bot Date: Fri, 7 Jul 2017 16:16:32 +0000 (+0000) Subject: Merge "SpecialNewFiles: Swap from/to date serverside" X-Git-Tag: 1.31.0-rc.0~2769 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=7ececd89751310a7d46310b10ca80d5a0aa77528;hp=7f505be05b21cf829eaebaea227ab46d4c6a02f4 Merge "SpecialNewFiles: Swap from/to date serverside" --- diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php index 069dd0b6fc..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,7 +109,7 @@ 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, @@ -185,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' ) @@ -193,8 +204,6 @@ class SpecialNewFiles extends IncludableSpecialPage { ->setMethod( 'get' ) ->prepareForm() ->displayForm( false ); - - $this->getOutput()->addModules( 'mediawiki.special.newFiles' ); } protected function getGroupName() { diff --git a/resources/Resources.php b/resources/Resources.php index 12f482f865..8001243e00 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -2030,12 +2030,6 @@ return [ 'mediawiki.special.movePage.styles' => [ 'styles' => 'resources/src/mediawiki.special/mediawiki.special.movePage.css', ], - 'mediawiki.special.newFiles' => [ - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.newFiles.js', - 'dependencies' => [ - 'mediawiki.widgets.datetime', - ], - ], 'mediawiki.special.pageLanguage' => [ 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js', 'dependencies' => [ diff --git a/resources/src/mediawiki.special/mediawiki.special.newFiles.js b/resources/src/mediawiki.special/mediawiki.special.newFiles.js deleted file mode 100644 index 5e86eaaf24..0000000000 --- a/resources/src/mediawiki.special/mediawiki.special.newFiles.js +++ /dev/null @@ -1,21 +0,0 @@ -/*! - * JavaScript for Special:NewFiles - */ -( function ( mw, $ ) { - $( function () { - var start = mw.widgets.datetime.DateTimeInputWidget.static.infuse( 'mw-input-start' ), - end = mw.widgets.datetime.DateTimeInputWidget.static.infuse( 'mw-input-end' ), - temp; - - // If the start date comes after the end date, swap the two values. - // This swap is already done internally when the form is submitted with a start date that - // comes after the end date, but this swap makes the change visible in the HTMLForm. - if ( start.getValue() !== '' && - end.getValue() !== '' && - start.getValue() > end.getValue() ) { - temp = start.getValue(); - start.setValue( end.getValue() ); - end.setValue( temp ); - } - } ); -}( mediaWiki, jQuery ) );