diff --git a/AuthorVersionPlugin.inc.php b/AuthorVersionPlugin.inc.php index 59fc9ba..c2bb8a3 100755 --- a/AuthorVersionPlugin.inc.php +++ b/AuthorVersionPlugin.inc.php @@ -93,11 +93,11 @@ public function addWorkflowModifications($hookName, $params) $request = PKPApplication::get()->getRequest(); $requestedPage = $templateMgr->getTemplateVars('requestedPage'); - if($requestedPage == 'authorDashboard') { + if ($requestedPage == 'authorDashboard') { $templateMgr->registerFilter("output", array($this, 'addVersionJustificationButtonFilter')); } - if($requestedPage == 'workflow') { + if ($requestedPage == 'workflow') { $templateMgr->registerFilter("output", array($this, 'addVersionJustificationButtonFilter')); $templateMgr->registerFilter("output", array($this, 'addDeleteVersionButtonFilter')); } diff --git a/api/v1/authorVersion/AuthorVersionHandler.inc.php b/api/v1/authorVersion/AuthorVersionHandler.inc.php index 9cc83cf..cb547e1 100644 --- a/api/v1/authorVersion/AuthorVersionHandler.inc.php +++ b/api/v1/authorVersion/AuthorVersionHandler.inc.php @@ -52,7 +52,7 @@ public function submitVersion($slimRequest, $response, $args) $submission = $this->getSubmission($slimRequest); $publication = $submission->getLatestPublication(); - if(!is_null($publication->getData('versionJustification')) + if (!is_null($publication->getData('versionJustification')) || $publication->getData('status') == STATUS_PUBLISHED || $publication->getData('version') == 1 ) { @@ -74,7 +74,7 @@ public function deleteVersion($slimRequest, $response, $args) $submission = $this->getSubmission($slimRequest); $publication = $submission->getLatestPublication(); - if($publication->getData('status') == STATUS_PUBLISHED or $publication->getData('version') == 1) { + if ($publication->getData('status') == STATUS_PUBLISHED or $publication->getData('version') == 1) { return $response->withStatus(400); } @@ -91,7 +91,7 @@ public function updateVersionJustification($slimRequest, $response, $args) $submission = $this->getSubmission($slimRequest); $publication = $submission->getLatestPublication(); - if($publication->getData('status') == STATUS_PUBLISHED || $publication->getData('version') == 1) { + if ($publication->getData('status') == STATUS_PUBLISHED || $publication->getData('version') == 1) { return $response->withStatus(400); } @@ -119,13 +119,21 @@ private function sendSubmittedVersionEmail($publication, $versionJustification) private function sendDeletedVersionEmail($publication, $deletingJustification) { + if (empty($authors)) { + return; + } + $request = $this->getRequest(); $context = $request->getContext(); - $emailTemplate = 'DELETED_VERSION_NOTIFICATION'; - $primaryAuthor = $publication->getPrimaryAuthor(); + $recipientAuthor = $publication->getPrimaryAuthor(); + + if (!$recipientAuthor) { + $recipientAuthor = $publication->getData('authors')[0]; + } + $recipients = [ - ['email' => $primaryAuthor->getData('email'), 'name' => $primaryAuthor->getFullName()] + ['email' => $recipientAuthor->getData('email'), 'name' => $recipientAuthor->getFullName()] ]; $params = [ @@ -145,7 +153,7 @@ private function sendEmailTemplate(string $templateName, array $recipients, arra $email = new MailTemplate($templateName, null, $context, false); $email->setFrom($context->getData('contactEmail'), $context->getData('contactName')); - foreach($recipients as $recipient) { + foreach ($recipients as $recipient) { $email->addRecipient($recipient['email'], $recipient['name']); } @@ -171,7 +179,7 @@ private function getManagersAssigned($publication): array while ($assignment = $allAssignments->next()) { $userId = $assignment->getUserId(); - if($this->userIsManager($userId)) { + if ($this->userIsManager($userId)) { $manager = $userDao->getById($userId); $managers[] = [ 'email' => $manager->getEmail(), @@ -189,8 +197,8 @@ private function userIsManager($userId): bool $userGroupsOfUser = $userGroupDao->getByUserId($userId); $managerGroupName = 'preprint server manager'; - while($userGroup = $userGroupsOfUser->next()) { - if(strtolower($userGroup->getName('en_US')) == $managerGroupName) { + while ($userGroup = $userGroupsOfUser->next()) { + if (strtolower($userGroup->getName('en_US')) == $managerGroupName) { return true; } } diff --git a/classes/services/queryBuilders/AuthorVersionQueryBuilder.inc.php b/classes/services/queryBuilders/AuthorVersionQueryBuilder.inc.php index 01cc3ae..14be4cc 100644 --- a/classes/services/queryBuilders/AuthorVersionQueryBuilder.inc.php +++ b/classes/services/queryBuilders/AuthorVersionQueryBuilder.inc.php @@ -28,7 +28,7 @@ public function appGet($q) ->where('setting_name', '=', 'versionJustification'); }; - if($this->submittedVersion) { + if ($this->submittedVersion) { $q->whereIn('nvp.publication_id', $submittedVersionSubQuery); } else { $q->whereNotIn('nvp.publication_id', $submittedVersionSubQuery); diff --git a/index.php b/index.php index 9352ee6..4d80171 100755 --- a/index.php +++ b/index.php @@ -1,4 +1,5 @@ authorVersion plugins.generic - 1.5.4.0 - 2024-08-12 + 1.5.5.0 + 2025-01-20 1 AuthorVersionPlugin