blob: 68cdad6627c6276efadc8a44024155bcee8d515d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?php
namespace MediaWiki\Widget;
use OOUI\MultilineTextInputWidget;
/**
* Widget to select multiple users.
*
* @copyright 2017 MediaWiki Widgets Team and others; see AUTHORS.txt
* @license MIT
*/
class UsersMultiselectWidget extends \OOUI\Widget {
protected $usersArray = [];
protected $inputName = null;
protected $inputPlaceholder = null;
/**
* @param array $config Configuration options
* - array $config['users'] Array of usernames to use as preset data
* - array $config['placeholder'] Placeholder message for input
* - array $config['name'] Name attribute (used in forms)
*/
public function __construct( array $config = [] ) {
parent::__construct( $config );
// Properties
if ( isset( $config['default'] ) ) {
$this->usersArray = $config['default'];
}
if ( isset( $config['name'] ) ) {
$this->inputName = $config['name'];
}
if ( isset( $config['placeholder'] ) ) {
$this->inputPlaceholder = $config['placeholder'];
}
$textarea = new MultilineTextInputWidget( [
'name' => $this->inputName,
'value' => implode( "\n", $this->usersArray ),
'rows' => 25,
] );
$this->prependContent( $textarea );
}
protected function getJavaScriptClassName() {
return 'mw.widgets.UsersMultiselectWidget';
}
public function getConfig( &$config ) {
if ( $this->usersArray !== null ) {
$config['selected'] = $this->usersArray;
}
if ( $this->inputName !== null ) {
$config['name'] = $this->inputName;
}
if ( $this->inputPlaceholder !== null ) {
$config['placeholder'] = $this->inputPlaceholder;
}
$config['$overlay'] = true;
return parent::getConfig( $config );
}
}
|