From: Thalia Date: Wed, 21 Nov 2018 11:38:21 +0000 (+0000) Subject: TitlesMultiselectWidget: display pending element X-Git-Tag: 1.34.0-rc.0~3323^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/modifier.php?a=commitdiff_plain;h=62b4cee23fc8fc22177150f9c6f36801494f9cc9;p=lhc%2Fweb%2Fwiklou.git 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 --- diff --git a/autoload.php b/autoload.php index 02e35a85c3..ba5ff7af5a 100644 --- a/autoload.php +++ b/autoload.php @@ -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', diff --git a/includes/specials/SpecialBlock.php b/includes/specials/SpecialBlock.php index ea4cd2292a..e043a72a61 100644 --- a/includes/specials/SpecialBlock.php +++ b/includes/specials/SpecialBlock.php @@ -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' ); diff --git a/includes/widget/PendingTextInputWidget.php b/includes/widget/PendingTextInputWidget.php new file mode 100644 index 0000000000..e980741805 --- /dev/null +++ b/includes/widget/PendingTextInputWidget.php @@ -0,0 +1,26 @@ + true, + ], $config ); + + // Parent constructor + parent::__construct( $config ); + + // Initialization + $this->input->addClasses( [ 'mw-widgets-pendingTextInputWidget oo-ui-pendingElement-pending' ] ); + } +} diff --git a/includes/widget/TitlesMultiselectWidget.php b/includes/widget/TitlesMultiselectWidget.php index 0f5710fd86..0a50fcd545 100644 --- a/includes/widget/TitlesMultiselectWidget.php +++ b/includes/widget/TitlesMultiselectWidget.php @@ -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' ] ); } diff --git a/resources/Resources.php b/resources/Resources.php index 5af7783d5f..d12f89d4a2 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -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', diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css b/resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css new file mode 100644 index 0000000000..de43fb3183 --- /dev/null +++ b/resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css @@ -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; +}