use controller RemoveDocument, send mail with notification class

This commit is contained in:
Uwe Steinmann 2021-05-19 08:33:15 +02:00
parent 0852d10df4
commit ba381d8e85

View File

@ -67,37 +67,33 @@ $folder = $document->getFolder();
/* Check if there is just one version. In that case remove the document */ /* Check if there is just one version. In that case remove the document */
if (count($document->getContent())==1) { if (count($document->getContent())==1) {
$previewer->deleteDocumentPreviews($document); $previewer->deleteDocumentPreviews($document);
$nl = $document->getNotifyList();
/* Get the notify list before removing the document
* Also inform the users/groups of the parent folder
* Getting the list now will keep them in the document object
* even after the document has been deleted.
*/
$dnl = $document->getNotifyList();
$fnl = $folder->getNotifyList();
$docname = $document->getName(); $docname = $document->getName();
if (!$document->remove()) {
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); $controller->setParam('document', $document);
} else { $controller->setParam('fulltextservice', $fulltextservice);
$nexturl = "../out/out.ViewFolder.php?folderid=".$folder->getId(); if(!$controller->run()) {
/* Remove the document from the fulltext index */ if ($controller->getErrorMsg() != '')
if($fulltextservice && ($index = $fulltextservice->Index())) { $errormsg = $controller->getErrorMsg();
$lucenesearch = $fulltextservice->Search(); else
if($hit = $lucenesearch->getDocument($documentid)) { $errormsg = "error_remove_document";
$index->delete($hit->id); UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($docname))),getMLText($errormsg));
$index->commit();
}
} }
if ($notifier){ if ($notifier){
$subject = "document_deleted_email_subject"; /* $document still has the data from the just deleted document,
$message = "document_deleted_email_body"; * which is just enough to send the email.
$params = array(); */
$params['name'] = $docname; $notifier->sendDeleteDocumentMail($document, $user);
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$notifier->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
foreach ($nl["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
}
} }
$nexturl = "../out/out.ViewFolder.php?folderid=".$folder->getId();
} }
else { else {
/* Before deleting the content get a list of all users that should /* Before deleting the content get a list of all users that should
@ -129,7 +125,7 @@ else {
$previewer->deletePreview($version, $settings->_previewWidthDetail); $previewer->deletePreview($version, $settings->_previewWidthDetail);
$previewer->deletePreview($version, $settings->_previewWidthList); $previewer->deletePreview($version, $settings->_previewWidthList);
/* Check if the version to be delete is the latest version. This is /* Check if the version to be deleted is the latest version. This is
* later used to set the redirect url. * later used to set the redirect url.
*/ */
$islatest = $version->getVersion() == $document->getLatestContent()->getVersion(); $islatest = $version->getVersion() == $document->getLatestContent()->getVersion();