mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-06 07:04:57 +00:00
move attribute validation into controller and call hook
This commit is contained in:
parent
d27d4f118d
commit
a0661536b3
|
@ -56,7 +56,36 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
|
|||
$reqversion = $this->getParam('reqversion');
|
||||
$version_comment = $this->getParam('versioncomment');
|
||||
$attributes = $this->getParam('attributes');
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(false === $this->callHook('validateAttribute', $attrdef, $attribute)) {
|
||||
return false;
|
||||
}
|
||||
if($attribute) {
|
||||
if(!$attrdef->validate($attribute)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
return false;
|
||||
}
|
||||
} elseif($attrdef->getMinValues() > 0) {
|
||||
$this->errormsg = array("attr_min_values", array("attrname"=>$attrdef->getName()));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
$attributes_version = $this->getParam('attributesversion');
|
||||
foreach($attributes_version as $attrdefid=>$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(false === $this->callHook('validateAttribute', $attrdef, $attribute)) {
|
||||
return false;
|
||||
}
|
||||
if($attribute) {
|
||||
if(!$attrdef->validate($attribute)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$workflow = $this->getParam('workflow');
|
||||
$notificationgroups = $this->getParam('notificationgroups');
|
||||
$notificationusers = $this->getParam('notificationusers');
|
||||
|
|
|
@ -40,6 +40,22 @@ class SeedDMS_Controller_AddSubFolder extends SeedDMS_Controller_Common {
|
|||
$comment = $this->getParam('comment');
|
||||
$sequence = $this->getParam('sequence');
|
||||
$attributes = $this->getParam('attributes');
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(false === $this->callHook('validateAttribute', $attrdef, $attribute)) {
|
||||
return false;
|
||||
}
|
||||
if($attribute) {
|
||||
if(!$attrdef->validate($attribute)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
return false;
|
||||
}
|
||||
} elseif($attrdef->getMinValues() > 0) {
|
||||
$this->errormsg = array("attr_min_values", array("attrname"=>$attrdef->getName()));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
$notificationgroups = $this->getParam('notificationgroups');
|
||||
$notificationusers = $this->getParam('notificationusers');
|
||||
|
||||
|
|
|
@ -116,22 +116,28 @@ class SeedDMS_Controller_EditDocument extends SeedDMS_Controller_Common {
|
|||
$oldattributes = $document->getAttributes();
|
||||
if($attributes) {
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if(!$attrdef->validate($attribute)) {
|
||||
$this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
return false;
|
||||
}
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
if(!$attrdef->validate($attribute)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
|
||||
if(!$document->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute))
|
||||
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
|
||||
if(!$document->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute))
|
||||
return false;
|
||||
}
|
||||
} elseif($attrdef->getMinValues() > 0) {
|
||||
$this->errormsg = array("attr_min_values", array("attrname"=>$attrdef->getName()));
|
||||
} elseif(isset($oldattributes[$attrdefid])) {
|
||||
if(!$document->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if($ret === false)
|
||||
return false;
|
||||
}
|
||||
} elseif($attrdef->getMinValues() > 0) {
|
||||
$this->errormsg = getMLText("attr_min_values", array("attrname"=>$attrdef->getName()));
|
||||
} elseif(isset($oldattributes[$attrdefid])) {
|
||||
if(!$document->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common {
|
|||
if($attributes) {
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
if(!$attrdef->validate($attribute)) {
|
||||
$this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
@ -67,6 +68,10 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common {
|
|||
if(!$folder->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if($ret === false)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($oldattributes as $attrdefid=>$oldattribute) {
|
||||
|
|
|
@ -93,6 +93,7 @@ if(isset($_POST["attributes"]))
|
|||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
/* Has been moved to controller
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if($attribute) {
|
||||
|
@ -105,11 +106,13 @@ foreach($attributes as $attrdefid=>$attribute) {
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if(isset($_POST["attributes_version"]))
|
||||
$attributes_version = $_POST["attributes_version"];
|
||||
else
|
||||
$attributes_version = array();
|
||||
/* Has been moved to controller
|
||||
foreach($attributes_version as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
|
@ -119,6 +122,7 @@ foreach($attributes_version as $attrdefid=>$attribute) {
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
$reqversion = (int)$_POST["reqversion"];
|
||||
if ($reqversion<1) $reqversion=1;
|
||||
|
@ -387,7 +391,15 @@ for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
|||
$controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs);
|
||||
|
||||
if(!$document = $controller->run()) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText($controller->getErrorMsg()));
|
||||
$err = $controller->getErrorMsg();
|
||||
if(is_string($err))
|
||||
$errmsg = getMLText($err);
|
||||
elseif(is_array($err)) {
|
||||
$errmsg = getMLText($err[0], $err[1]);
|
||||
} else {
|
||||
$errmsg = $err;
|
||||
}
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),$errmsg);
|
||||
} else {
|
||||
// Send notification to subscribers of folder.
|
||||
if($notifier) {
|
||||
|
|
|
@ -67,6 +67,7 @@ if(isset($_POST["attributes"]))
|
|||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
/*
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
|
@ -78,6 +79,7 @@ foreach($attributes as $attrdefid=>$attribute) {
|
|||
UI::exitError(getMLText("folder_title", array("foldername" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Check if additional notification shall be added */
|
||||
$notusers = array();
|
||||
|
|
|
@ -127,9 +127,15 @@ $controller->setParam('expires', $expires);
|
|||
$controller->setParam('sequence', $sequence);
|
||||
$controller->setParam('attributes', $attributes);
|
||||
if(!$controller->run()) {
|
||||
if($controller->getErrorMsg()) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $controller->getErrorMsg());
|
||||
$err = $controller->getErrorMsg();
|
||||
if(is_string($err))
|
||||
$errmsg = getMLText($err);
|
||||
elseif(is_array($err)) {
|
||||
$errmsg = getMLText($err[0], $err[1]);
|
||||
} else {
|
||||
$errmsg = $err;
|
||||
}
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $errmsg);
|
||||
}
|
||||
|
||||
if ($oldname != $name) {
|
||||
|
|
|
@ -80,9 +80,15 @@ $controller->setParam('comment', $comment);
|
|||
$controller->setParam('sequence', $sequence);
|
||||
$controller->setParam('attributes', $attributes);
|
||||
if(!$controller->run()) {
|
||||
if($controller->getErrorMsg()) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())), $controller->getErrorMsg());
|
||||
$err = $controller->getErrorMsg();
|
||||
if(is_string($err))
|
||||
$errmsg = getMLText($err);
|
||||
elseif(is_array($err)) {
|
||||
$errmsg = getMLText($err[0], $err[1]);
|
||||
} else {
|
||||
$errmsg = $err;
|
||||
}
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())), $errmsg);
|
||||
}
|
||||
|
||||
if($oldname != $name) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user