jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/326476 )
Change subject: Date range filtering in Special:NewFiles
......................................................................
Date range filtering in Special:NewFiles
Bug: T13836
Change-Id: I6149a081db2494a36a715259b76a0c0470149b8c
---
M includes/specials/SpecialNewimages.php
M includes/specials/pagers/NewFilesPager.php
M resources/Resources.php
A resources/src/mediawiki.special/mediawiki.special.newFiles.js
4 files changed, 67 insertions(+), 3 deletions(-)
Approvals:
Matthias Mullie: Looks good to me, approved
Hashar: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/specials/SpecialNewimages.php
b/includes/specials/SpecialNewimages.php
index 12dae8b..583d4f9 100644
--- a/includes/specials/SpecialNewimages.php
+++ b/includes/specials/SpecialNewimages.php
@@ -34,6 +34,7 @@
$this->outputHeader();
$out = $this->getOutput();
+ $out->addModules( 'mediawiki.special.newFiles' );
$this->addHelpLink( 'Help:New images' );
$opts = new FormOptions();
@@ -44,11 +45,26 @@
$opts->add( 'hidepatrolled', false );
$opts->add( 'limit', 50 );
$opts->add( 'offset', '' );
+ $opts->add( 'start', '' );
+ $opts->add( 'end', '' );
$opts->fetchValuesFromRequest( $this->getRequest() );
if ( $par !== null ) {
$opts->setValue( is_numeric( $par ) ? 'limit' : 'like',
$par );
+ }
+
+ // If start date comes after end date chronologically, swap
them.
+ // They are swapped in the interface by JS.
+ $start = $opts->getValue( 'start' );
+ $end = $opts->getValue( 'end' );
+ if ( $start !== '' && $end !== '' && $start > $end ) {
+ $temp = $end;
+ $end = $start;
+ $start = $temp;
+
+ $opts->setValue( 'start', $start, true );
+ $opts->setValue( 'end', $end, true );
}
$opts->validateIntBounds( 'limit', 0, 500 );
@@ -105,6 +121,18 @@
'default' => $this->opts->getValue( 'offset' ),
'name' => 'offset',
],
+
+ 'start' => [
+ 'type' => 'date',
+ 'label-message' => 'date-range-from',
+ 'name' => 'start',
+ ],
+
+ 'end' => [
+ 'type' => 'date',
+ 'label-message' => 'date-range-to',
+ 'name' => 'end',
+ ],
];
if ( $this->getConfig()->get( 'MiserMode' ) ) {
diff --git a/includes/specials/pagers/NewFilesPager.php
b/includes/specials/pagers/NewFilesPager.php
index e2d9d42..cce0323 100644
--- a/includes/specials/pagers/NewFilesPager.php
+++ b/includes/specials/pagers/NewFilesPager.php
@@ -24,7 +24,7 @@
*/
use MediaWiki\MediaWikiServices;
-class NewFilesPager extends ReverseChronologicalPager {
+class NewFilesPager extends RangeChronologicalPager {
/**
* @var ImageGalleryBase
@@ -41,11 +41,20 @@
* @param FormOptions $opts
*/
function __construct( IContextSource $context, FormOptions $opts ) {
- $this->opts = $opts;
+ parent::__construct( $context );
+ $this->opts = $opts;
$this->setLimit( $opts->getValue( 'limit' ) );
- parent::__construct( $context );
+ $startTimestamp = '';
+ $endTimestamp = '';
+ if ( $opts->getValue( 'start' ) ) {
+ $startTimestamp = $opts->getValue( 'start' ) . '
00:00:00';
+ }
+ if ( $opts->getValue( 'end' ) ) {
+ $endTimestamp = $opts->getValue( 'end' ) . ' 23:59:59';
+ }
+ $this->getDateRangeCond( $startTimestamp, $endTimestamp );
}
function getQueryInfo() {
diff --git a/resources/Resources.php b/resources/Resources.php
index e8c8f61..8071bd9 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1978,6 +1978,12 @@
'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
new file mode 100644
index 0000000..5e86eaa
--- /dev/null
+++ b/resources/src/mediawiki.special/mediawiki.special.newFiles.js
@@ -0,0 +1,21 @@
+/*!
+ * 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 ) );
--
To view, visit https://gerrit.wikimedia.org/r/326476
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I6149a081db2494a36a715259b76a0c0470149b8c
Gerrit-PatchSet: 21
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Sn1per <[email protected]>
Gerrit-Reviewer: Bartosz DziewoĆski <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Fomafix <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: Matthias Mullie <[email protected]>
Gerrit-Reviewer: Sn1per <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits