Revert "Convert Special:NewFiles to use OOUI."
[lhc/web/wiklou.git] / includes / specials / pagers / NewFilesPager.php
index d1f9f40..ae57736 100644 (file)
@@ -30,30 +30,33 @@ class NewFilesPager extends ReverseChronologicalPager {
        protected $gallery;
 
        /**
-        * @var FormOptions
+        * @var bool
         */
-       protected $opts;
+       protected $showBots;
 
        /**
-        * @param IContextSource $context
-        * @param FormOptions $opts
+        * @var bool
         */
-       function __construct( IContextSource $context, FormOptions $opts ) {
-               $this->opts = $opts;
-
-               $this->setLimit( $opts->getValue( 'limit' ) );
+       protected $hidePatrolled;
+
+       function __construct( IContextSource $context, $par = null ) {
+               $this->like = $context->getRequest()->getText( 'like' );
+               $this->showBots = $context->getRequest()->getBool( 'showbots', 0 );
+               $this->hidePatrolled = $context->getRequest()->getBool( 'hidepatrolled', 0 );
+               if ( is_numeric( $par ) ) {
+                       $this->setLimit( $par );
+               }
 
                parent::__construct( $context );
        }
 
        function getQueryInfo() {
-               $opts = $this->opts;
                $conds = $jconds = [];
                $tables = [ 'image' ];
                $fields = [ 'img_name', 'img_user', 'img_timestamp' ];
                $options = [];
 
-               if ( !$opts->getValue( 'showbots' ) ) {
+               if ( !$this->showBots ) {
                        $groupsWithBotPermission = User::getGroupsWithPermission( 'bot' );
 
                        if ( count( $groupsWithBotPermission ) ) {
@@ -69,7 +72,7 @@ class NewFilesPager extends ReverseChronologicalPager {
                        }
                }
 
-               if ( $opts->getValue( 'hidepatrolled' ) ) {
+               if ( $this->hidePatrolled ) {
                        $tables[] = 'recentchanges';
                        $conds['rc_type'] = RC_LOG;
                        $conds['rc_log_type'] = 'upload';
@@ -89,10 +92,9 @@ class NewFilesPager extends ReverseChronologicalPager {
                        $options[] = 'STRAIGHT_JOIN';
                }
 
-               $likeVal = $opts->getValue( 'like' );
-               if ( !$this->getConfig()->get( 'MiserMode' ) && $likeVal !== '' ) {
+               if ( !$this->getConfig()->get( 'MiserMode' ) && $this->like !== null ) {
                        $dbr = wfGetDB( DB_SLAVE );
-                       $likeObj = Title::newFromText( $likeVal );
+                       $likeObj = Title::newFromText( $this->like );
                        if ( $likeObj instanceof Title ) {
                                $like = $dbr->buildLike(
                                        $dbr->anyString(),
@@ -152,4 +154,54 @@ class NewFilesPager extends ReverseChronologicalPager {
                        . "</i><br />\n"
                );
        }
+
+       function getForm() {
+               $fields = [
+                       'like' => [
+                               'type' => 'text',
+                               'label-message' => 'newimages-label',
+                               'name' => 'like',
+                       ],
+                       'showbots' => [
+                               'type' => 'check',
+                               'label-message' => 'newimages-showbots',
+                               'name' => 'showbots',
+                       ],
+                       'hidepatrolled' => [
+                               'type' => 'check',
+                               'label-message' => 'newimages-hidepatrolled',
+                               'name' => 'hidepatrolled',
+                       ],
+                       'limit' => [
+                               'type' => 'hidden',
+                               'default' => $this->mLimit,
+                               'name' => 'limit',
+                       ],
+                       'offset' => [
+                               'type' => 'hidden',
+                               'default' => $this->getRequest()->getText( 'offset' ),
+                               'name' => 'offset',
+                       ],
+               ];
+
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
+                       unset( $fields['like'] );
+               }
+
+               if ( !$this->getUser()->useFilePatrol() ) {
+                       unset( $fields['hidepatrolled'] );
+               }
+
+               $context = new DerivativeContext( $this->getContext() );
+               $context->setTitle( $this->getTitle() ); // Remove subpage
+               $form = new HTMLForm( $fields, $context );
+
+               $form->setSubmitTextMsg( 'ilsubmit' );
+               $form->setSubmitProgressive();
+
+               $form->setMethod( 'get' );
+               $form->setWrapperLegendMsg( 'newimages-legend' );
+
+               return $form;
+       }
 }