summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY9
-rw-r--r--framework/Web/UI/WebControls/TBaseValidator.php8
-rw-r--r--framework/Web/UI/WebControls/TCustomValidator.php25
3 files changed, 33 insertions, 9 deletions
diff --git a/HISTORY b/HISTORY
index 38e46cb5..7464f033 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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 &copy; 2005-2008 PradoSoft
+ * @copyright Copyright &copy; 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.