http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89597
Revision: 89597
Author: salvatoreingala
Date: 2011-06-06 19:45:29 +0000 (Mon, 06 Jun 2011)
Log Message:
-----------
- Bugfix in client side validation in presence of not-"required" fields
- Using newer PHP syntax, per r89584#c17673
Modified Paths:
--------------
branches/salvatoreingala/Gadgets/Gadgets_body.php
branches/salvatoreingala/Gadgets/modules/jquery.formBuilder.js
Modified: branches/salvatoreingala/Gadgets/Gadgets_body.php
===================================================================
--- branches/salvatoreingala/Gadgets/Gadgets_body.php 2011-06-06 19:35:23 UTC
(rev 89596)
+++ branches/salvatoreingala/Gadgets/Gadgets_body.php 2011-06-06 19:45:29 UTC
(rev 89597)
@@ -266,7 +266,7 @@
'number' => array(
'default' => array(
'isMandatory' => true,
- 'checker' => array( 'Gadget', 'isFloatOrInt' )
+ 'checker' => 'Gadget::isFloatOrInt'
),
'label' => array(
'isMandatory' => true,
@@ -282,19 +282,19 @@
),
'min' => array(
'isMandatory' => false,
- 'checker' => array( 'Gadget', 'isFloatOrInt' )
+ 'checker' => 'Gadget::isFloatOrInt'
),
'max' => array(
'isMandatory' => false,
- 'checker' => array( 'Gadget', 'isFloatOrInt' )
+ 'checker' => 'Gadget::isFloatOrInt'
)
)
);
//Type-specific checkers for finer validation
private static $typeCheckers = array(
- 'string' => array( 'Gadget', 'checkStringOption' ),
- 'number' => array( 'Gadget', 'checkNumberOption' )
+ 'string' => 'Gadget::checkStringOption',
+ 'number' => 'Gadget::checkNumberOption'
);
//Further checks for 'string' options
@@ -724,10 +724,9 @@
if ( !isset(
self::$prefsDescriptionSpecifications[$type] ) ) {
return false;
}
-
+
//TODO: check $option name compliance
-
//Check if all fields satisfy specification
$typeSpec =
self::$prefsDescriptionSpecifications[$type];
$count = 0; //count of present mandatory members
Modified: branches/salvatoreingala/Gadgets/modules/jquery.formBuilder.js
===================================================================
--- branches/salvatoreingala/Gadgets/modules/jquery.formBuilder.js
2011-06-06 19:35:23 UTC (rev 89596)
+++ branches/salvatoreingala/Gadgets/modules/jquery.formBuilder.js
2011-06-06 19:45:29 UTC (rev 89597)
@@ -18,6 +18,16 @@
}
+ function testOptional( value, element ) {
+ var rules = $( element ).rules();
+ if ( typeof rules.required == 'undefined' || rules.required ===
false ) {
+ if ( value.length == 0 ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
//validator for "required" fields (without trimming whitespaces)
$.validator.addMethod( "requiredStrict", function( value, element ) {
return value.length > 0;
@@ -25,17 +35,17 @@
//validator for "minlength" fields (without trimming whitespaces)
$.validator.addMethod( "minlengthStrict", function( value, element,
param ) {
- return value.length >= param;
+ return testOptional( value, element ) || value.length >= param;
} );
//validator for "maxlength" fields (without trimming whitespaces)
$.validator.addMethod( "maxlengthStrict", function( value, element,
param ) {
- return value.length <= param;
+ return testOptional( value, element ) || value.length <= param;
} );
//validator for integer fields
$.validator.addMethod( "integer", function( value, element ) {
- return this.optional( element ) || /^-?\d+$/.test(value);
+ return testOptional( value, element ) || /^-?\d+$/.test(value);
}, mw.msg( 'gadgets-formbuilder-integer' ) );
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs