summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/Web/UI/TPage.php2
-rw-r--r--framework/Web/UI/TTemplateManager.php3
-rw-r--r--framework/Web/UI/WebControls/TBaseValidator.php10
-rw-r--r--framework/Web/UI/WebControls/TCheckBox.php9
-rw-r--r--framework/Web/UI/WebControls/TRequiredFieldValidator.php2
5 files changed, 9 insertions, 17 deletions
diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php
index 1dfc3b1e..53090e7f 100644
--- a/framework/Web/UI/TPage.php
+++ b/framework/Web/UI/TPage.php
@@ -288,8 +288,10 @@ class TPage extends TTemplateControl
{
Prado::trace("Page validate",'System.Web.UI.TPage');
foreach($this->_validators as $validator)
+ {
if($validator->getValidationGroup()===$validationGroup)
$validator->validate();
+ }
}
}
diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php
index 0205fb7f..07e27891 100644
--- a/framework/Web/UI/TTemplateManager.php
+++ b/framework/Web/UI/TTemplateManager.php
@@ -735,7 +735,8 @@ class TTemplate extends TComponent implements ITemplate
throw new TTemplateParsingException('template_event_forbidden',$name);
else
{
- if(!is_callable(array($className,'set'.$name)))
+ // id is still alowed for TComponent, even if id property doesn't exist
+ if(strcasecmp($name,'id')!==0 && !is_callable(array($className,'set'.$name)))
{
if(is_callable(array($className,'get'.$name)))
throw new TTemplateParsingException('template_property_readonly',$name);
diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php
index af8eb7e9..5110230b 100644
--- a/framework/Web/UI/WebControls/TBaseValidator.php
+++ b/framework/Web/UI/WebControls/TBaseValidator.php
@@ -154,7 +154,7 @@ abstract class TBaseValidator extends TLabel implements IValidator
$scriptKey = "TBaseValidator:$formID";
if($this->getEnableClientScript() && !$scripts->isEndScriptRegistered($scriptKey))
{
- $scripts->registerClientScript('validator');
+ $scripts->registerClientScript('validator');
$scripts->registerEndScript($scriptKey, "Prado.Validation.AddForm('$formID');");
}
if($this->getEnableClientScript())
@@ -361,13 +361,7 @@ abstract class TBaseValidator extends TLabel implements IValidator
protected function getValidationValue($control)
{
if($control instanceof IValidatable)
- {
- $value=$control->getValidationPropertyValue();
- //if($value instanceof TListItem)
- // return $value->getValue();
- //else
- return TPropertyValue::ensureString($value);
- }
+ return $control->getValidationPropertyValue();
else
throw new TInvalidDataTypeException('basevalidator_validatable_required');
}
diff --git a/framework/Web/UI/WebControls/TCheckBox.php b/framework/Web/UI/WebControls/TCheckBox.php
index 47fabd20..98084009 100644
--- a/framework/Web/UI/WebControls/TCheckBox.php
+++ b/framework/Web/UI/WebControls/TCheckBox.php
@@ -76,13 +76,8 @@ class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatabl
*/
public function raisePostDataChangedEvent()
{
- $page=$this->getPage();
- if($this->getAutoPostBack() && !$page->getPostBackEventTarget())
- {
- $page->setPostBackEventTarget($this);
- if($this->getCausesValidation())
- $page->validate($this->getValidationGroup());
- }
+ if($this->getAutoPostBack() && $this->getCausesValidation())
+ $this->getPage()->validate($this->getValidationGroup());
$this->onCheckedChanged(null);
}
diff --git a/framework/Web/UI/WebControls/TRequiredFieldValidator.php b/framework/Web/UI/WebControls/TRequiredFieldValidator.php
index df6c2abf..702fc5d2 100644
--- a/framework/Web/UI/WebControls/TRequiredFieldValidator.php
+++ b/framework/Web/UI/WebControls/TRequiredFieldValidator.php
@@ -58,7 +58,7 @@ class TRequiredFieldValidator extends TBaseValidator
protected function evaluateIsValid()
{
$value=$this->getValidationValue($this->getValidationTarget());
- return trim($value)!==trim($this->getInitialValue());
+ return trim($value)!==trim($this->getInitialValue()) || (is_bool($value) && $value);
}
/**