mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-09 13:06:14 +00:00
fix setting attributes (user, group, folder, document)
This commit is contained in:
parent
444af0831b
commit
70c63afd10
|
@ -283,10 +283,38 @@ default:
|
||||||
$attributes = $_POST["attributes_version"];
|
$attributes = $_POST["attributes_version"];
|
||||||
foreach($attributes as $attrdefid=>$attribute) {
|
foreach($attributes as $attrdefid=>$attribute) {
|
||||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||||
|
if(null === ($ret = $controller->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||||
if($attribute) {
|
if($attribute) {
|
||||||
switch($attrdef->getType()) {
|
switch($attrdef->getType()) {
|
||||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
if(is_array($attribute))
|
||||||
|
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||||
|
else
|
||||||
|
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||||
|
break;
|
||||||
|
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||||
|
if(is_array($attribute))
|
||||||
|
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||||
|
else
|
||||||
|
$attribute = $dms->getFolder((int) $attribute);
|
||||||
|
break;
|
||||||
|
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||||
|
if(is_array($attribute))
|
||||||
|
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||||
|
else
|
||||||
|
$attribute = $dms->getDocument((int) $attribute);
|
||||||
|
break;
|
||||||
|
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||||
|
if(is_array($attribute))
|
||||||
|
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||||
|
else
|
||||||
|
$attribute = $dms->getUser((int) $attribute);
|
||||||
|
break;
|
||||||
|
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||||
|
if(is_array($attribute))
|
||||||
|
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||||
|
else
|
||||||
|
$attribute = $dms->getGroup((int) $attribute);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(!$attrdef->validate($attribute, null, true)) {
|
if(!$attrdef->validate($attribute, null, true)) {
|
||||||
|
@ -296,6 +324,10 @@ default:
|
||||||
} elseif($attrdef->getMinValues() > 0) {
|
} elseif($attrdef->getMinValues() > 0) {
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
|
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if($ret === false)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$attributes = array();
|
$attributes = array();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user