Ricordisamoa has uploaded a new change for review.
https://gerrit.wikimedia.org/r/233423
Change subject: [WIP] Convert SpecialModifyEntity and subclasses to HTMLForm
......................................................................
[WIP] Convert SpecialModifyEntity and subclasses to HTMLForm
Change-Id: I12339ee9cd9376cd108c49565e794077ac7dc07a
---
M repo/includes/specials/SpecialModifyEntity.php
M repo/includes/specials/SpecialModifyTerm.php
M repo/includes/specials/SpecialSetLabelDescriptionAliases.php
3 files changed, 111 insertions(+), 168 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/23/233423/1
diff --git a/repo/includes/specials/SpecialModifyEntity.php
b/repo/includes/specials/SpecialModifyEntity.php
index ed13cdb..301f50d 100644
--- a/repo/includes/specials/SpecialModifyEntity.php
+++ b/repo/includes/specials/SpecialModifyEntity.php
@@ -2,6 +2,7 @@
namespace Wikibase\Repo\Specials;
+use HTMLForm;
use Html;
use Wikibase\ChangeOp\ChangeOp;
use Wikibase\ChangeOp\ChangeOpException;
@@ -162,52 +163,29 @@
);
}
- // Form header
- $this->getOutput()->addHTML(
- Html::openElement(
- 'form',
- array(
- 'method' => 'post',
- 'action' =>
$this->getPageTitle()->getFullUrl(),
- 'name' => strtolower( $this->getName()
),
- 'id' => 'wb-' . strtolower(
$this->getName() ) . '-form1',
- 'class' => 'wb-form'
- )
- )
- . Html::openElement(
- 'fieldset',
- array( 'class' => 'wb-fieldset' )
- )
- . Html::element(
- 'legend',
- array( 'class' => 'wb-legend' ),
- $this->msg( 'special-' . strtolower(
$this->getName() ) )->text()
- )
- );
-
+ $formDescriptor = array();
// Form elements
- $this->getOutput()->addHTML( $this->getFormElements( $entity )
);
-
- // Form body
+ list( $intro, $formElements ) = $this->getFormElements( $entity
);
+ $this->getOutput()->addHTML( Html::rawElement( 'p', array(),
$intro->parse() ) );
+ $formDescriptor = array_merge( $formDescriptor, $formElements );
$submitKey = 'wikibase-' . strtolower( $this->getName() ) .
'-submit';
- $this->getOutput()->addHTML(
- Html::input(
- $submitKey,
- $this->msg( $submitKey )->text(),
- 'submit',
- array(
- 'id' => 'wb-' . strtolower(
$this->getName() ) . '-submit',
- 'class' => 'wb-button'
- )
- )
- . Html::input(
- 'wpEditToken',
- $this->getUser()->getEditToken(),
- 'hidden'
- )
- . Html::closeElement( 'fieldset' )
- . Html::closeElement( 'form' )
+ $formDescriptor[] = array(
+ 'type' => 'submit',
+ 'id' => 'wb-' . strtolower( $this->getName() ) .
'-submit',
+ 'cssclass' => 'wb-button',
+ 'name' => $submitKey,
+ 'default' => $this->msg( $submitKey )->text()
);
+ $sectionName = strtolower( $this->getName() );
+ foreach ( $formDescriptor as $name => $field ) {
+ $formDescriptor[$name]['section'] = $sectionName;
+ }
+ $htmlForm = new HTMLForm( $formDescriptor, $this->getContext(),
'special' );
+ $htmlForm
+ ->setId( 'wb-' . strtolower( $this->getName() ) .
'-form1' )
+ ->addHiddenField( 'wpEditToken',
$this->getUser()->getEditToken() )
+ ->suppressDefaultSubmit()
+ ->show();
}
/**
@@ -222,19 +200,15 @@
protected function getFormElements( Entity $entity = null ) {
$id = 'wb-modifyentity-id';
- return Html::label(
- $this->msg( 'wikibase-modifyentity-id' )->text(),
- $id,
- array( 'class' => 'wb-label' )
- )
- . Html::input(
- 'id',
- $entity === null ? '' : $entity->getId(),
- 'text',
- array(
- 'class' => 'wb-input',
- 'id' => $id
- )
+ return array(
+ 'id' => array(
+ 'label-message' => 'wikibase-modifyentity-id',
+ 'type' => 'text',
+ 'cssclass' => 'wb-input',
+ 'id' => $id,
+ 'default' => $entity === null ? '' :
$entity->getId(),
+ 'cssclass' => 'wb-input'
+ ),
);
}
diff --git a/repo/includes/specials/SpecialModifyTerm.php
b/repo/includes/specials/SpecialModifyTerm.php
index 143d03b..af7c639 100644
--- a/repo/includes/specials/SpecialModifyTerm.php
+++ b/repo/includes/specials/SpecialModifyTerm.php
@@ -192,75 +192,60 @@
$this->setValueIfNull( $entity );
- $valueinput = Html::input(
- 'value',
- $this->getRequest()->getVal( 'value' ) ?
$this->getRequest()->getVal( 'value' ) : $this->value,
- 'text',
- array(
- 'class' => 'wb-input',
- 'id' => 'wb-modifyterm-value',
- )
+ $valueinput = array(
+ 'name' => 'value',
+ 'cssclass' => 'wb-input',
+ 'id' => 'wb-modifyterm-value',
+ 'type' => 'text',
+ 'default' => $this->getRequest()->getVal( 'value' ) ?
$this->getRequest()->getVal( 'value' ) : $this->value
);
$languageName = Language::fetchLanguageName(
$this->languageCode, $this->getLanguage()->getCode() );
if ( $entity !== null && $this->languageCode !== null &&
$languageName !== '' ) {
- return Html::rawElement(
- 'p',
- array(),
- // Messages: wikibase-setlabel-introfull,
wikibase-setdescription-introfull,
- // wikibase-setaliases-introfull
- $this->msg(
- 'wikibase-' . strtolower(
$this->getName() ) . '-introfull',
- $this->getEntityTitle( $entity->getId()
)->getPrefixedText(),
- $languageName
- )->parse()
- )
- . Html::input( 'language', $this->languageCode,
'hidden' )
- . Html::input( 'id',
$entity->getId()->getSerialization(), 'hidden' )
- . Html::input( 'remove', 'remove', 'hidden' )
- . $valueinput;
+ // Messages: wikibase-setlabel-introfull,
wikibase-setdescription-introfull,
+ // wikibase-setaliases-introfull
+ $intro = $this->msg(
+ 'wikibase-' . strtolower( $this->getName() ) .
'-introfull',
+ $this->getEntityTitle( $entity->getId()
)->getPrefixedText(),
+ $languageName
+ );
+ $formDescriptor = array(
+ 'language' => array(
+ 'name' => 'language',
+ 'type' => 'hidden',
+ 'default' => $this->languageCode
+ ),
+ 'id' => array(
+ 'name' => 'id',
+ 'type' => 'hidden',
+ 'default' =>
$entity->getId()->getSerialization()
+ ),
+ 'remove' => array(
+ 'name' => 'remove',
+ 'type' => 'hidden',
+ 'default' => 'remove'
+ ),
+ 'value' => $valueinput
+ );
} else {
- return Html::rawElement(
- 'p',
- array(),
- // Messages: wikibase-setlabel-intro,
wikibase-setdescription-intro,
- // wikibase-setaliases-intro
- $this->msg( 'wikibase-' . strtolower(
$this->getName() ) . '-intro' )->parse()
- )
- . parent::getFormElements( $entity )
- . Html::element( 'br' )
- . Html::element(
- 'label',
- array(
- 'for' => 'wb-modifyterm-language',
- 'class' => 'wb-label'
- ),
- $this->msg( 'wikibase-modifyterm-language'
)->text()
- )
- . Html::input(
- 'language',
- $this->languageCode,
- 'text',
- array(
- 'class' => 'wb-input',
- 'id' => 'wb-modifyterm-language'
- )
- )
- . Html::element( 'br' )
- . Html::element(
- 'label',
- array(
- 'for' => 'wb-modifyterm-value',
- 'class' => 'wb-label'
- ),
- // Messages: wikibase-setlabel-label,
wikibase-setdescription-label,
- // wikibase-setaliases-label
- $this->msg( 'wikibase-' . strtolower(
$this->getName() ) . '-label' )->text()
- )
- . $valueinput
- . Html::element( 'br' );
+ // Messages: wikibase-setlabel-intro,
wikibase-setdescription-intro,
+ // wikibase-setaliases-intro
+ $intro = $this->msg( 'wikibase-' . strtolower(
$this->getName() ) . '-intro' );
+ $formDescriptor = parent::getFormElements( $entity );
+ $formDescriptor['language'] = array(
+ 'label-message' =>
'wikibase-modifyterm-language',
+ 'type' => 'text',
+ 'default' => $this->languageCode,
+ 'cssclass' => 'wb-input',
+ 'id' => 'wb-modifyterm-language'
+ );
+ // Messages: wikibase-setlabel-label,
wikibase-setdescription-label,
+ // wikibase-setaliases-label
+ $valueinput['label-message'] = 'wikibase-' .
strtolower( $this->getName() ) . '-label';
+ $formDescriptor['value'] = $valueinput;
}
+ return array( $intro, $formDescriptor );
}
private function setValueIfNull( FingerprintProvider
$fingerprintProvider = null ) {
diff --git a/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
b/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
index bf3117d..0f065e6 100644
--- a/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
+++ b/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
@@ -161,51 +161,41 @@
$languageName
);
- $html = Html::hidden(
- 'id',
- $entity->getId()->getSerialization()
+ $formDescriptor = array(
+ 'id' => array(
+ 'name' => 'id',
+ 'type' => 'hidden',
+ 'default' =>
$entity->getId()->getSerialization()
+ ),
+ 'language' => array(
+ 'name' => 'language',
+ 'type' => 'hidden',
+ 'default' => $this->languageCode
)
- . Html::hidden(
- 'language',
- $this->languageCode
- )
- . $this->getLabeledInputField( 'label',
$this->label )
- . Html::element( 'br' )
- . $this->getLabeledInputField( 'description',
$this->description )
- . Html::element( 'br' )
- . $this->getLabeledInputField( 'aliases',
implode( '|', $this->aliases ) );
+ );
+ $formDescriptor = array_merge(
+ $formDescriptor,
+ $this->getLabeledInputField( 'label',
$this->label ),
+ $this->getLabeledInputField( 'description',
$this->description ),
+ $this->getLabeledInputField( 'aliases',
implode( '|', $this->aliases ) )
+ );
} else {
$intro = $this->msg(
'wikibase-setlabeldescriptionaliases-intro' );
$fieldId =
'wikibase-setlabeldescriptionaliases-language';
$languageCode = $this->languageCode ? :
$this->getLanguage()->getCode();
- $html = parent::getFormElements( $entity )
- . Html::element( 'br' )
- . Html::label(
- $this->msg(
'wikibase-modifyterm-language' )->text(),
- $fieldId,
- array(
- 'class' => 'wb-label',
- )
- )
- . Html::input(
- 'language',
- $languageCode,
- 'text',
- array(
- 'class' => 'wb-input',
- 'id' => $fieldId,
- )
- );
+ $formDescriptor = parent::getFormElements( $entity );
+ $formDescriptor['language'] = array(
+ 'name' => 'language',
+ 'default' => $languageCode,
+ 'type' => 'text',
+ 'cssclass' => 'wb-input',
+ 'id' => $fieldId,
+ 'label-message' =>
'wikibase-modifyterm-language'
+ );
}
- return Html::rawElement(
- 'p',
- array(),
- $intro->parse()
- )
- . $html
- . Html::element( 'br' );
+ return array( $intro, $formDescriptor );
}
/**
@@ -223,21 +213,15 @@
// wikibase-setlabeldescriptionaliases-label-label
// wikibase-setlabeldescriptionaliases-description-label
// wikibase-setlabeldescriptionaliases-aliases-label
- return Html::label(
- $this->msg( $fieldId . '-label' )->text(),
- $fieldId,
- array(
- 'class' => 'wb-label',
- )
- )
- . Html::input(
- $termType,
- $value,
- 'text',
- array(
- 'class' => 'wb-input',
+ return array(
+ $termType => array(
+ 'name' => $termType,
+ 'default' => $value,
+ 'type' => 'text',
+ 'cssclass' => 'wb-input',
'id' => $fieldId,
'placeholder' => $value,
+ 'label-message' => $fieldId . '-label'
)
);
}
--
To view, visit https://gerrit.wikimedia.org/r/233423
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I12339ee9cd9376cd108c49565e794077ac7dc07a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Ricordisamoa <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits