categories, attributes, comment, sequence, etc. can be set when uploading a new document

This commit is contained in:
Uwe Steinmann 2019-02-11 14:11:34 +01:00
parent 3d638b47a8
commit 8f2f81ee03

View File

@ -2,6 +2,9 @@
define('USE_PHP_SESSION', 0);
include("../inc/inc.Settings.php");
include("../inc/inc.LogInit.php");
include("../inc/inc.Utils.php");
include("../inc/inc.Language.php");
include("../inc/inc.Init.php");
include("../inc/inc.DBInit.php");
include("../inc/inc.Extension.php");
@ -507,7 +510,46 @@ function uploadDocument($request, $response, $args) { /* {{{ */
$params = $request->getParsedBody();
$docname = isset($params['name']) ? $params['name'] : '';
$keywords = isset($params['keywords']) ? $params['keywords'] : '';
$comment = isset($params['comment']) ? $params['comment'] : '';
if(isset($params['sequence'])) {
$sequence = str_replace(',', '.', $params["sequence"]);
if (!is_numeric($sequence))
return $response->withJson(array('success'=>false, 'message'=>getMLText("invalid_sequence"), 'data'=>''), 400);
} else {
$dd = $mfolder->getDocuments('s');
if(count($dd) > 1)
$sequence = $dd[count($dd)-1]->getSequence() + 1;
else
$sequence = 1.0;
}
if(isset($params['expdate'])) {
$tmp = explode('-', $params["expdate"]);
if(count($tmp) != 3)
return $response->withJson(array('success'=>false, 'message'=>getMLText('malformed_expiration_date'), 'data'=>''), 400);
$expires = mktime(0,0,0, $tmp[1], $tmp[2], $tmp[0]);
} else
$expires = 0;
$version_comment = isset($params['version_comment']) ? $params['version_comment'] : '';
$reqversion = (isset($params['reqversion']) && (int) $params['reqversion'] > 1) ? (int) $params['reqversion'] : 1;
$origfilename = isset($params['origfilename']) ? $params['origfilename'] : null;
$categories = isset($params["categories"]) ? $params["categories"] : array();
$cats = array();
foreach($categories as $catid) {
if($cat = $dms->getDocumentCategory($catid))
$cats[] = $cat;
}
$attributes = isset($params["attributes"]) ? $params["attributes"] : array();
foreach($attributes as $attrdefid=>$attribute) {
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
if($attribute) {
if(!$attrdef->validate($attribute)) {
return $response->withJson(array('success'=>false, 'message'=>getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute), 'data'=>''), 400);
}
} elseif($attrdef->getMinValues() > 0) {
return $response->withJson(array('success'=>false, 'message'=>getMLText("attr_min_values", array("attrname"=>$attrdef->getName())), 'data'=>''), 400);
}
}
}
if (count($uploadedFiles) == 0) {
return $response->withJson(array('success'=>false, 'message'=>'No file detected', 'data'=>''), 400);
}
@ -521,7 +563,7 @@ function uploadDocument($request, $response, $args) { /* {{{ */
$userfiletype = finfo_file($finfo, $temp);
$fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION);
finfo_close($finfo);
$res = $mfolder->addDocument($docname, '', 0, $userobj, $keywords, array(), $temp, $origfilename ? $origfilename : basename($temp), $fileType, $userfiletype, 0);
$res = $mfolder->addDocument($docname, $comment, $expires, $userobj, $keywords, $cats, $temp, $origfilename ? $origfilename : basename($temp), $fileType, $userfiletype, $sequence, array(), array(), $reqversion, $version_comment, $attributes);
// addDocumentCategories($res, $categories);
// setDocumentAttributes($res, $attributes);