diff --git a/RELEASE-NOTES-1.42 b/RELEASE-NOTES-1.42
index e33fd0d170a..5279bdb051b 100644
--- a/RELEASE-NOTES-1.42
+++ b/RELEASE-NOTES-1.42
@@ -438,6 +438,59 @@ because of Phabricator reports.
- TransactionRoundDefiningUpdate
- UserEditCountInfo
- UserEditCountUpdate
+ - MediaWiki\HTMLForm:
+ - CodexHTMLForm
+ - CollapsibleFieldsetLayout
+ - HTMLForm
+ - HTMLFormActionFieldLayout
+ - HTMLFormElement
+ - HTMLFormField
+ - HTMLFormFieldLayout
+ - HTMLFormFieldRequiredOptionsException
+ - HTMLNestedFilterable
+ - OOUIHTMLForm
+ - VFormHTMLForm
+ - MediaWiki\HTMLForm\Field:
+ - HTMLApiField
+ - HTMLAutoCompleteSelectField
+ - HTMLButtonField
+ - HTMLCheckField
+ - HTMLCheckMatrix
+ - HTMLComboboxField
+ - HTMLDateTimeField
+ - HTMLEditTools
+ - HTMLExpiryField
+ - HTMLFileField
+ - HTMLFloatField
+ - HTMLFormFieldCloner
+ - HTMLFormFieldWithButton
+ - HTMLHiddenField
+ - HTMLInfoField
+ - HTMLIntField
+ - HTMLMultiSelectField
+ - HTMLNamespacesMultiselectField
+ - HTMLRadioField
+ - HTMLRestrictionsField
+ - HTMLSelectAndOtherField
+ - HTMLSelectField
+ - HTMLSelectLanguageField
+ - HTMLSelectLimitField
+ - HTMLSelectNamespace
+ - HTMLSelectNamespaceWithButton
+ - HTMLSelectOrOtherField
+ - HTMLSizeFilterField
+ - HTMLSubmitField
+ - HTMLTagFilter
+ - HTMLTagMultiselectField
+ - HTMLTextAreaField
+ - HTMLTextField
+ - HTMLTextFieldWithButton
+ - HTMLTimezoneField
+ - HTMLTitleTextField
+ - HTMLTitlesMultiselectField
+ - HTMLToggleSwitchField
+ - HTMLUserTextField
+ - HTMLUsersMultiselectField
- MediaWiki\Installer:
- DatabaseUpdater
- MysqlUpdater
diff --git a/autoload.php b/autoload.php
index 8e552b4379f..5632cc185a1 100644
--- a/autoload.php
+++ b/autoload.php
@@ -1144,6 +1144,57 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\FileBackend\\FSFile\\TempFSFileFactory' => __DIR__ . '/includes/libs/filebackend/fsfile/TempFSFileFactory.php',
'MediaWiki\\FileBackend\\LockManager\\LockManagerGroupFactory' => __DIR__ . '/includes/filebackend/lockmanager/LockManagerGroupFactory.php',
'MediaWiki\\FileRepo\\File\\FileSelectQueryBuilder' => __DIR__ . '/includes/filerepo/file/FileSelectQueryBuilder.php',
+ 'MediaWiki\\HTMLForm\\CodexHTMLForm' => __DIR__ . '/includes/htmlform/CodexHTMLForm.php',
+ 'MediaWiki\\HTMLForm\\CollapsibleFieldsetLayout' => __DIR__ . '/includes/htmlform/CollapsibleFieldsetLayout.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLApiField' => __DIR__ . '/includes/htmlform/fields/HTMLApiField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLAutoCompleteSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLAutoCompleteSelectField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLButtonField' => __DIR__ . '/includes/htmlform/fields/HTMLButtonField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLCheckField' => __DIR__ . '/includes/htmlform/fields/HTMLCheckField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLCheckMatrix' => __DIR__ . '/includes/htmlform/fields/HTMLCheckMatrix.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLComboboxField' => __DIR__ . '/includes/htmlform/fields/HTMLComboboxField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLDateTimeField' => __DIR__ . '/includes/htmlform/fields/HTMLDateTimeField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLEditTools' => __DIR__ . '/includes/htmlform/fields/HTMLEditTools.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLExpiryField' => __DIR__ . '/includes/htmlform/fields/HTMLExpiryField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLFileField' => __DIR__ . '/includes/htmlform/fields/HTMLFileField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLFloatField' => __DIR__ . '/includes/htmlform/fields/HTMLFloatField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLFormFieldCloner' => __DIR__ . '/includes/htmlform/fields/HTMLFormFieldCloner.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLFormFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLFormFieldWithButton.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLHiddenField' => __DIR__ . '/includes/htmlform/fields/HTMLHiddenField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLInfoField' => __DIR__ . '/includes/htmlform/fields/HTMLInfoField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLIntField' => __DIR__ . '/includes/htmlform/fields/HTMLIntField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLMultiSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLMultiSelectField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLNamespacesMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLNamespacesMultiselectField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLRadioField' => __DIR__ . '/includes/htmlform/fields/HTMLRadioField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLRestrictionsField' => __DIR__ . '/includes/htmlform/fields/HTMLRestrictionsField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectAndOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectAndOtherField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectLanguageField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLanguageField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLimitField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespace.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespaceWithButton.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSelectOrOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectOrOtherField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSizeFilterField' => __DIR__ . '/includes/htmlform/fields/HTMLSizeFilterField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLSubmitField' => __DIR__ . '/includes/htmlform/fields/HTMLSubmitField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTagFilter' => __DIR__ . '/includes/htmlform/fields/HTMLTagFilter.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTagMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLTagMultiselectField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTextAreaField' => __DIR__ . '/includes/htmlform/fields/HTMLTextAreaField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTextField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLTextFieldWithButton.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTimezoneField' => __DIR__ . '/includes/htmlform/fields/HTMLTimezoneField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTitleTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTitleTextField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLTitlesMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLTitlesMultiselectField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLToggleSwitchField' => __DIR__ . '/includes/htmlform/fields/HTMLToggleSwitchField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLUserTextField' => __DIR__ . '/includes/htmlform/fields/HTMLUserTextField.php',
+ 'MediaWiki\\HTMLForm\\Field\\HTMLUsersMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLUsersMultiselectField.php',
+ 'MediaWiki\\HTMLForm\\HTMLForm' => __DIR__ . '/includes/htmlform/HTMLForm.php',
+ 'MediaWiki\\HTMLForm\\HTMLFormActionFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormActionFieldLayout.php',
+ 'MediaWiki\\HTMLForm\\HTMLFormElement' => __DIR__ . '/includes/htmlform/HTMLFormElement.php',
+ 'MediaWiki\\HTMLForm\\HTMLFormField' => __DIR__ . '/includes/htmlform/HTMLFormField.php',
+ 'MediaWiki\\HTMLForm\\HTMLFormFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormFieldLayout.php',
+ 'MediaWiki\\HTMLForm\\HTMLFormFieldRequiredOptionsException' => __DIR__ . '/includes/htmlform/HTMLFormFieldRequiredOptionsException.php',
+ 'MediaWiki\\HTMLForm\\HTMLNestedFilterable' => __DIR__ . '/includes/htmlform/HTMLNestedFilterable.php',
+ 'MediaWiki\\HTMLForm\\OOUIHTMLForm' => __DIR__ . '/includes/htmlform/OOUIHTMLForm.php',
+ 'MediaWiki\\HTMLForm\\VFormHTMLForm' => __DIR__ . '/includes/htmlform/VFormHTMLForm.php',
'MediaWiki\\HeaderCallback' => __DIR__ . '/includes/Request/HeaderCallback.php',
'MediaWiki\\HookContainer\\DeprecatedHooks' => __DIR__ . '/includes/HookContainer/DeprecatedHooks.php',
'MediaWiki\\HookContainer\\FauxGlobalHookArray' => __DIR__ . '/includes/HookContainer/FauxGlobalHookArray.php',
diff --git a/includes/actions/Hook/ActionBeforeFormDisplayHook.php b/includes/actions/Hook/ActionBeforeFormDisplayHook.php
index d6785d57b20..f13ec9cb6f6 100644
--- a/includes/actions/Hook/ActionBeforeFormDisplayHook.php
+++ b/includes/actions/Hook/ActionBeforeFormDisplayHook.php
@@ -3,7 +3,7 @@
namespace MediaWiki\Hook;
use Article;
-use HTMLForm;
+use MediaWiki\HTMLForm\HTMLForm;
/**
* This is a hook handler interface, see docs/Hooks.md.
diff --git a/includes/htmlform/CodexHTMLForm.php b/includes/htmlform/CodexHTMLForm.php
index 0964e60c63c..6a47d80cbbf 100644
--- a/includes/htmlform/CodexHTMLForm.php
+++ b/includes/htmlform/CodexHTMLForm.php
@@ -21,6 +21,8 @@
* @file
*/
+namespace MediaWiki\HTMLForm;
+
use MediaWiki\Html\Html;
/**
@@ -66,3 +68,6 @@ class CodexHTMLForm extends HTMLForm {
return Html::rawElement( 'form', $this->getFormAttributes(), $html );
}
}
+
+/** @deprecated since 1.42 */
+class_alias( CodexHTMLForm::class, 'CodexHTMLForm' );
diff --git a/includes/htmlform/CollapsibleFieldsetLayout.php b/includes/htmlform/CollapsibleFieldsetLayout.php
index 99c04a2a9f8..628f7d32d33 100644
--- a/includes/htmlform/CollapsibleFieldsetLayout.php
+++ b/includes/htmlform/CollapsibleFieldsetLayout.php
@@ -1,9 +1,11 @@
group->addClasses( [ 'mw-collapsible-content' ] );
$this->header->appendContent(
- new OOUI\IconWidget( [
+ new \OOUI\IconWidget( [
'icon' => 'expand',
'label' => wfMessage( 'collapsible-expand' )->text(),
] ),
- new OOUI\IconWidget( [
+ new \OOUI\IconWidget( [
'icon' => 'collapse',
'label' => wfMessage( 'collapsible-collapse' )->text(),
] )
@@ -34,3 +36,6 @@ class CollapsibleFieldsetLayout extends OOUI\FieldsetLayout {
] );
}
}
+
+/** @deprecated since 1.42 */
+class_alias( CollapsibleFieldsetLayout::class, 'CollapsibleFieldsetLayout' );
diff --git a/includes/htmlform/HTMLForm.php b/includes/htmlform/HTMLForm.php
index aaf213ccdf1..f67ecd65a2a 100644
--- a/includes/htmlform/HTMLForm.php
+++ b/includes/htmlform/HTMLForm.php
@@ -21,10 +21,51 @@
* @file
*/
+namespace MediaWiki\HTMLForm;
+
+use DomainException;
+use InvalidArgumentException;
+use LogicException;
use MediaWiki\Context\ContextSource;
use MediaWiki\Context\IContextSource;
use MediaWiki\HookContainer\ProtectedHookAccessorTrait;
use MediaWiki\Html\Html;
+use MediaWiki\HTMLForm\Field\HTMLApiField;
+use MediaWiki\HTMLForm\Field\HTMLAutoCompleteSelectField;
+use MediaWiki\HTMLForm\Field\HTMLCheckField;
+use MediaWiki\HTMLForm\Field\HTMLCheckMatrix;
+use MediaWiki\HTMLForm\Field\HTMLComboboxField;
+use MediaWiki\HTMLForm\Field\HTMLDateTimeField;
+use MediaWiki\HTMLForm\Field\HTMLEditTools;
+use MediaWiki\HTMLForm\Field\HTMLExpiryField;
+use MediaWiki\HTMLForm\Field\HTMLFileField;
+use MediaWiki\HTMLForm\Field\HTMLFloatField;
+use MediaWiki\HTMLForm\Field\HTMLFormFieldCloner;
+use MediaWiki\HTMLForm\Field\HTMLHiddenField;
+use MediaWiki\HTMLForm\Field\HTMLInfoField;
+use MediaWiki\HTMLForm\Field\HTMLIntField;
+use MediaWiki\HTMLForm\Field\HTMLMultiSelectField;
+use MediaWiki\HTMLForm\Field\HTMLNamespacesMultiselectField;
+use MediaWiki\HTMLForm\Field\HTMLRadioField;
+use MediaWiki\HTMLForm\Field\HTMLSelectAndOtherField;
+use MediaWiki\HTMLForm\Field\HTMLSelectField;
+use MediaWiki\HTMLForm\Field\HTMLSelectLanguageField;
+use MediaWiki\HTMLForm\Field\HTMLSelectLimitField;
+use MediaWiki\HTMLForm\Field\HTMLSelectNamespace;
+use MediaWiki\HTMLForm\Field\HTMLSelectNamespaceWithButton;
+use MediaWiki\HTMLForm\Field\HTMLSelectOrOtherField;
+use MediaWiki\HTMLForm\Field\HTMLSizeFilterField;
+use MediaWiki\HTMLForm\Field\HTMLSubmitField;
+use MediaWiki\HTMLForm\Field\HTMLTagFilter;
+use MediaWiki\HTMLForm\Field\HTMLTagMultiselectField;
+use MediaWiki\HTMLForm\Field\HTMLTextAreaField;
+use MediaWiki\HTMLForm\Field\HTMLTextField;
+use MediaWiki\HTMLForm\Field\HTMLTextFieldWithButton;
+use MediaWiki\HTMLForm\Field\HTMLTimezoneField;
+use MediaWiki\HTMLForm\Field\HTMLTitlesMultiselectField;
+use MediaWiki\HTMLForm\Field\HTMLTitleTextField;
+use MediaWiki\HTMLForm\Field\HTMLUsersMultiselectField;
+use MediaWiki\HTMLForm\Field\HTMLUserTextField;
use MediaWiki\Linker\Linker;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\MainConfigNames;
@@ -33,6 +74,11 @@ use MediaWiki\Parser\Sanitizer;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\Title\TitleValue;
+use Message;
+use MessageSpecifier;
+use StatusValue;
+use Stringable;
+use Xml;
/**
* Object handling generic submission, CSRF protection, layout and
@@ -1362,7 +1408,7 @@ class HTMLForm extends ContextSource {
*
* @stable to override
* @param string $html HTML contents to wrap.
- * @return string|OOUI\Tag Wrapped HTML.
+ * @return string|\OOUI\Tag Wrapped HTML.
*/
public function wrapForm( $html ) {
# Include a