diff options
author | carlgmathisen <> | 2008-10-30 17:07:05 +0000 |
---|---|---|
committer | carlgmathisen <> | 2008-10-30 17:07:05 +0000 |
commit | efc2ce4a4e469085a10a424f2fd09ce688fb6b31 (patch) | |
tree | 6f0aef272f4ea2c9857dc12c15d5e9efa5d4cf2e | |
parent | 4baf17880e3c83b6900794459d2ebb9adf379aa3 (diff) |
Issue 39 - Implement validator not requiring ControlToValidate
-rw-r--r-- | HISTORY | 9 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TBaseValidator.php | 8 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TCustomValidator.php | 25 |
3 files changed, 33 insertions, 9 deletions
@@ -25,9 +25,11 @@ BUG: Ticket#908 - TDbCache::init / Exception (Knut) BUG: Ticket#922 - Problem with TUrlMapping and urlencoding (Michael) BUG: Ticket#938 - TPageStateFormatter EnableStateEncryption causes massive page state (Michael) BUG: Ticket#942 - MultiLine TInplaceTextBox (Christophe) +BUG: Ticket#38 - (trac:835) TValidationSummary, works different when it's showing Javascript Validation than Server Validation (Carl) CHG: Ticket#844 - Upgraded TinyMCE to 3.1.0.1 (Christophe) CHG: Ticket#917 - TUrlMapping - change members to protected (Michael) CHG: Ticket#919 - TUserManager loadUserData function (Michael) +CHG: Ticket#39 - Implement validator not requiring ControlToValidate (Carl) ENH: Workaround for slow meta data retrieval in MySQL<5.1.21 (Michael) ENH: Ticket#756 - TDateFormat & TNumberFormat - allow settings default text when Value isn't set. (Carl) ENH: Ticket#823 - PromptText/PromptValue only populated if there is data (Knut) @@ -46,6 +48,9 @@ ENH: Ticket#911 - prado-cli: Better error message if database connection fails w ENH: Ticket#913 - PRADO Copyright notice in HTML source (Carl) ENH: Ticket#925 - TTimeTriggeredCallback update interval during callback (Brad, Christophe) ENH: Ticket#941 - Add addRoute() method to TLogRouter (Michael) +ENH: Ticket#46 - TColorPicker - Output is missing alt tag (Carl) +ENH: Ticket#32 - (trac:861) Implement ability to specify default service ID (Carl) +ENH: Ticket#31 - (trac:867) Consider UTF MessageSource_XLIFF class file (Carl) NEW: Added Prado.Validation.validateControl(id) on client side to validate a specific control (Michael) NEW: Added MessageSource_Database to I18N (uses TDbConnection) (Michael) NEW: Ticket#790 - Added TActiveFileUpload (Bradley, Christophe) @@ -53,10 +58,6 @@ NEW: Ticket#935 - Added TActiveDatePicker (Bradley, Christophe) NEW: Ticket#857 - Added Authentication expiration support to TAuthManager (Michael) NEW: Ticket#853 - Added Drag and drop components (Christophe) NEW: Ticket#891 - Added method that returns table name to TActiveRecord (Michael) -BUG: Ticket#38 - (trac:835) TValidationSummary, works different when it's showing Javascript Validation than Server Validation (Carl) -ENH: Ticket#32 - (trac:861) Implement ability to specify default service ID (Carl) -ENH: Ticket#31 - (trac:867) Consider UTF MessageSource_XLIFF class file (Carl) -ENH: Ticket#46 - TColorPicker - Output is missing alt tag (Carl) Version 3.1.2 April 21, 2008 ============================ diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php index 56239bcb..b418885c 100644 --- a/framework/Web/UI/WebControls/TBaseValidator.php +++ b/framework/Web/UI/WebControls/TBaseValidator.php @@ -496,7 +496,7 @@ abstract class TBaseValidator extends TLabel implements IValidator $this->setIsValid(true); $this->onValidate(); if($this->getVisible(true) && $this->getEnabled(true)) - { + { // if the target is not a disabled web control if(($target=$this->getValidationTarget())!==null && !($target instanceof TWebControl && !$target->getEnabled(true))) { @@ -512,6 +512,12 @@ abstract class TBaseValidator extends TLabel implements IValidator $this->onValidationError(); } } + else + { + $this->evaluateIsValid(); + $this->setIsValid(true); + $this->onValidationSuccess(); + } } return $this->getIsValid(); } diff --git a/framework/Web/UI/WebControls/TCustomValidator.php b/framework/Web/UI/WebControls/TCustomValidator.php index fe540c80..0b82ac5c 100644 --- a/framework/Web/UI/WebControls/TCustomValidator.php +++ b/framework/Web/UI/WebControls/TCustomValidator.php @@ -4,7 +4,7 @@ *
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
- * @copyright Copyright © 2005-2008 PradoSoft + * @copyright Copyright © 2005-2008 PradoSoft
* @license http://www.pradosoft.com/license/
* @version $Id$
* @package System.Web.UI.WebControls
@@ -88,7 +88,9 @@ class TCustomValidator extends TBaseValidator */
public function evaluateIsValid()
{
- $value=$this->getValidationValue($this->getValidationTarget());
+ $value = '';
+ if($this->getValidationTarget()!==null)
+ $value=$this->getValidationValue($this->getValidationTarget());
return $this->onServerValidate($value);
}
@@ -105,9 +107,24 @@ class TCustomValidator extends TBaseValidator {
$param=new TServerValidateEventParameter($value,true);
$this->raiseEvent('OnServerValidate',$this,$param);
- return $param->getIsValid();
+ if($this->getValidationTarget()==null)
+ return true;
+ else
+ return $param->getIsValid();
+ }
+
+ /**
+ * @return TControl control to be validated. Null if no control is found.
+ */
+ protected function getValidationTarget()
+ {
+ if(($id=$this->getControlToValidate())!=='' && ($control=$this->findControl($id))!==null)
+ return $control;
+ else if(($id=$this->getControlToValidate())!=='')
+ throw new TInvalidDataTypeException('basevalidator_validatable_required',get_class($this));
+ else
+ return null;
}
-
/**
* Returns an array of javascript validator options.
|