ellapsed => elapsed
[lhc/web/wiklou.git] / includes / htmlform / HTMLTextField.php
index 10bc67f..2958274 100644 (file)
@@ -11,6 +11,7 @@ class HTMLTextField extends HTMLFormField {
                                'name' => $this->mName,
                                'size' => $this->getSize(),
                                'value' => $value,
+                               'dir' => $this->mDir,
                        ) + $this->getTooltipAndAccessKey();
 
                if ( $this->mClass !== '' ) {
@@ -20,6 +21,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 +40,18 @@ 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'] );
+
                # 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 +70,46 @@ class HTMLTextField extends HTMLFormField {
                                        break;
                        }
                }
-               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 );
        }
 }