jenkins-bot has submitted this change and it was merged.

Change subject: mediawiki.ui: Rename .mw-ui-vform-div → .mw-ui-vform-field
......................................................................


mediawiki.ui: Rename .mw-ui-vform-div → .mw-ui-vform-field

Require use of class instead of applying styling to all <div>s

This resolves a few FIXMEs and dramatically lowers the awkwardness
level of using mediawiki.ui.

'.mw-ui-vform-field' is a more descriptive name than '.mw-ui-vform-div'
and corresponds to the HTMLFormField PHP class in core which generates
<div>s with this CSS class.

We previously styled '.mw-ui-vform > div' the same way we styled
'.mw-ui-vform .mw-ui-vform-div', which was an annoying piece of magic
causing difficult to debug problems when one needed a different HTML
structure (like bug 63233). Explicitly using '.mw-ui-vform-field'
where applicable is a lot saner.

Change-Id: I6f0b8842f5fdf70b97decb165086d1a83428b259
---
M includes/htmlform/HTMLFormField.php
M includes/templates/Usercreate.php
M includes/templates/Userlogin.php
M resources/src/mediawiki.ui/components/default/forms.less
4 files changed, 35 insertions(+), 39 deletions(-)

Approvals:
  Jdlrobson: Looks good to me, approved
  TheDJ: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/includes/htmlform/HTMLFormField.php 
b/includes/htmlform/HTMLFormField.php
index 0e1860b..8076e8a 100644
--- a/includes/htmlform/HTMLFormField.php
+++ b/includes/htmlform/HTMLFormField.php
@@ -504,7 +504,7 @@
                );
                $divCssClasses = array( "mw-htmlform-field-$fieldType", 
$this->mClass, $errorClass );
                if ( $this->mParent->isVForm() ) {
-                       $divCssClasses[] = 'mw-ui-vform-div';
+                       $divCssClasses[] = 'mw-ui-vform-field';
                }
 
                $wrapperAttributes = array(
diff --git a/includes/templates/Usercreate.php 
b/includes/templates/Usercreate.php
index 9118701..a4240e2 100644
--- a/includes/templates/Usercreate.php
+++ b/includes/templates/Usercreate.php
@@ -73,7 +73,7 @@
                        <?php } ?>
                        </div>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <label for='wpName2'>
                                        <?php $this->msg( 'userlogin-yourname' 
); ?>
 
@@ -92,7 +92,7 @@
                                ?>
                        </div>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <?php if ( $this->data['createemail'] ) { ?>
                                        <label class="mw-ui-checkbox-label">
                                                <input 
name="wpCreateaccountMail" type="checkbox" value="1" id="wpCreateaccountMail" 
tabindex="2"
@@ -105,7 +105,7 @@
                                <?php } ?>
                        </div>
 
-                       <div class="mw-row-password">
+                       <div class="mw-ui-vform-field mw-row-password">
                                <label for='wpPassword2'><?php $this->msg( 
'userlogin-yourpassword' ); ?></label>
                                <?php
                                echo Html::input( 'wpPassword', null, 
'password', array(
@@ -127,7 +127,7 @@
                                        $select->addOption( $dom );
                                }
                        ?>
-                               <div id="mw-user-domain-section">
+                               <div class="mw-ui-vform-field" 
id="mw-user-domain-section">
                                        <label for="wpDomain"><?php $this->msg( 
'yourdomainname' ); ?></label>
                                        <div class="mw-input">
                                                <?php echo $select->getHTML(); 
?>
@@ -135,7 +135,7 @@
                                </div>
                        <?php } ?>
 
