TitlesMultiselectWidget: display pending element

Create a PendingTextInputWidget and use it in
TitlesMultiSelectWidget instead of the multiline
text area for users who have JavaScript.

Bug: T210080
Change-Id: I824fea6a3df580d342e6087ab901fec025f0e70b
This commit is contained in:
Thalia 2018-11-21 11:38:21 +00:00
parent 0833cae960
commit 62b4cee23f
6 changed files with 48 additions and 1 deletions

View file

@ -924,6 +924,7 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Widget\\DateTimeInputWidget' => __DIR__ . '/includes/widget/DateTimeInputWidget.php',
'MediaWiki\\Widget\\ExpiryInputWidget' => __DIR__ . '/includes/widget/ExpiryInputWidget.php',
'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php',
'MediaWiki\\Widget\\PendingTextInputWidget' => __DIR__ . '/includes/widget/PendingTextInputWidget.php',
'MediaWiki\\Widget\\SearchInputWidget' => __DIR__ . '/includes/widget/SearchInputWidget.php',
'MediaWiki\\Widget\\Search\\BasicSearchResultSetWidget' => __DIR__ . '/includes/widget/search/BasicSearchResultSetWidget.php',
'MediaWiki\\Widget\\Search\\DidYouMeanWidget' => __DIR__ . '/includes/widget/search/DidYouMeanWidget.php',

View file

@ -386,6 +386,7 @@ class SpecialBlock extends FormSpecialPage {
* @return string
*/
protected function preText() {
$this->getOutput()->addModuleStyles( 'mediawiki.widgets.TitlesMultiselectWidget.styles' );
$this->getOutput()->addModules( [ 'mediawiki.special.block' ] );
$blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );

View file

@ -0,0 +1,26 @@
<?php
namespace MediaWiki\Widget;
use OOUI\TextInputWidget;
/**
* Text input widget that displays pending animation.
*/
class PendingTextInputWidget extends TextInputWidget {
/**
* @param array $config Configuration options
*/
public function __construct( array $config = [] ) {
$config = array_merge( [
'disabled' => true,
], $config );
// Parent constructor
parent::__construct( $config );
// Initialization
$this->input->addClasses( [ 'mw-widgets-pendingTextInputWidget oo-ui-pendingElement-pending' ] );
}
}

View file

@ -54,9 +54,14 @@ class TitlesMultiselectWidget extends \OOUI\Widget {
'name' => $this->inputName,
'value' => implode( "\n", $this->titlesArray ),
'rows' => 10,
'classes' => [
'mw-widgets-titlesMultiselectWidget-multilineTextInputWidget'
],
], $this->input ) );
$this->appendContent( $textarea );
$pending = new PendingTextInputWidget();
$this->appendContent( $textarea, $pending );
$this->addClasses( [ 'mw-widgets-titlesMultiselectWidget' ] );
}

View file

@ -2733,6 +2733,9 @@ return [
],
'targets' => [ 'desktop', 'mobile' ],
],
'mediawiki.widgets.TitlesMultiselectWidget.styles' => [
'styles' => 'resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css',
],
'mediawiki.widgets.SearchInputWidget' => [
'scripts' => [
'resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js',

View file

@ -0,0 +1,11 @@
/*!
* MediaWiki Widgets - base TitlesMultiselectWidget styles.
*
* @copyright 2011-2018 MediaWiki Widgets Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
.client-nojs .mw-widgets-titlesMultiselectWidget .mw-widgets-pendingTextInputWidget,
.client-js .mw-widgets-titlesMultiselectWidget .mw-widgets-titlesMultiselectWidget-multilineTextInputWidget {
display: none;
}