jenkins-bot has submitted this change and it was merged.
Change subject: TextInputWidget: Add support for 'autofocus' config option
......................................................................
TextInputWidget: Add support for 'autofocus' config option
Not very useful in JS (just calling .focus() is almost always preferable),
but will come in handy in PHP.
Change-Id: Idfc89279b9a4e017d59c9732c89c14a0c2849a90
---
M bin/testsuitegenerator.rb
M php/widgets/TextInputWidget.php
M src/widgets/TextInputWidget.js
3 files changed, 12 insertions(+), 1 deletion(-)
Approvals:
Jforrester: Looks good to me, approved
jenkins-bot: Verified
diff --git a/bin/testsuitegenerator.rb b/bin/testsuitegenerator.rb
index e1d8b7d..7349aca 100644
--- a/bin/testsuitegenerator.rb
+++ b/bin/testsuitegenerator.rb
@@ -39,6 +39,7 @@
'enctype' => true,
'target' => ['_blank'],
'name' => true,
+ 'autofocus' => true, # usually makes no sense in JS
'tabIndex' => true,
'icon' => ['picture'],
'indicator' => ['down'],
diff --git a/php/widgets/TextInputWidget.php b/php/widgets/TextInputWidget.php
index 51f02b4..545b68e 100644
--- a/php/widgets/TextInputWidget.php
+++ b/php/widgets/TextInputWidget.php
@@ -27,12 +27,14 @@
* @param array $config Configuration options
* @param string $config['type'] HTML tag `type` attribute (default:
'text')
* @param string $config['placeholder'] Placeholder text
+ * @param boolean $config['autofocus'] Ask the browser to focus this
widget, using the 'autofocus'
+ * HTML attribute (default: false)
* @param boolean $config['readOnly'] Prevent changes (default: false)
* @param boolean $config['multiline'] Allow multiple lines of text
(default: false)
*/
public function __construct( array $config = array() ) {
// Config initialization
- $config = array_merge( array( 'readOnly' => false ), $config );
+ $config = array_merge( array( 'readOnly' => false, 'autofocus'
=> false ), $config );
// Parent constructor
parent::__construct( $config );
@@ -52,6 +54,9 @@
if ( isset( $config['placeholder'] ) ) {
$this->input->setAttributes( array( 'placeholder' =>
$config['placeholder'] ) );
}
+ if ( $config['autofocus'] ) {
+ $this->input->setAttributes( array( 'autofocus' =>
'autofocus' ) );
+ }
$this->setAttributes( array( 'role' => 'textbox' ) );
}
diff --git a/src/widgets/TextInputWidget.js b/src/widgets/TextInputWidget.js
index 8c8bc42..98de1d9 100644
--- a/src/widgets/TextInputWidget.js
+++ b/src/widgets/TextInputWidget.js
@@ -11,6 +11,8 @@
* @param {Object} [config] Configuration options
* @cfg {string} [type='text'] HTML tag `type` attribute
* @cfg {string} [placeholder] Placeholder text
+ * @cfg {boolean} [autofocus=false] Ask the browser to focus this widget,
using the 'autofocus' HTML
+ * attribute
* @cfg {boolean} [readOnly=false] Prevent changes
* @cfg {boolean} [multiline=false] Allow multiple lines of text
* @cfg {boolean} [autosize=false] Automatically resize to fit content
@@ -64,6 +66,9 @@
if ( config.placeholder ) {
this.$input.attr( 'placeholder', config.placeholder );
}
+ if ( config.autofocus ) {
+ this.$input.attr( 'autofocus', 'autofocus' );
+ }
this.$element.attr( 'role', 'textbox' );
};
--
To view, visit https://gerrit.wikimedia.org/r/183735
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Idfc89279b9a4e017d59c9732c89c14a0c2849a90
Gerrit-PatchSet: 5
Gerrit-Project: oojs/ui
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Trevor Parscal <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits