RCFilters: Don't cast days default to an integer
authorMoriel Schottlender <moriel@gmail.com>
Thu, 14 Sep 2017 21:11:44 +0000 (14:11 -0700)
committerMoriel Schottlender <moriel@gmail.com>
Fri, 15 Sep 2017 00:29:18 +0000 (17:29 -0700)
Values can be floats, like 1.5 days, etc. Cast instead to a float.

Bug: T175965
Change-Id: I14ba792f1cd435f89b2e09067b0a0e894a0a2557

includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialWatchlist.php

index ec09559..98b7aa1 100644 (file)
@@ -1580,5 +1580,12 @@ abstract class ChangesListSpecialPage extends SpecialPage {
 
        abstract function getDefaultLimit();
 
+       /**
+        * Get the default value of the number of days to display when loading
+        * the result set.
+        * Supports fractional values, and should be cast to a float.
+        *
+        * @return float
+        */
        abstract function getDefaultDays();
 }
index 547a1b0..15c05ee 100644 (file)
@@ -233,10 +233,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         */
        public function getDefaultOptions() {
                $opts = parent::getDefaultOptions();
-               $user = $this->getUser();
 
-               $opts->add( 'days', $user->getIntOption( 'rcdays' ), FormOptions::FLOAT );
-               $opts->add( 'limit', $user->getIntOption( 'rclimit' ) );
+               $opts->add( 'days', $this->getDefaultDays(), FormOptions::FLOAT );
+               $opts->add( 'limit', $this->getDefaultLimit() );
                $opts->add( 'from', '' );
 
                $opts->add( 'categories', '' );
@@ -1010,6 +1009,6 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
        }
 
        function getDefaultDays() {
-               return $this->getUser()->getIntOption( 'rcdays' );
+               return floatval( $this->getUser()->getOption( 'rcdays' ) );
        }
 }
index ec64869..2750551 100644 (file)
@@ -277,10 +277,9 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         */
        public function getDefaultOptions() {
                $opts = parent::getDefaultOptions();
-               $user = $this->getUser();
 
-               $opts->add( 'days', $user->getOption( 'watchlistdays' ), FormOptions::FLOAT );
-               $opts->add( 'limit', $user->getIntOption( 'wllimit' ), FormOptions::INT );
+               $opts->add( 'days', $this->getDefaultDays(), FormOptions::FLOAT );
+               $opts->add( 'limit', $this->getDefaultLimit(), FormOptions::INT );
 
                return $opts;
        }
@@ -918,6 +917,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
        }
 
        function getDefaultDays() {
-               return $this->getUser()->getIntOption( 'watchlistdays' );
+               return floatval( $this->getUser()->getOption( 'watchlistdays' ) );
        }
 }