Make revdel input form more consistent with other forms:
authorRaimond Spekking <raymond@users.mediawiki.org>
Fri, 4 Sep 2009 14:32:07 +0000 (14:32 +0000)
committerRaimond Spekking <raymond@users.mediawiki.org>
Fri, 4 Sep 2009 14:32:07 +0000 (14:32 +0000)
* Use CSS classes for input and label elements for default form design
** Makes it RTL friendly too
* Add a "Edit delete reasons" link

includes/specials/SpecialRevisiondelete.php
languages/messages/MessagesEn.php
maintenance/language/messages.inc
skins/common/common_rtl.css
skins/common/shared.css

index 6ace1f4..b9f3744 100644 (file)
@@ -360,31 +360,55 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                // Normal sysops can always see what they did, but can't always change it
                if( !$UserAllowed ) return;
 
-               $wgOut->addHTML(
-                       Xml::openElement( 'form', array( 'method' => 'post',
+               $out =  Xml::openElement( 'form', array( 'method' => 'post',
                                'action' => $this->getTitle()->getLocalUrl( array( 'action' => 'submit' ) ), 
                                'id' => 'mw-revdel-form-revisions' ) ) .
-                       Xml::openElement( 'fieldset' ) .
-                       Xml::element( 'legend', null,  wfMsg( 'revdelete-legend' ) ) .
+                       Xml::fieldset( wfMsg( 'revdelete-legend' ) ) .
+                       Xml::openElement( 'table' ) .
                        $this->buildCheckBoxes( $bitfields ) .
-                       "\n<table><tr>\n" .
-                               '<td>' . Xml::label( wfMsg('revdelete-log'), 'wpRevDeleteReasonList' ) . '</td>' .
-                               '<td>' . Xml::listDropDown( 'wpRevDeleteReasonList',
-                                                       wfMsgForContent( 'revdelete-reason-dropdown' ),
-                                                       wfMsgForContent( 'revdelete-reasonotherlist' ), '', 'wpReasonDropDown', 1
-                                               ) . '</td>' .
-                       "\n</tr><tr>\n" .
-                               '<td>' . Xml::label( wfMsg( 'revdelete-otherreason' ), 'wpReason' ) . '</td>' .
-                               '<td>' . Xml::input( 'wpReason', 60, $this->otherReason, array('id'=>'wpReason') ) . '</td>' .
-                       "\n</tr></table>\n" .
-                       Xml::submitButton( wfMsg( 'revdelete-submit' ), array( 'name' => 'wpSubmit' ) ) .
+                       "<tr>\n" .
+                               '<td class="mw-label">' .
+                                       Xml::label( wfMsg( 'revdelete-log' ), 'wpRevDeleteReasonList' ) .
+                               '</td>' .
+                               '<td class="mw-input">' .
+                                       Xml::listDropDown( 'wpRevDeleteReasonList',
+                                               wfMsgForContent( 'revdelete-reason-dropdown' ),
+                                               wfMsgForContent( 'revdelete-reasonotherlist' ), '', 'wpReasonDropDown', 1
+                                       ) .
+                               '</td>' .
+                       "</tr><tr>\n" .
+                               '<td class="mw-label">' .
+                                       Xml::label( wfMsg( 'revdelete-otherreason' ), 'wpReason' ) .
+                               '</td>' .
+                               '<td class="mw-input">' .
+                                       Xml::input( 'wpReason', 60, $this->otherReason, array( 'id' => 'wpReason' ) ) .
+                               '</td>' .
+                       "</tr><tr>\n" .
+                               '<td></td>' .
+                               '<td class="mw-submit">' .
+                                       Xml::submitButton( wfMsg( 'revdelete-submit' ), array( 'name' => 'wpSubmit' ) ) .
+                               '</td>' .
+                       "</tr>\n" .
+                       Xml::closeElement( 'table' ) .
                        Xml::hidden( 'wpEditToken', $wgUser->editToken() ) .
                        Xml::hidden( 'target', $this->targetObj->getPrefixedText() ) .
                        Xml::hidden( 'type', $this->typeName ) .
                        Xml::hidden( 'ids', implode( ',', $this->ids ) ) .
-                       Xml::closeElement( 'fieldset' ) .
-                       Xml::closeElement( 'form' ) . "\n"
-               );
+                       Xml::closeElement( 'fieldset' ) . "\n";
+
+               if( $wgUser->isAllowed( 'editinterface' ) ) {
+                       $title = Title::makeTitle( NS_MEDIAWIKI, 'revdelete-reason-dropdown' );
+                       $link = $wgUser->getSkin()->link(
+                               $title,
+                               wfMsgHtml( 'revdelete-edit-reasonlist' ),
+                               array(),
+                               array( 'action' => 'edit' )
+                       );
+                       $out .= Xml::tags( 'p', array( 'class' => 'mw-revdel-editreasons' ), $link ) . "\n";
+               }
+               $out .= Xml::closeElement( 'form' ) . "\n";
+
+               $wgOut->addHTML( $out );
        }
 
        /**
@@ -411,8 +435,8 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                        $innerHTML = Xml::checkLabel( wfMsg($message), $name, $name, $bitfields & $field );
                        if( $field == Revision::DELETED_RESTRICTED )
                                $innerHTML = "<b>$innerHTML</b>";
-                       $line = Xml::tags( 'div', null, $innerHTML );
-                       $html .= $line;
+                       $line = Xml::tags( 'td', array( 'class' => 'mw-input' ), $innerHTML );
+                       $html .= '<tr><td></td>' . $line . "</tr>\n";
                }
                return $html;
        }
index 259159d..84a763a 100644 (file)
@@ -1500,6 +1500,7 @@ Please check the logs.',
 ** Inappropriate personal information',
 'revdelete-otherreason'       => 'Other/additional reason:',
 'revdelete-reasonotherlist'   => 'Other reason',
+'revdelete-edit-reasonlist'   => 'Edit delete reasons',
 
 # Suppression log
 'suppressionlog'     => 'Suppression log',
index b06e5b7..816f307 100644 (file)
@@ -713,6 +713,7 @@ $wgMessageStructure = array(
                'revdelete-reason-dropdown',
                'revdelete-otherreason',
                'revdelete-reasonotherlist',
+               'revdelete-edit-reasonlist',
        ),
        'suppression' => array(
                'suppressionlog',
index c3345e5..cd5212e 100644 (file)
@@ -30,7 +30,8 @@ div.tleft, div.floatleft {
 }
 /* Convenience links to edit block, delete and protect reasons */
 p.mw-ipb-conveniencelinks, p.mw-protect-editreasons,
-p.mw-filedelete-editreasons, p.mw-delete-editreasons {
+p.mw-filedelete-editreasons, p.mw-delete-editreasons,
+p.mw-revdel-editreasons {
        float: left;
 }
 table.filehistory th {
index 113ca4f..d6cbb7c 100644 (file)
@@ -122,7 +122,8 @@ body.ltr .magnify { float:right; }
 
 /* Convenience links to edit block, delete and protect reasons */
 p.mw-ipb-conveniencelinks, p.mw-protect-editreasons,
-p.mw-filedelete-editreasons, p.mw-delete-editreasons {
+p.mw-filedelete-editreasons, p.mw-delete-editreasons,
+p.mw-revdel-editreasons {
        font-size: 90%;
        float: right;
 }