mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-11 20:21:16 +00:00
add commands 'updatedocument' and 'addfolder'
This commit is contained in:
parent
0402877a39
commit
dd4149e3a6
249
op/op.Ajax.php
249
op/op.Ajax.php
|
@ -876,6 +876,255 @@ switch($command) {
|
|||
}
|
||||
break; /* }}} */
|
||||
|
||||
case 'updatedocument': /* {{{ */
|
||||
if($user) {
|
||||
if(checkFormKey('')) {
|
||||
if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_document_id")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$documentid = $_POST["documentid"];
|
||||
$document = $dms->getDocument($documentid);
|
||||
|
||||
if (!is_object($document)) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_document_id")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($document->getAccessMode($user, 'addDocument') < M_READWRITE) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("access_denied")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if($settings->_quota > 0) {
|
||||
$remain = checkQuota($user);
|
||||
if ($remain < 0) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("quota_exceeded", array('bytes'=>SeedDMS_Core_File::format_filesize(abs($remain))))));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_uploaded_file($_FILES["userfile"]["tmp_name"]) || $_FILES['userfile']['error']!=0){
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("uploading_failed")));
|
||||
exit;
|
||||
}
|
||||
if ($_FILES["userfile"]["size"]==0) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("uploading_zerosize")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||
if ($maxuploadsize && $_FILES["userfile"]["size"] > $maxuploadsize) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("uploading_maxsize")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$userfiletmp = $_FILES["userfile"]["tmp_name"];
|
||||
$userfiletype = $_FILES["userfile"]["type"];
|
||||
$userfilename = $_FILES["userfile"]["name"];
|
||||
|
||||
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
||||
|
||||
if($settings->_overrideMimeType) {
|
||||
$userfiletype = SeedDMS_Core_File::mimetype($userfiletmp);
|
||||
}
|
||||
|
||||
if (!empty($_POST["name"]))
|
||||
$name = $_POST["name"];
|
||||
else
|
||||
$name = utf8_basename($userfilename);
|
||||
|
||||
if(isset($_POST["attributes"]))
|
||||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
if(isset($_POST["comment"]))
|
||||
$comment = trim($_POST["comment"]);
|
||||
else
|
||||
$comment = '';
|
||||
|
||||
// Get the list of reviewers and approvers for this document.
|
||||
$reviewers = array();
|
||||
$approvers = array();
|
||||
$reviewers["i"] = array();
|
||||
$reviewers["g"] = array();
|
||||
$approvers["i"] = array();
|
||||
$approvers["g"] = array();
|
||||
$workflow = null;
|
||||
|
||||
if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'traditional_only_approval') {
|
||||
// add mandatory reviewers/approvers
|
||||
if($settings->_workflowMode == 'traditional') {
|
||||
$mreviewers = getMandatoryReviewers(null, $document, $user);
|
||||
if($mreviewers['i'])
|
||||
$reviewers['i'] = array_merge($reviewers['i'], $mreviewers['i']);
|
||||
if($mreviewers['g'])
|
||||
$reviewers['g'] = array_merge($reviewers['g'], $mreviewers['g']);
|
||||
}
|
||||
$mapprovers = getMandatoryApprovers(null, $document, $user);
|
||||
if($mapprovers['i'])
|
||||
$approvers['i'] = array_merge($approvers['i'], $mapprovers['i']);
|
||||
if($mapprovers['g'])
|
||||
$approvers['g'] = array_merge($approvers['g'], $mapprovers['g']);
|
||||
|
||||
} elseif($settings->_workflowMode == 'advanced') {
|
||||
$workflow = $user->getMandatoryWorkflow();
|
||||
}
|
||||
|
||||
$expires = false;
|
||||
if($settings->_presetExpirationDate) {
|
||||
$expires = strtotime($settings->_presetExpirationDate);
|
||||
}
|
||||
|
||||
$controller = Controller::factory('UpdateDocument', array('dms'=>$dms, 'user'=>$user));
|
||||
$controller->setParam('documentsource', 'upload');
|
||||
$controller->setParam('fulltextservice', $fulltextservice);
|
||||
$controller->setParam('document', $document);
|
||||
$controller->setParam('folder', $document->getFolder());
|
||||
$controller->setParam('name', $name);
|
||||
$controller->setParam('comment', $comment);
|
||||
$controller->setParam('expires', $expires);
|
||||
$controller->setParam('userfiletmp', $userfiletmp);
|
||||
$controller->setParam('userfilename', $userfilename);
|
||||
$controller->setParam('filetype', $fileType);
|
||||
$controller->setParam('userfiletype', $userfiletype);
|
||||
$controller->setParam('reviewers', $reviewers);
|
||||
$controller->setParam('approvers', $approvers);
|
||||
$controller->setParam('reqversion', 1);
|
||||
$controller->setParam('attributes', $attributes);
|
||||
$controller->setParam('workflow', $workflow);
|
||||
$controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText);
|
||||
|
||||
if(!$content = $controller()) {
|
||||
$err = $controller->getErrorMsg();
|
||||
if(is_string($err))
|
||||
$errmsg = getMLText($err);
|
||||
elseif(is_array($err)) {
|
||||
$errmsg = getMLText($err[0], $err[1]);
|
||||
} else {
|
||||
$errmsg = $err;
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>$errmsg));
|
||||
exit;
|
||||
} else {
|
||||
// Send notification to subscribers of folder.
|
||||
if($notifier) {
|
||||
$notifier->sendNewDocumentVersionMail($document, $user);
|
||||
}
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_updated'), 'data'=>$document->getID()));
|
||||
add_log_line("updated document ".$document->getId());
|
||||
} else {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
|
||||
}
|
||||
}
|
||||
break; /* }}} */
|
||||
|
||||
case 'addfolder': /* {{{ */
|
||||
if($user) {
|
||||
if(checkFormKey('')) {
|
||||
if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_folder_id")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$folderid = $_POST["folderid"];
|
||||
$folder = $dms->getFolder($folderid);
|
||||
|
||||
if (!is_object($folder)) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_folder_id")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($folder->getAccessMode($user, 'addFolder') < M_READWRITE) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("access_denied")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!empty($_POST["name"]))
|
||||
$name = $_POST["name"];
|
||||
else
|
||||
$name = utf8_basename($userfilename);
|
||||
|
||||
/* Check if name already exists in the folder */
|
||||
if(!$settings->_enableDuplicateDocNames) {
|
||||
if($folder->hasDocumentByName($name)) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("document_duplicate_name")));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST["attributes"]))
|
||||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
if(isset($_POST["comment"]))
|
||||
$comment = trim($_POST["comment"]);
|
||||
else
|
||||
$comment = '';
|
||||
|
||||
$controller = Controller::factory('AddSubFolder', array('dms'=>$dms, 'user'=>$user));
|
||||
$controller->setParam('documentsource', 'upload');
|
||||
$controller->setParam('folder', $folder);
|
||||
$controller->setParam('fulltextservice', $fulltextservice);
|
||||
$controller->setParam('name', $name);
|
||||
$controller->setParam('comment', $comment);
|
||||
$minmax = $folder->getFoldersMinMax();
|
||||
$deviation = rand(10, 1000)/10;
|
||||
if($settings->_defaultFolderPosition == 'start')
|
||||
$controller->setParam('sequence', $minmax['min'] - $deviation);
|
||||
else
|
||||
$controller->setParam('sequence', $minmax['max'] + $deviation);
|
||||
$controller->setParam('owner', $user);
|
||||
$controller->setParam('attributes', $attributes);
|
||||
$controller->setParam('notificationgroups', array());
|
||||
$controller->setParam('notificationusers', array());
|
||||
|
||||
if(!$subfolder = $controller()) {
|
||||
$err = $controller->getErrorMsg();
|
||||
if(is_string($err))
|
||||
$errmsg = getMLText($err);
|
||||
elseif(is_array($err)) {
|
||||
$errmsg = getMLText($err[0], $err[1]);
|
||||
} else {
|
||||
$errmsg = $err;
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>$errmsg));
|
||||
exit;
|
||||
} else {
|
||||
// Send notification to subscribers of folder.
|
||||
if($notifier) {
|
||||
$notifier->sendNewFolderMail($subfolder, $user);
|
||||
}
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_folder_added'), 'data'=>$subfolder->getID()));
|
||||
add_log_line("add folder ".$subfolder->getId()." in folder ".$folder->getId());
|
||||
} else {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
|
||||
}
|
||||
}
|
||||
break; /* }}} */
|
||||
|
||||
case 'addfile': /* {{{ */
|
||||
if($user) {
|
||||
if(checkFormKey('addfile')) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user