Merge "Don't initialize MediaWikiServices before extensions have been loaded"
[lhc/web/wiklou.git] / includes / specials / SpecialNewpages.php
index edfaa7c..cd3da4f 100644 (file)
@@ -207,7 +207,6 @@ class SpecialNewpages extends IncludableSpecialPage {
 
        protected function form() {
                $out = $this->getOutput();
-               $out->addModules( 'mediawiki.userSuggest' );
 
                // Consume values
                $this->opts->consumeValue( 'offset' ); // don't carry offset, DWIW
@@ -251,13 +250,12 @@ class SpecialNewpages extends IncludableSpecialPage {
                                'default' => $tagFilterVal,
                        ],
                        'username' => [
-                               'type' => 'text',
+                               'type' => 'user',
                                'name' => 'username',
                                'label-message' => 'newpages-username',
                                'default' => $userText,
                                'id' => 'mw-np-username',
                                'size' => 30,
-                               'cssclass' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
                        ],
                        'size' => [
                                'type' => 'sizefilter',
@@ -269,7 +267,6 @@ class SpecialNewpages extends IncludableSpecialPage {
                $htmlForm = new HTMLForm( $form, $this->getContext() );
 
                $htmlForm->setSubmitText( $this->msg( 'newpages-submit' )->text() );
-               $htmlForm->setSubmitProgressive();
                // The form should be visible on each request (inclusive requests with submitted forms), so
                // return always false here.
                $htmlForm->setSubmitCallback(
@@ -278,32 +275,29 @@ class SpecialNewpages extends IncludableSpecialPage {
                        }
                );
                $htmlForm->setMethod( 'get' );
-
-               $out->addHTML( Xml::fieldset( $this->msg( 'newpages' )->text() ) );
-
+               $htmlForm->setWrapperLegend( true );
+               $htmlForm->setWrapperLegendMsg( 'newpages' );
+               $htmlForm->addFooterText( Html::rawElement(
+                       'div',
+                       null,
+                       $this->filterLinks()
+               ) );
                $htmlForm->show();
-
-               $out->addHTML(
-                       Html::rawElement(
-                               'div',
-                               null,
-                               $this->filterLinks()
-                       ) .
-                       Xml::closeElement( 'fieldset' )
-               );
        }
 
        /**
         * @param stdClass $result Result row from recent changes
-        * @return Revision|bool
+        * @param Title $title
+        * @return bool|Revision
         */
-       protected function revisionFromRcResult( stdClass $result ) {
+       protected function revisionFromRcResult( stdClass $result, Title $title ) {
                return new Revision( [
-                       'comment' => CommentStore::newKey( 'rc_comment' )->getComment( $result )->text,
+                       'comment' => CommentStore::getStore()->getComment( 'rc_comment', $result )->text,
                        'deleted' => $result->rc_deleted,
                        'user_text' => $result->rc_user_text,
                        'user' => $result->rc_user,
-               ] );
+                       'actor' => $result->rc_actor,
+               ], 0, $title );
        }
 
        /**
@@ -318,8 +312,7 @@ class SpecialNewpages extends IncludableSpecialPage {
 
                // Revision deletion works on revisions,
                // so cast our recent change row to a revision row.
-               $rev = $this->revisionFromRcResult( $result );
-               $rev->setTitle( $title );
+               $rev = $this->revisionFromRcResult( $result, $title );
 
                $classes = [];
                $attribs = [ 'data-mw-revid' => $result->rev_id ];