if ( ( $this->mPreview || !$isText ) && $content ) {
// NOTE: non-text content has no source view, so always use rendered preview
- // Hide [edit]s
$popts = $out->parserOptions();
- $popts->setEditSection( false );
$pout = $content->getParserOutput( $this->mTargetObj, $rev->getId(), $popts, true );
$out->addParserOutput( $pout, [
] );
}
+ $out->enableOOUI();
+ $buttonFields = [];
+
if ( $isText ) {
// source view for textual content
- $sourceView = Xml::element(
- 'textarea',
- [
- 'readonly' => 'readonly',
- 'cols' => 80,
- 'rows' => 25
- ],
- $content->getNativeData() . "\n"
- );
+ $sourceView = Xml::element( 'textarea', [
+ 'readonly' => 'readonly',
+ 'cols' => 80,
+ 'rows' => 25
+ ], $content->getNativeData() . "\n" );
- $previewButton = Xml::element( 'input', [
+ $buttonFields[] = new OOUI\ButtonInputWidget( [
'type' => 'submit',
'name' => 'preview',
- 'value' => $this->msg( 'showpreview' )->text()
+ 'label' => $this->msg( 'showpreview' )->text()
] );
} else {
$sourceView = '';
$previewButton = '';
}
- $diffButton = Xml::element( 'input', [
+ $buttonFields[] = new OOUI\ButtonInputWidget( [
'name' => 'diff',
'type' => 'submit',
- 'value' => $this->msg( 'showdiff' )->text() ] );
+ 'label' => $this->msg( 'showdiff' )->text()
+ ] );
$out->addHTML(
$sourceView .
'type' => 'hidden',
'name' => 'wpEditToken',
'value' => $user->getEditToken() ] ) .
- $previewButton .
- $diffButton .
+ new OOUI\FieldLayout(
+ new OOUI\Widget( [
+ 'content' => new OOUI\HorizontalLayout( [
+ 'items' => $buttonFields
+ ] )
+ ] )
+ ) .
Xml::closeElement( 'form' ) .
Xml::closeElement( 'div' )
);
'content' => new OOUI\HtmlSnippet( $this->msg( 'undeleteextrahelp' )->parseAsBlock() )
] );
+ $conf = $this->getConfig();
+ $oldCommentSchema = $conf->get( 'CommentTableSchemaMigrationStage' ) === MIGRATION_OLD;
+
$fields[] = new OOUI\FieldLayout(
new OOUI\TextInputWidget( [
'name' => 'wpComment',
'infusable' => true,
'value' => $this->mComment,
'autofocus' => true,
+ // HTML maxlength uses "UTF-16 code units", which means that characters outside BMP
+ // (e.g. emojis) count for two each. This limit is overridden in JS to instead count
+ // Unicode codepoints (or 255 UTF-8 bytes for old schema).
+ 'maxLength' => $oldCommentSchema ? 255 : CommentStore::COMMENT_CHARACTER_LIMIT,
] ),
[
'label' => $this->msg( 'undeletecomment' )->text(),