https://www.mediawiki.org/wiki/Special:Code/MediaWiki/108309
Revision: 108309
Author: jeroendedauw
Date: 2012-01-07 09:08:29 +0000 (Sat, 07 Jan 2012)
Log Message:
-----------
fixed issue occuring when validation failed for a new item. got to love htmlform
Modified Paths:
--------------
trunk/extensions/EducationProgram/includes/EPCourse.php
trunk/extensions/EducationProgram/includes/EPOrg.php
trunk/extensions/EducationProgram/includes/EPTerm.php
trunk/extensions/EducationProgram/specials/SpecialEPFormPage.php
trunk/extensions/EducationProgram/specials/SpecialEditInstitution.php
Modified: trunk/extensions/EducationProgram/includes/EPCourse.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPCourse.php 2012-01-07
06:13:01 UTC (rev 108308)
+++ trunk/extensions/EducationProgram/includes/EPCourse.php 2012-01-07
09:08:29 UTC (rev 108309)
@@ -213,7 +213,7 @@
'submit'
) );
- $out->addHTML( Html::hidden( 'newEditToken',
$context->getUser()->editToken() ) );
+ $out->addHTML( Html::hidden( 'isnew', 1 ) );
$out->addHTML( '</fieldset></form>' );
Modified: trunk/extensions/EducationProgram/includes/EPOrg.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPOrg.php 2012-01-07
06:13:01 UTC (rev 108308)
+++ trunk/extensions/EducationProgram/includes/EPOrg.php 2012-01-07
09:08:29 UTC (rev 108309)
@@ -233,7 +233,7 @@
'submit'
) );
- $out->addHTML( Html::hidden( 'newEditToken',
$context->getUser()->editToken() ) );
+ $out->addHTML( Html::hidden( 'isnew', 1 ) );
$out->addHTML( '</fieldset></form>' );
Modified: trunk/extensions/EducationProgram/includes/EPTerm.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPTerm.php 2012-01-07
06:13:01 UTC (rev 108308)
+++ trunk/extensions/EducationProgram/includes/EPTerm.php 2012-01-07
09:08:29 UTC (rev 108309)
@@ -229,7 +229,7 @@
'submit'
) );
- $out->addHTML( Html::hidden( 'newEditToken',
$context->getUser()->editToken() ) );
+ $out->addHTML( Html::hidden( 'isnew', 1 ) );
$out->addHTML( '</fieldset></form>' );
Modified: trunk/extensions/EducationProgram/specials/SpecialEPFormPage.php
===================================================================
--- trunk/extensions/EducationProgram/specials/SpecialEPFormPage.php
2012-01-07 06:13:01 UTC (rev 108308)
+++ trunk/extensions/EducationProgram/specials/SpecialEPFormPage.php
2012-01-07 09:08:29 UTC (rev 108309)
@@ -149,7 +149,8 @@
static $isNew = null;
if ( is_null( $isNew ) ) {
- $isNew = $this->getRequest()->wasPosted() &&
$this->getUser()->matchEditToken( $this->getRequest()->getVal( 'newEditToken' )
);
+ $isNew = $this->getRequest()->wasPosted() &&
+ ( $this->getRequest()->getCheck( 'isnew' ) ||
$this->getRequest()->getCheck( 'wpisnew' ) );
}
return $isNew;
@@ -163,7 +164,7 @@
protected function showForm() {
$form = $this->getForm();
- if ( $this->isNew() ) {
+ if ( $this->getRequest()->wasPosted() &&
$this->getRequest()->getCheck( 'isnew' ) ) {
$form->prepareForm();
$form->displayForm( Status::newGood() );
}
@@ -204,8 +205,17 @@
* @return HTMLForm|null
*/
protected function getForm() {
- $form = new HTMLForm( $this->getFormFields(),
$this->getContext() );
+ $fields = $this->getFormFields();
+ if ( $this->isNew() ) {
+ $fields['isnew'] = array(
+ 'type' => 'hidden',
+ 'default' => 1
+ );
+ }
+
+ $form = new HTMLForm( $fields, $this->getContext() );
+
$form->setSubmitCallback( array( $this, 'handleSubmission' ) );
$form->setSubmitText( wfMsg( 'educationprogram-org-submit' ) );
@@ -239,12 +249,14 @@
$fields = array();
$fields['id'] = array( 'type' => 'hidden' );
-
+
+ $req = $this->getRequest();
+
// This sort of sucks as well. Meh, HTMLForm is odd.
- if ( $this->getRequest()->wasPosted()
- && $this->getUser()->matchEditToken(
$this->getRequest()->getVal( 'wpEditToken' ) )
- && $this->getRequest()->getCheck( 'wpitem-id' ) ) {
- $fields['id']['default'] = $this->getRequest()->getInt(
'wpitem-id' );
+ if ( $req->wasPosted()
+ && $this->getUser()->matchEditToken( $req->getVal(
'wpEditToken' ) )
+ && $req->getCheck( 'wpitem-id' ) ) {
+ $fields['id']['default'] = $req->getInt( 'wpitem-id' );
}
return $fields;
@@ -272,7 +284,7 @@
$mappedFields = array();
foreach ( $fields as $name => $field ) {
- if ( $this->isNew() ) {
+ if ( $this->getRequest()->getCheck( 'isnew' ) ) {
// HTML form is being a huge pain in running
the validation on post,
// so just remove it if when not appropriate.
unset( $field['validation-callback'] );
@@ -326,7 +338,7 @@
$matches = array();
if ( preg_match( '/item-(.+)/', $name, $matches ) ) {
- if ( $matches[1] === 'id' && $value === '' ) {
+ if ( $matches[1] === 'id' && ( $value === '' ||
$value === '0' ) ) {
$value = null;
}
Modified: trunk/extensions/EducationProgram/specials/SpecialEditInstitution.php
===================================================================
--- trunk/extensions/EducationProgram/specials/SpecialEditInstitution.php
2012-01-07 06:13:01 UTC (rev 108308)
+++ trunk/extensions/EducationProgram/specials/SpecialEditInstitution.php
2012-01-07 09:08:29 UTC (rev 108309)
@@ -72,7 +72,7 @@
* @return string|true
*/
public function countryIsValid( $value, array $alldata = null ) {
- $countries = array_keys( CountryNames::getNames(
$this->getLang()->getCode() ) );
+ $countries = array_keys( CountryNames::getNames(
$this->getLanguage()->getCode() ) );
if ( $this->isNew() ) {
array_unshift( $countries, '' );
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs