use same attribute validation

based on SeedDMS_Core::AttributeDefinition->validate() and getAttributeValidationText()
This commit is contained in:
Uwe Steinmann 2016-10-27 09:19:35 +02:00
parent 44f89b9949
commit 02d641786b
5 changed files with 12 additions and 101 deletions

View File

@ -55,46 +55,10 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common {
$attrdef = $dms->getAttributeDefinition($attrdefid); $attrdef = $dms->getAttributeDefinition($attrdefid);
if($attribute) { if($attribute) {
if(!$attrdef->validate($attribute)) { if(!$attrdef->validate($attribute)) {
$this->error = $attrdef->getValidationError(); $this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
switch($attrdef->getValidationError()) {
case 5:
$this->errormsg = getMLText("attr_malformed_email", array("attrname"=>$attrdef->getName(), "value"=>$attribute));
break;
case 4:
$this->errormsg = getMLText("attr_malformed_url", array("attrname"=>$attrdef->getName(), "value"=>$attribute));
break;
case 3:
$this->errormsg = getMLText("attr_no_regex_match", array("attrname"=>$attrdef->getName(), "value"=>$attribute, "regex"=>$attrdef->getRegex()));
break;
case 2:
$this->errormsg = getMLText("attr_max_values", array("attrname"=>$attrdef->getName()));
break;
case 1:
$this->errormsg = getMLText("attr_min_values", array("attrname"=>$attrdef->getName()));
break;
default:
$this->errormsg = getMLText("error_occured");
}
return false; return false;
} }
/*
if($attrdef->getRegex()) {
if(!preg_match($attrdef->getRegex(), $attribute)) {
$this->error = 1;
return false;
}
}
if(is_array($attribute)) {
if($attrdef->getMinValues() > count($attribute)) {
$this->error = 2;
return false;
}
if($attrdef->getMaxValues() && $attrdef->getMaxValues() < count($attribute)) {
$this->error = 3;
return false;
}
}
*/
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) { if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
if(!$folder->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute)) if(!$folder->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute))
return false; return false;

View File

@ -97,22 +97,11 @@ else
foreach($attributes_version as $attrdefid=>$attribute) { foreach($attributes_version as $attrdefid=>$attribute) {
$attrdef = $dms->getAttributeDefinition($attrdefid); $attrdef = $dms->getAttributeDefinition($attrdefid);
if($attribute) { if($attribute) {
if($attrdef->getRegex()) { if(!$attrdef->validate($attribute)) {
if(!preg_match($attrdef->getRegex(), $attribute)) { $errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_no_regex_match")); UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),$errmsg);
} }
} }
if(is_array($attribute)) {
if($attrdef->getMinValues() > count($attribute)) {
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
}
if($attrdef->getMaxValues() && $attrdef->getMaxValues() < count($attribute)) {
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_max_values", array("attrname"=>$attrdef->getName())));
}
}
} elseif($attrdef->getMinValues() > 0) {
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
}
} }
$reqversion = (int)$_POST["reqversion"]; $reqversion = (int)$_POST["reqversion"];

View File

@ -66,18 +66,9 @@ else
foreach($attributes as $attrdefid=>$attribute) { foreach($attributes as $attrdefid=>$attribute) {
$attrdef = $dms->getAttributeDefinition($attrdefid); $attrdef = $dms->getAttributeDefinition($attrdefid);
if($attribute) { if($attribute) {
if($attrdef->getRegex()) { if(!$attrdef->validate($attribute)) {
if(!preg_match($attrdef->getRegex(), $attribute)) { $errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
UI::exitError(getMLText("folder_title", array("foldername" => $document->getName())),getMLText("attr_no_regex_match")); UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())), $errmsg);
}
}
if(is_array($attribute)) {
if($attrdef->getMinValues() > count($attribute)) {
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
}
if($attrdef->getMaxValues() && $attrdef->getMaxValues() < count($attribute)) {
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_max_values", array("attrname"=>$attrdef->getName())));
}
} }
} }
} }

View File

@ -261,41 +261,9 @@ if($attributes) {
$attrdef = $dms->getAttributeDefinition($attrdefid); $attrdef = $dms->getAttributeDefinition($attrdefid);
if($attribute) { if($attribute) {
if(!$attrdef->validate($attribute)) { if(!$attrdef->validate($attribute)) {
switch($attrdef->getValidationError()) { $errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
case 5: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $errmsg);
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_malformed_email", array("attrname"=>$attrdef->getName(), "value"=>$attribute)));
break;
case 4:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_malformed_url", array("attrname"=>$attrdef->getName(), "value"=>$attribute)));
break;
case 3:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_no_regex_match", array("attrname"=>$attrdef->getName(), "value"=>$attribute, "regex"=>$attrdef->getRegex())));
break;
case 2:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_max_values", array("attrname"=>$attrdef->getName())));
break;
case 1:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
break;
default:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
} }
}
/*
if($attrdef->getRegex()) {
if(!preg_match($attrdef->getRegex(), $attribute)) {
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_no_regex_match"));
}
}
if(is_array($attribute)) {
if($attrdef->getMinValues() > count($attribute)) {
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
}
if($attrdef->getMaxValues() && $attrdef->getMaxValues() < count($attribute)) {
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_max_values", array("attrname"=>$attrdef->getName())));
}
}
*/
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) { if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
if(!$document->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute)) if(!$document->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute))
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));

View File

@ -97,9 +97,8 @@ $(document).ready( function() {
/* various checks, if the value is valid */ /* various checks, if the value is valid */
echo "<td>"; echo "<td>";
/* Check if value is in value set */ /* Check if value is in value set */
if($selattrdef->getValueSet()) { if(!$selattrdef->validate($entry['value'])) {
if(in_array($entry['value'], $selattrdef->getValueSetAsArray())) echo getAttributeValidationText($selattrdef->getValidationError(), $selattrdef->getName(), $entry['value']);
printMLText("attribute_value_not_in_valueset");
} }
echo "</td>"; echo "</td>";
echo "</tr>"; echo "</tr>";