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 <ricordisa...@openmailbox.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits