new command transferdocument and linkdocument

transferdocument moves the version of one document to another document
linkdocument creates a link between on document and another document
This commit is contained in:
Uwe Steinmann 2019-07-11 17:15:40 +02:00
parent d11887311c
commit 16e9d3748c

View File

@ -341,6 +341,96 @@ switch($command) {
}
break; /* }}} */
case 'transfercontent': /* {{{ */
if($user) {
if(!checkFormKey('movedocument', 'GET')) {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
} else {
$mdocument = $dms->getDocument($_REQUEST['docid']);
if($mdocument) {
if ($mdocument->getAccessMode($user, 'transferContent') >= M_READWRITE) {
/* Check if source document has more than one version */
$versions = $mdocument->getContent();
if(count($versions) == 1) {
if($targetdoc = $dms->getDocument($_REQUEST['targetdocumentid'])) {
if($targetdoc->getAccessMode($user, 'transferContent') >= M_READWRITE) {
if($targetdoc->addContent($versions[0]->getComment(), $versions[0]->getUser(), $dms->contentDir . $versions[0]->getPath(), $versions[0]->getOriginalFileName(), $versions[0]->getFileType(), $versions[0]->getMimeType())) { //, $reviewers=array(), $approvers=array(), $version=0, $attributes=array(), $workflow=null) {
if($mdocument->remove()) {
header('Content-Type: application/json');
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_transfer_content'), 'data'=>''));
add_log_line();
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>'Error removing source document', 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>'Error transfering content', 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('splash_source_doc_has_versions'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>''));
}
}
}
break; /* }}} */
case 'linkdocument': /* {{{ */
if($user) {
if(!checkFormKey('movedocument', 'GET')) {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
} else {
$mdocument = $dms->getDocument($_REQUEST['docid']);
if($mdocument) {
if ($mdocument->getAccessMode($user, 'linkDocument') >= M_READ) {
if($targetdoc = $dms->getDocument($_REQUEST['targetdocumentid'])) {
if($targetdoc->getAccessMode($user, 'linkDocument') >= M_READWRITE) {
if($targetdoc->addDocumentLink($mdocument->getID(), $user->getID(), false)) {
header('Content-Type: application/json');
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_link_document'), 'data'=>''));
add_log_line();
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>'Error linking document', 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>''));
}
} else {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>''));
}
}
}
break; /* }}} */
case 'deletefolder': /* {{{ */
if($user) {
if(!checkFormKey('removefolder', 'GET')) {