mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-18 00:09:06 +01:00
jsonCompositeValue & supannCompositeValue: fix checking value method
Use LSformRule::validate_values() to check value instead of reimplementing incomplete checking method.
This commit is contained in:
parent
988d744836
commit
ba8b78706a
2 changed files with 52 additions and 62 deletions
|
@ -363,71 +363,62 @@ class LSformElement_jsonCompositeAttribute extends LSformElement {
|
||||||
* @retval void
|
* @retval void
|
||||||
**/
|
**/
|
||||||
private function checkComponentValues($c, $value) {
|
private function checkComponentValues($c, $value) {
|
||||||
|
// Check select_list component's values
|
||||||
|
if ($this -> getComponentConfig($c, 'type') == 'select_list') {
|
||||||
if ($this -> getComponentConfig($c, 'multiple', false, 'bool')) {
|
if ($this -> getComponentConfig($c, 'multiple', false, 'bool')) {
|
||||||
foreach ($value as $val) {
|
foreach ($value as $val) {
|
||||||
$this -> checkComponentValue($c, $val);
|
$this -> checkSelectListComponentValue($c, $val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$this -> checkComponentValue($c, $value);
|
$this -> checkSelectListComponentValue($c, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply check data rules
|
||||||
|
LSsession :: loadLSclass('LSformRule', null, true);
|
||||||
|
foreach($this -> getComponentConfig($c, 'check_data', array(), 'array') as $ruleType => $rconf) {
|
||||||
|
$errors = LSformRule :: validate_values($ruleType, $value, $rconf, $this);
|
||||||
|
if (is_array($errors)) {
|
||||||
|
$retval = false;
|
||||||
|
foreach ($errors as $error) {
|
||||||
|
$this -> form -> setElementError(
|
||||||
|
$this -> attr_html,
|
||||||
|
getFData(
|
||||||
|
__('%{label}: %{error}'),
|
||||||
|
array(
|
||||||
|
'label' => __($this -> getComponentConfig($c, 'label')),
|
||||||
|
'error' => $error,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check one component's value
|
* Check one select_list component's value
|
||||||
*
|
*
|
||||||
* @param[] $c The component name
|
* @param[] $c The component name
|
||||||
* @param[] $value The value to check
|
* @param[] $value The value to check
|
||||||
*
|
*
|
||||||
* @retval void
|
* @retval void
|
||||||
**/
|
**/
|
||||||
private function checkComponentValue($c, $value) {
|
private function checkSelectListComponentValue($c, $value) {
|
||||||
$label = __($this -> getComponentConfig($c, 'label'));
|
|
||||||
|
|
||||||
// select_list components : check values
|
|
||||||
if ($this -> getComponentConfig($c, 'type') == 'select_list') {
|
|
||||||
if (!$this -> getSelectListComponentValueLabel($c, $value)) {
|
if (!$this -> getSelectListComponentValueLabel($c, $value)) {
|
||||||
$this -> form -> setElementError(
|
$this -> form -> setElementError(
|
||||||
$this -> attr_html,
|
$this -> attr_html,
|
||||||
getFData(
|
getFData(
|
||||||
_('Invalid value "%{value}" for component %{component}.'),
|
_('Invalid value "%{value}" for component %{component}.'),
|
||||||
array('value' => $value, 'component' => $label)
|
array(
|
||||||
|
'value' => $value,
|
||||||
|
'component' => __($this -> getComponentConfig($c, 'label'))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply check data rules
|
|
||||||
foreach($this -> getComponentConfig($c, 'check_data', array(), 'array') as $ruleType => $rconf) {
|
|
||||||
$className = 'LSformRule_'.$ruleType;
|
|
||||||
if (LSsession::loadLSclass($className)) {
|
|
||||||
$r = new $className();
|
|
||||||
if (!$r -> validate($value, $rconf, $this)) {
|
|
||||||
if (isset($rconf['msg'])) {
|
|
||||||
$this -> form -> setElementError(
|
|
||||||
$this -> attr_html,
|
|
||||||
getFData(__($rconf['msg']), $label)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this -> form -> setElementError(
|
|
||||||
$this -> attr_html,
|
|
||||||
getFData(
|
|
||||||
_('Invalid value "%{value}" for component %{component}.'),
|
|
||||||
array('value' => $value, 'component' => $label)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this -> form -> setElementError(
|
|
||||||
$this -> attr_html,
|
|
||||||
getFData(_("Can't validate value of component %{c}."), $label)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a configuration parameter for a specific component (or default value)
|
* Return a configuration parameter for a specific component (or default value)
|
||||||
*
|
*
|
||||||
|
|
|
@ -470,22 +470,21 @@ class LSformElement_supannCompositeAttribute extends LSformElement {
|
||||||
|
|
||||||
// Check component value (if configured)
|
// Check component value (if configured)
|
||||||
if (isset($cconf['check_data']) && is_array($cconf['check_data'])) {
|
if (isset($cconf['check_data']) && is_array($cconf['check_data'])) {
|
||||||
|
LSsession :: loadLSclass('LSformRule', null, true);
|
||||||
foreach($cconf['check_data'] as $ruleType => $rconf) {
|
foreach($cconf['check_data'] as $ruleType => $rconf) {
|
||||||
$className = 'LSformRule_'.$ruleType;
|
$cerrors = LSformRule :: validate_values($ruleType, $value, $rconf, $this);
|
||||||
if (!LSsession::loadLSclass($className)) {
|
if (is_array($cerrors))
|
||||||
$errors[] = getFData(__("Can't validate value of component %{c}."),__($cconf['label']));
|
foreach ($cerrors as $cerror)
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$r = new $className();
|
|
||||||
if (!$r -> validate($value, $rconf, $this)) {
|
|
||||||
$errors[] = getFData(
|
$errors[] = getFData(
|
||||||
__(LSconfig :: get('msg', 'Invalid value for component %{c}.', 'string', $rconf)),
|
__('%{label}: %{error}'),
|
||||||
__($cconf['label'])
|
array(
|
||||||
|
'label' => __($cconf['label']),
|
||||||
|
'error' => $cerror,
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Check required component is defined
|
// Check required component is defined
|
||||||
foreach($this -> components as $c => $cconf) {
|
foreach($this -> components as $c => $cconf) {
|
||||||
|
|
Loading…
Reference in a new issue