move notification mail into notification service

This commit is contained in:
Uwe Steinmann 2021-05-18 17:39:14 +02:00
parent 040793034b
commit 97c001acbe
3 changed files with 99 additions and 102 deletions

View File

@ -678,28 +678,98 @@ class SeedDMS_NotificationService {
public function sendChangedDocumentStatusMail($document, $user, $oldstatus) { /* {{{ */ public function sendChangedDocumentStatusMail($document, $user, $oldstatus) { /* {{{ */
$content = $document->getLatestContent(); $content = $document->getLatestContent();
$overallStatus = $content->getStatus(); $overallStatus = $content->getStatus();
$nl = $document->getNotifyList(); $nl = $document->getNotifyList();
$folder = $document->getFolder(); $folder = $document->getFolder();
$subject = "document_status_changed_email_subject"; $subject = "document_status_changed_email_subject";
$message = "document_status_changed_email_body"; $message = "document_status_changed_email_body";
$params = array(); $params = array();
$params['name'] = $document->getName(); $params['name'] = $document->getName();
$params['folder_path'] = $folder->getFolderPathPlain(); $params['folder_path'] = $folder->getFolderPathPlain();
$params['status'] = getOverallStatusText($overallStatus["status"]); $params['status'] = getOverallStatusText($overallStatus["status"]);
$params['old_status'] = getOverallStatusText($oldstatus); $params['old_status'] = getOverallStatusText($oldstatus);
$params['new_status_code'] = $overallStatus["status"]; $params['new_status_code'] = $overallStatus["status"];
$params['old_status_code'] = $oldstatus; $params['old_status_code'] = $oldstatus;
$params['username'] = $user->getFullName(); $params['username'] = $user->getFullName();
$params['sitename'] = $this->settings->_siteName; $params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot; $params['http_root'] = $this->settings->_httpRoot;
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); $this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
foreach ($nl["groups"] as $grp) { foreach ($nl["groups"] as $grp) {
$this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} }
// $notifier->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); // $notifier->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER);
} /* }}} */
public function sendNewDocumentNotifyMail($document, $user, $obj) { /* {{{ */
$folder = $document->getFolder();
$subject = "notify_added_email_subject";
$message = "notify_added_email_body";
$params = array();
$params['name'] = $document->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
if($obj->isType('user'))
$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
elseif($obj->isType('group'))
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} /* }}} */
public function sendNewFolderNotifyMail($folder, $user, $obj) { /* {{{ */
$subject = "notify_added_email_subject";
$message = "notify_added_email_body";
$params = array();
$params['name'] = $folder->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
if($obj->isType('user'))
$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
elseif($obj->isType('group'))
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} /* }}} */
public function sendDeleteDocumentNotifyMail($document, $user, $obj) { /* {{{ */
$folder = $document->getFolder();
$subject = "notify_deleted_email_subject";
$message = "notify_deleted_email_body";
$params = array();
$params['name'] = $folder->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
if($obj->isType('user'))
$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
elseif($obj->isType('group'))
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} /* }}} */
public function sendDeleteFolderNotifyMail($folder, $user, $obj) { /* {{{ */
$subject = "notify_deleted_email_subject";
$message = "notify_deleted_email_body";
$params = array();
$params['name'] = $folder->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
if($obj->isType('user'))
$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
elseif($obj->isType('group'))
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} /* }}} */ } /* }}} */
} }

View File

@ -94,7 +94,7 @@ if ($action == "delnotify"){
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
break; break;
case -3: case -3:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("already_subscribed")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("not_subscribed"));
break; break;
case -4: case -4:
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error"));
@ -102,22 +102,7 @@ if ($action == "delnotify"){
case 0: case 0:
// Email user / group, informing them of subscription change. // Email user / group, informing them of subscription change.
if($notifier) { if($notifier) {
$subject = "notify_deleted_email_subject"; $notifier->sendDeleteFolderNotifyMail($folder, $user, $obj);
$message = "notify_deleted_email_body";
$params = array();
$params['name'] = $document->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
if ($userid > 0) {
$notifier->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
else {
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
} }
break; break;
} }
@ -145,17 +130,7 @@ else if ($action == "addnotify") {
// Email user / group, informing them of subscription. // Email user / group, informing them of subscription.
if ($notifier){ if ($notifier){
$obj = $dms->getUser($userid); $obj = $dms->getUser($userid);
$subject = "notify_added_email_subject"; $notifier->sendNewDocumentNotifyMail($document, $user, $obj);
$message = "notify_added_email_body";
$params = array();
$params['name'] = $document->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
$notifier->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} }
break; break;
@ -179,17 +154,7 @@ else if ($action == "addnotify") {
case 0: case 0:
if ($notifier){ if ($notifier){
$obj = $dms->getGroup($groupid); $obj = $dms->getGroup($groupid);
$subject = "notify_added_email_subject"; $notifier->sendNewDocumentNotifyMail($document, $user, $obj);
$message = "notify_added_email_body";
$params = array();
$params['name'] = $document->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} }
break; break;
} }

View File

@ -89,30 +89,14 @@ if ($action == "delnotify") {
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied"));
break; break;
case -3: case -3:
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("already_subscribed")); UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("not_subscribed"));
break; break;
case -4: case -4:
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("internal_error")); UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("internal_error"));
break; break;
case 0: case 0:
if($notifier) { if($notifier) {
// Email user / group, informing them of subscription. $notifier->sendDeleteFolderNotifyMail($folder, $user, $obj);
$subject = "notify_deleted_email_subject";
$message = "notify_deleted_email_body";
$params = array();
$params['name'] = $folder->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
if ($userid > 0) {
$notifier->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
else {
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
} }
break; break;
} }
@ -139,18 +123,7 @@ else if ($action == "addnotify") {
case 0: case 0:
if($notifier) { if($notifier) {
$obj = $dms->getUser($userid); $obj = $dms->getUser($userid);
// Email user / group, informing them of subscription. $notifier->sendNewFolderNotifyMail($folder, $user, $obj);
$subject = "notify_added_email_subject";
$message = "notify_added_email_body";
$params = array();
$params['name'] = $folder->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
$notifier->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} }
break; break;
@ -174,18 +147,7 @@ else if ($action == "addnotify") {
case 0: case 0:
if($notifier) { if($notifier) {
$obj = $dms->getGroup($groupid); $obj = $dms->getGroup($groupid);
// Email user / group, informing them of subscription. $notifier->sendNewFolderNotifyMail($folder, $user, $obj);
$subject = "notify_added_email_subject";
$message = "notify_added_email_body";
$params = array();
$params['name'] = $folder->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
} }
break; break;
} }