Merge ""spellcheck" attribute for HTMLForm "text" and "textarea""
[lhc/web/wiklou.git] / includes / htmlform / HTMLTextField.php
index 76278db..06b397f 100644 (file)
@@ -51,6 +51,11 @@ class HTMLTextField extends HTMLFormField {
                $attribs += $this->getAttributes( $allowedParams );
 
                # Extract 'type'
+               $type = $this->getType( $attribs );
+               return Html::input( $this->mName, $value, $type, $attribs );
+       }
+
+       protected function getType( &$attribs ) {
                $type = isset( $attribs['type'] ) ? $attribs['type'] : 'text';
                unset( $attribs['type'] );
 
@@ -76,6 +81,45 @@ class HTMLTextField extends HTMLFormField {
                        }
                }
 
-               return Html::input( $this->mName, $value, $type, $attribs );
+               return $type;
+       }
+
+       function getInputOOUI( $value ) {
+               $attribs = $this->getTooltipAndAccessKey();
+
+               if ( $this->mClass !== '' ) {
+                       $attribs['classes'] = array( $this->mClass );
+               }
+
+               # @todo Enforce pattern, step, required, readonly on the server side as
+               # well
+               $allowedParams = array(
+                       'autofocus',
+                       'autosize',
+                       'disabled',
+                       'flags',
+                       'indicator',
+                       'maxlength',
+                       'placeholder',
+                       'readonly',
+                       'required',
+                       'tabindex',
+                       'type',
+               );
+
+               $attribs += $this->getAttributes( $allowedParams, array(
+                       'maxlength' => 'maxLength',
+                       'readonly' => 'readOnly',
+                       'tabindex' => 'tabIndex',
+               ) );
+
+               $type = $this->getType( $attribs );
+
+               return new OOUI\TextInputWidget( array(
+                       'id' => $this->mID,
+                       'name' => $this->mName,
+                       'value' => $value,
+                       'type' => $type,
+               ) + $attribs );
        }
 }