wiki.techinc.nl/includes/widget/SearchInputWidget.php
Bartosz Dziewoński e218f21d44 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
2017-03-14 21:44:42 +00:00

74 lines
2.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* MediaWiki Widgets SearchInputWidget class.
*
* @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
namespace MediaWiki\Widget;
/**
* Search input widget.
*/
class SearchInputWidget extends TitleInputWidget {
protected $pushPending = false;
protected $performSearchOnClick = true;
protected $validateTitle = false;
protected $highlightFirst = false;
protected $dataLocation = 'header';
/**
* @param array $config Configuration options
* @param int|null $config['pushPending'] Whether the input should be visually marked as
* "pending", while requesting suggestions (default: true)
* @param boolean|null $config['performSearchOnClick'] If true, the script will start a search
* whenever a user hits a suggestion. If false, the text of the suggestion is inserted into the
* text field only (default: true)
* @param string $config['dataLocation'] Where the search input field will be
* used (header or content, default: header)
*/
public function __construct( array $config = [] ) {
$config = array_merge( [
'maxLength' => null,
'icon' => 'search',
], $config );
// Parent constructor
parent::__construct( $config );
// Properties, which are ignored in PHP and just shipped back to JS
if ( isset( $config['pushPending'] ) ) {
$this->pushPending = $config['pushPending'];
}
if ( isset( $config['performSearchOnClick'] ) ) {
$this->performSearchOnClick = $config['performSearchOnClick'];
}
if ( isset( $config['dataLocation'] ) ) {
// identifies the location of the search bar for tracking purposes
$this->dataLocation = $config['dataLocation'];
}
// Initialization
$this->addClasses( [ 'mw-widget-searchInputWidget' ] );
}
protected function getInputElement( $config ) {
return ( new \OOUI\Tag( 'input' ) )->setAttributes( [ 'type' => 'search' ] );
}
protected function getJavaScriptClassName() {
return 'mw.widgets.SearchInputWidget';
}
public function getConfig( &$config ) {
$config['pushPending'] = $this->pushPending;
$config['performSearchOnClick'] = $this->performSearchOnClick;
if ( $this->dataLocation ) {
$config['dataLocation'] = $this->dataLocation;
}
return parent::getConfig( $config );
}
}