-                       <div class="mw-row-password">
+                       <div class="mw-ui-vform-field mw-row-password">
                                <label for='wpRetype'><?php $this->msg( 
'createacct-yourpasswordagain' ); ?></label>
                                <?php
                                echo Html::input( 'wpRetype', null, 'password', 
array(
@@ -149,7 +149,7 @@
                                ?>
                        </div>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <?php if ( $this->data['useemail'] ) { ?>
                                        <label for='wpEmail'>
                                                <?php
@@ -174,7 +174,7 @@
                        </div>
 
                        <?php if ( $this->data['userealname'] ) { ?>
-                               <div>
+                               <div class="mw-ui-vform-field">
                                        <label for='wpRealName'><?php 
$this->msg( 'createacct-realname' ); ?></label>
                                        <input type='text' class='mw-input 
loginText' name="wpRealName" id="wpRealName"
                                                tabindex="7"
@@ -186,7 +186,7 @@
                        <?php } ?>
 
                        <?php if ( $this->data['usereason'] ) { ?>
-                               <div>
+                               <div class="mw-ui-vform-field">
                                        <label for='wpReason'><?php $this->msg( 
'createacct-reason' ); ?></label>
                                        <?php echo Html::input( 'wpReason', 
$this->data['reason'], 'text', array(
                                                'class' => 'mw-input loginText',
@@ -202,7 +202,7 @@
                        $tabIndex = 9;
                        if ( isset( $this->data['extraInput'] ) && is_array( 
$this->data['extraInput'] ) ) {
                                foreach ( $this->data['extraInput'] as 
$inputItem ) { ?>
-                                       <div>
+                                       <div class="mw-ui-vform-field">
                                                <?php
                                                // If it's a checkbox, output 
the whole thing (assume it has a msg).
                                                if ( $inputItem['type'] == 
'checkbox' ) {
@@ -252,7 +252,7 @@
                        // so skip one index.
                        $tabIndex++;
                        ?>
-                       <div class="mw-submit">
+                       <div class="mw-ui-vform-field mw-submit">
                                <?php
                                echo Html::input(
                                        'wpCreateaccount',
diff --git a/includes/templates/Userlogin.php b/includes/templates/Userlogin.php
index 0aad07d..19ea20b 100644
--- a/includes/templates/Userlogin.php
+++ b/includes/templates/Userlogin.php
@@ -55,7 +55,7 @@
                                </div>
                        <?php } ?>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <label for='wpName1'>
                                        <?php
                                        $this->msg( 'userlogin-yourname' );
@@ -85,7 +85,7 @@
                                ?>
                        </div>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <label for='wpPassword1'>
                                        <?php
                                        $this->msg( 'userlogin-yourpassword' );
@@ -120,7 +120,7 @@
                                        $select->addOption( $dom );
                                }
                        ?>
-                               <div id="mw-user-domain-section">
+                               <div class="mw-ui-vform-field" 
id="mw-user-domain-section">
                                        <label for='wpDomain'><?php $this->msg( 
'yourdomainname' ); ?></label>
                                        <?php echo $select->getHTML(); ?>
                                </div>
@@ -132,7 +132,7 @@
                        }
                        ?>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <?php if ( $this->data['canremember'] ) { ?>
                                        <label class="mw-ui-checkbox-label">
                                                <input name="wpRemember" 
type="checkbox" value="1" id="wpRemember" tabindex="4"
@@ -145,7 +145,7 @@
                                <?php } ?>
                        </div>
 
-                       <div>
+                       <div class="mw-ui-vform-field">
                                <?php
                                echo Html::input( 'wpLoginAttempt', 
$this->getMsg( 'pt-login-button' )->text(), 'submit', array(
                                        'id' => 'wpLoginAttempt',
@@ -154,7 +154,8 @@
                                ) );
                                ?>
                        </div>
-                       <div id="mw-userlogin-help">
+
+                       <div class="mw-ui-vform-field" id="mw-userlogin-help">
                                <?php
                                echo Html::element(
                                        'a',
@@ -167,6 +168,7 @@
                                );
                                ?>
                        </div>
+
                        <?php if ( $this->haveData( 'createOrLoginHref' ) ) { ?>
                                <?php if ( $this->data['loggedin'] ) { ?>
                                        <div id="mw-createaccount-another">
diff --git a/resources/src/mediawiki.ui/components/default/forms.less 
b/resources/src/mediawiki.ui/components/default/forms.less
index ee21932..6c40c26 100644
--- a/resources/src/mediawiki.ui/components/default/forms.less
+++ b/resources/src/mediawiki.ui/components/default/forms.less
@@ -24,12 +24,12 @@
 //
 // Markup:
 // <form class="mw-ui-vform">
-//   <div class="mw-ui-vform-div">This is a form example.</div>
-//   <div class="mw-ui-vform-div">
+//   <div class="mw-ui-vform-field">This is a form example.</div>
+//   <div class="mw-ui-vform-field">
 //     <label>Username </label>
 //     <input value="input">
 //   </div>
-//   <div>
+//   <div class="mw-ui-vform-field">
 //     <button class="mw-ui-button mw-ui-constructive">Button in vform</button>
 //   </div>
 // </form>
@@ -39,15 +39,6 @@
        .box-sizing(border-box);
 
        width: @defaultFormWidth;
-
-       // Immediate divs in a vform are block and spaced-out.
-       // XXX: We shouldn't depend on the tag name here...
-       & > div {
-               display: block;
-               margin: 0 0 15px 0;
-               padding: 0;
-               width: 100%;
-       }
 
        // MW currently doesn't use the type attribute everywhere on inputs.
        input,
@@ -104,17 +95,17 @@
        //   <div class="error">
        //     <ul><li>There are problems with some of your input.</li></ul>
        //   </div>
-       //   <div class="mw-ui-vform-div">
+       //   <div class="mw-ui-vform-field">
        //     <input type="text" value="input" class="mw-ui-input">
        //   </div>
-       //   <div class="mw-ui-vform-div">
+       //   <div class="mw-ui-vform-field">
        //     <select>
        //       <option value="1">Option 1</option>
        //       <option value="2">Option 2</option>
        //     </select>
        //     <span class="error">The value you specified is not a valid 
option.</span>
        //   </div>
-       //   <div>
+       //   <div class="mw-ui-vform-field">
        //     <button class="mw-ui-button">Button in vform</button>
        //   </div>
        // </form>
@@ -142,7 +133,8 @@
        // This specifies styling for individual field validation error 
messages.
        // Show them below the fields to prevent line break glitches, and leave
        // some space between the field and the error message box.
-       .mw-ui-vform-div .error {
+       .mw-ui-vform-div .error, /* for backwards-compatibility, remove before 
1.24 */
+       .mw-ui-vform-field .error {
                display: block;
                margin-top: 5px;
        }
@@ -153,12 +145,14 @@
 // Elements
 // --------------------------------------------------------------------------
 
-// Apply this to individual elements to style them.
-// You generally don't need to use this class on divs within an Agora
-// form container such as mw-ui-vform
-// XXX DRY: This repeats earlier styling, use an @include agora-div-styling ?
-// XXX: What is this even for?
-.mw-ui-vform-div {
+// A wrapper for a single form field: the <input> / <select> / <button> 
element,
+// help text, labels, associated error/warning/success messages, and so on.
+// Elements with this class are generated by HTMLFormField in core MediaWiki.
+//
+// (We use a broad definition of 'field' here: a purely textual information
+// block is also a "field".)
+.mw-ui-vform-div, /* for backwards-compatibility, remove before 1.24 */
+.mw-ui-vform-field {
        display: block;
        margin: 0 0 15px;
        padding: 0;

-- 
To view, visit https://gerrit.wikimedia.org/r/133724
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6f0b8842f5fdf70b97decb165086d1a83428b259
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Daniel Friesen <dan...@nadir-seen-fire.com>
Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: Mattflaschen <mflasc...@wikimedia.org>
Gerrit-Reviewer: SG <shah...@gmail.com>
Gerrit-Reviewer: Spage <sp...@wikimedia.org>
Gerrit-Reviewer: Swalling <swall...@wikimedia.org>
Gerrit-Reviewer: TheDJ <hartman.w...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to