Merge "HTMLFormField: Use Codex TextArea for multiselect fields"

This commit is contained in:
jenkins-bot 2024-03-15 23:02:39 +00:00 committed by Gerrit Code Review
commit 23728ecc4e
3 changed files with 64 additions and 0 deletions

View file

@ -122,6 +122,11 @@ class HTMLNamespacesMultiselectField extends HTMLSelectNamespace {
return [ 'mediawiki.widgets.NamespacesMultiselectWidget' ]; return [ 'mediawiki.widgets.NamespacesMultiselectWidget' ];
} }
public function getInputCodex( $value, $hasErrors ) {
$textAreaField = new HTMLTextAreaField( $this->mParams );
return $textAreaField->getInputCodex( $value, $hasErrors );
}
} }
/** @deprecated since 1.42 */ /** @deprecated since 1.42 */

View file

@ -163,6 +163,60 @@ class HTMLTextAreaField extends HTMLFormField {
'rows' => $this->getRows(), 'rows' => $this->getRows(),
] + $attribs ); ] + $attribs );
} }
public function getInputCodex( $value, $hasErrors ) {
$textareaClasses = [ 'cdx-text-area__textarea' ];
if ( $this->mClass !== '' ) {
$textareaClasses[] = $this->mClass;
}
if ( $this->mUseEditFont ) {
$userOptionsLookup = MediaWikiServices::getInstance()
->getUserOptionsLookup();
// The following classes can be used here:
// * mw-editfont-monospace
// * mw-editfont-sans-serif
// * mw-editfont-serif
$textareaClasses[] =
'mw-editfont-' .
$userOptionsLookup->getOption( $this->mParent->getUser(), 'editfont' );
$this->mParent->getOutput()->addModuleStyles( 'mediawiki.editfont.styles' );
}
$textareaAttribs = [
'id' => $this->mID,
'cols' => $this->getCols(),
'rows' => $this->getRows(),
'spellcheck' => $this->getSpellCheck(),
'class' => $textareaClasses
] + $this->getTooltipAndAccessKey();
if ( $this->mPlaceholder !== '' ) {
$textareaAttribs['placeholder'] = $this->mPlaceholder;
}
$allowedParams = [
'maxlength',
'minlength',
'tabindex',
'disabled',
'readonly',
'required',
'autofocus'
];
$textareaAttribs += $this->getAttributes( $allowedParams );
$textarea = Html::textarea( $this->mName, $value, $textareaAttribs );
$wrapperAttribs = [ 'class' => [ 'cdx-text-area' ] ];
if ( $hasErrors ) {
$wrapperAttribs['class'][] = 'cdx-text-area--status-error';
}
return Html::rawElement(
'div',
$wrapperAttribs,
$textarea
);
}
} }
/** @deprecated since 1.42 */ /** @deprecated since 1.42 */

View file

@ -146,6 +146,11 @@ class HTMLTitlesMultiselectField extends HTMLTitleTextField {
return [ 'mediawiki.widgets.TitlesMultiselectWidget' ]; return [ 'mediawiki.widgets.TitlesMultiselectWidget' ];
} }
public function getInputCodex( $value, $hasErrors ) {
$textAreaField = new HTMLTextAreaField( $this->mParams );
return $textAreaField->getInputCodex( $value, $hasErrors );
}
} }
/** @deprecated since 1.42 */ /** @deprecated since 1.42 */