Jforrester has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/342773 )
Change subject: mw.widgets.SearchInputWidget: Do not pass `type: 'search'` to TextInputWidget ...................................................................... mw.widgets.SearchInputWidget: Do not pass `type: 'search'` to TextInputWidget Causes deprecation warnings. Most of this code is copy-pasted from OO.ui.SearchInputWidget. Bug: T148471 Change-Id: I81d52ba938a8b90c5d2c173f1f2682d9e3300e43 (cherry picked from commit e218f21d444dbdf32b6541ff1a54fca2cf8776f8) --- M includes/widget/SearchInputWidget.php M resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js 2 files changed, 70 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/73/342773/1 diff --git a/includes/widget/SearchInputWidget.php b/includes/widget/SearchInputWidget.php index 0d71629..49510da 100644 --- a/includes/widget/SearchInputWidget.php +++ b/includes/widget/SearchInputWidget.php @@ -31,7 +31,6 @@ public function __construct( array $config = [] ) { $config = array_merge( [ 'maxLength' => null, - 'type' => 'search', 'icon' => 'search', ], $config ); @@ -56,6 +55,10 @@ $this->addClasses( [ 'mw-widget-searchInputWidget' ] ); } + protected function getInputElement( $config ) { + return ( new \OOUI\Tag( 'input' ) )->setAttributes( [ 'type' => 'search' ] ); + } + protected function getJavaScriptClassName() { return 'mw.widgets.SearchInputWidget'; } diff --git a/resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js b/resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js index 0a73bef..7880b55 100755 --- a/resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js @@ -30,7 +30,6 @@ var $form = config.$input ? config.$input.closest( 'form' ) : $(); config = $.extend( { - type: 'search', icon: 'search', maxLength: undefined, performSearchOnClick: true, @@ -67,6 +66,12 @@ ) } ); }.bind( this ) ); + + this.$element.addClass( 'oo-ui-textInputWidget-type-search' ); + this.updateSearchIndicator(); + this.connect( this, { + disable: 'onDisable' + } ); }; /* Setup */ @@ -76,6 +81,66 @@ /* Methods */ /** + * @inheritdoc + * @protected + */ + mw.widgets.SearchInputWidget.prototype.getInputElement = function () { + return $( '<input>' ).attr( 'type', 'search' ); + }; + + /** + * @inheritdoc + */ + mw.widgets.SearchInputWidget.prototype.onIndicatorMouseDown = function ( e ) { + if ( e.which === OO.ui.MouseButtons.LEFT ) { + // Clear the text field + this.setValue( '' ); + this.$input[ 0 ].focus(); + return false; + } + }; + + /** + * Update the 'clear' indicator displayed on type: 'search' text + * fields, hiding it when the field is already empty or when it's not + * editable. + */ + mw.widgets.SearchInputWidget.prototype.updateSearchIndicator = function () { + if ( this.getValue() === '' || this.isDisabled() || this.isReadOnly() ) { + this.setIndicator( null ); + } else { + this.setIndicator( 'clear' ); + } + }; + + /** + * @inheritdoc + */ + mw.widgets.SearchInputWidget.prototype.onChange = function () { + mw.widgets.SearchInputWidget.parent.prototype.onChange.call( this ); + this.updateSearchIndicator(); + }; + + /** + * Handle disable events. + * + * @param {boolean} disabled Element is disabled + * @private + */ + mw.widgets.SearchInputWidget.prototype.onDisable = function () { + this.updateSearchIndicator(); + }; + + /** + * @inheritdoc + */ + mw.widgets.SearchInputWidget.prototype.setReadOnly = function ( state ) { + mw.widgets.SearchInputWidget.parent.prototype.setReadOnly.call( this, state ); + this.updateSearchIndicator(); + return this; + }; + + /** * @inheritdoc mw.widgets.TitleWidget */ mw.widgets.SearchInputWidget.prototype.getSuggestionsPromise = function () { -- To view, visit https://gerrit.wikimedia.org/r/342773 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I81d52ba938a8b90c5d2c173f1f2682d9e3300e43 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: wmf/1.29.0-wmf.16 Gerrit-Owner: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: Bartosz DziewoĆski <matma....@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits