- $hiddenFields = [
- 'merge' => true,
- 'target' => $this->mOpts->getValue( 'target' ),
- 'dest' => $this->mOpts->getValue( 'dest' ),
- ];
-
- $formDescriptor = [
- 'reason' => [
- 'type' => 'text',
- 'name' => 'reason',
- 'label-message' => 'mergehistory-reason',
- ],
- ];
-
- $mergeText = $this->msg( 'mergehistory-merge',
- $this->mTargetObj->getPrefixedText(),
- $this->mDestObj->getPrefixedText()
- )->parse();
-
- $history = $header .
- $revisions->getNavigationBar() .
- '<ul>' .
- $revisions->getBody() .
- '</ul>' .
- $revisions->getNavigationBar();
-
- $form = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
- ->addHiddenFields( $hiddenFields )
- ->setPreText( $mergeText )
- ->setFooterText( $history )
- ->setSubmitTextMsg( 'mergehistory-submit' )
- ->setMethod( 'post' )
- ->prepareForm()
- ->displayForm( false );
+ # Format the user-visible controls (comment field, submission button)
+ # in a nice little table
+ $table =
+ Xml::openElement( 'fieldset' ) .
+ $this->msg( 'mergehistory-merge', $this->mTargetObj->getPrefixedText(),
+ $this->mDestObj->getPrefixedText() )->parse() .
+ Xml::openElement( 'table', [ 'id' => 'mw-mergehistory-table' ] ) .
+ '<tr>
+ <td class="mw-label">' .
+ Xml::label( $this->msg( 'mergehistory-reason' )->text(), 'wpComment' ) .
+ '</td>
+ <td class="mw-input">' .
+ Xml::input( 'wpComment', 50, $this->mComment, [ 'id' => 'wpComment' ] ) .
+ '</td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="mw-submit">' .
+ Xml::submitButton(
+ $this->msg( 'mergehistory-submit' )->text(),
+ [ 'name' => 'merge', 'id' => 'mw-merge-submit' ]
+ ) .
+ '</td>
+ </tr>' .
+ Xml::closeElement( 'table' ) .
+ Xml::closeElement( 'fieldset' );
+
+ $out->addHTML( $table );
+ }
+
+ $out->addHTML(
+ '<h2 id="mw-mergehistory">' .
+ $this->msg( 'mergehistory-list' )->escaped() . "</h2>\n"
+ );
+
+ if ( $haveRevisions ) {
+ $out->addHTML( $revisions->getNavigationBar() );
+ $out->addHTML( '<ul>' );
+ $out->addHTML( $revisions->getBody() );
+ $out->addHTML( '</ul>' );
+ $out->addHTML( $revisions->getNavigationBar() );