From 2276987b2eb100b05fac5495ace8deee5581ce5b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 11 Dec 2022 15:23:05 +0100 Subject: [PATCH] send notification after document was deleted --- class.paperless.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/class.paperless.php b/class.paperless.php index 9b6d9fc..dc1359c 100644 --- a/class.paperless.php +++ b/class.paperless.php @@ -789,6 +789,7 @@ class SeedDMS_ExtPaperless_RestAPI_Controller { /* {{{ */ $settings = $this->container->config; $conversionmgr = $this->container->conversionmgr; $logger = $this->container->logger; + $notifier = $this->container->notifier; $fulltextservice = $this->container->fulltextservice; if (!isset($args['id']) || !$args['id']) @@ -796,13 +797,35 @@ class SeedDMS_ExtPaperless_RestAPI_Controller { /* {{{ */ $document = $dms->getDocument($args['id']); if($document) { + $folder = $document->getFolder(); + /* Remove all preview images. */ + require_once("SeedDMS/Preview.php"); + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); + $previewer->deleteDocumentPreviews($document); + + /* 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(); + $controller = Controller::factory('RemoveDocument', array('dms'=>$dms, 'user'=>$userobj)); $controller->setParam('document', $document); $controller->setParam('fulltextservice', $fulltextservice); if(!$controller()) { - $logger->log($controller->getErrorMsg(), PEAR_LOG_NOTICE); + $logger->log($controller->getErrorMsg(), PEAR_LOG_ERR); return $response->withStatus(500); } + $logger->log('Document deleted', PEAR_LOG_INFO); + if ($notifier){ + /* $document still has the data from the just deleted document, + * which is just enough to send the email. + */ + $notifier->sendDeleteDocumentMail($document, $userobj); + } } return $response->withStatus(200); } /* }}} */