Restore ability for getAttributes to set HTMLTextField type
authorBrad Jorsch <bjorsch@wikimedia.org>
Tue, 30 Sep 2014 16:06:56 +0000 (12:06 -0400)
committerBrad Jorsch <bjorsch@wikimedia.org>
Tue, 30 Sep 2014 16:10:45 +0000 (12:10 -0400)
Change I47db5eab broke SecurePoll, which was relying on this.

Change-Id: Ib11bf9d34eb12f14b9636498c00ff4040b35f130

includes/htmlform/HTMLTextField.php

index 10bc67f..88df49d 100644 (file)
@@ -20,6 +20,7 @@ class HTMLTextField extends HTMLFormField {
                # @todo Enforce pattern, step, required, readonly on the server side as
                # well
                $allowedParams = array(
+                       'type',
                        'min',
                        'max',
                        'pattern',
@@ -38,10 +39,13 @@ class HTMLTextField extends HTMLFormField {
 
                $attribs += $this->getAttributes( $allowedParams );
 
+               # Extract 'type'
+               $type = isset( $attribs['type'] ) ? $attribs['type'] : 'text';
+               unset( $attribs['type'] );
+
                # Implement tiny differences between some field variants
                # here, rather than creating a new class for each one which
                # is essentially just a clone of this one.
-               $type = 'text';
                if ( isset( $this->mParams['type'] ) ) {
                        switch ( $this->mParams['type'] ) {
                                case 'int':
@@ -60,6 +64,7 @@ class HTMLTextField extends HTMLFormField {
                                        break;
                        }
                }
+
                return Html::input( $this->mName, $value, $type, $attribs );
        }
 }