wiki.techinc.nl/includes/widget/SelectWithInputWidget.php
Prateek Saxena a6b31205ac mw.widgets: Add SelectWithInputWidget and its PHP implementation
Bug: T106999
Change-Id: Ic158bec3c463fba5099b05f41c9686f833e1c313
2017-04-24 10:19:55 +02:00

65 lines
1.8 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 SelectWithInputWidget class.
*
* @copyright 2011-2017 MediaWiki Widgets Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
namespace MediaWiki\Widget;
use \OOUI\TextInputWidget;
use \OOUI\DropdownInputWidget;
/**
* Select and input widget.
*/
class SelectWithInputWidget extends \OOUI\Widget {
protected $textinput = null;
protected $dropdowninput = null;
/**
* A version of the SelectWithInputWidget, with `or` set to true.
*
* @param array $config Configuration options
* @param array $config['textinput'] Configuration for the TextInputWidget
* @param array $config['dropdowninput'] Configuration for the DropdownInputWidget
* @param boolean $config['or'] Configuration for whether the widget is dropdown AND input
* or dropdown OR input
*/
public function __construct( array $config = [] ) {
// Configuration initialization
$config = array_merge(
[
'textinput' => [],
'dropdowninput' => [],
'or' => false
],
$config
);
// Parent constructor
parent::__construct( $config );
// Properties
$this->config = $config;
$this->textinput = new TextInputWidget( $config['textinput'] );
$this->dropdowninput = new DropdownInputWidget( $config['dropdowninput'] );
// Initialization
$this
->addClasses( [ 'mw-widget-selectWithInputWidget' ] )
->appendContent( $this->dropdowninput, $this->textinput );
}
protected function getJavaScriptClassName() {
return 'mw.widgets.SelectWithInputWidget';
}
public function getConfig( &$config ) {
$config['textinput'] = $this->config['textinput'];
$config['dropdowninput'] = $this->config['dropdowninput'];
$config['or'] = $this->config['or'];
return parent::getConfig( $config );
}
}