From a1789ddde42033f1b05cc4929491214ee6e79383 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 17 Dec 2015 09:15:42 +0100 Subject: Update to MediaWiki 1.26.0 --- includes/htmlform/HTMLTextField.php | 61 ++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) (limited to 'includes/htmlform/HTMLTextField.php') diff --git a/includes/htmlform/HTMLTextField.php b/includes/htmlform/HTMLTextField.php index 88df49db..157116d8 100644 --- a/includes/htmlform/HTMLTextField.php +++ b/includes/htmlform/HTMLTextField.php @@ -5,12 +5,23 @@ class HTMLTextField extends HTMLFormField { return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45; } + function getSpellCheck() { + $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null; + if ( is_bool( $val ) ) { + // "spellcheck" attribute literally requires "true" or "false" to work. + return $val === true ? 'true' : 'false'; + } + return null; + } + function getInputHTML( $value ) { $attribs = array( 'id' => $this->mID, 'name' => $this->mName, 'size' => $this->getSize(), 'value' => $value, + 'dir' => $this->mDir, + 'spellcheck' => $this->getSpellCheck(), ) + $this->getTooltipAndAccessKey(); if ( $this->mClass !== '' ) { @@ -40,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'] ); @@ -65,6 +81,49 @@ 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 $this->getInputWidget( array( + 'id' => $this->mID, + 'name' => $this->mName, + 'value' => $value, + 'type' => $type, + ) + $attribs ); + } + + protected function getInputWidget( $params ) { + return new OOUI\TextInputWidget( $params ); } } -- cgit v1.2.2