18 import(
'classes.workflow.EditorDecisionActionsManager');
39 function confirmReview($request, $reviewAssignment, $submission, $decline, $emailText =
null) {
43 $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
44 if (!isset($reviewer))
return true;
48 if ($reviewAssignment->getDateConfirmed() ==
null) {
49 $email = $this->
getResponseEmail($submission, $reviewAssignment, $request, $decline);
52 $email->setReplyTo($reviewer->getEmail(), $reviewer->getFullName());
53 HookRegistry::call(
'ReviewerAction::confirmReview', array($request, &$submission, &$email, $decline));
54 import(
'lib.pkp.classes.log.SubmissionEmailLogEntry');
55 $email->setEventType($decline?SUBMISSION_EMAIL_REVIEW_DECLINE:SUBMISSION_EMAIL_REVIEW_CONFIRM);
56 if ($emailText) $email->setBody($emailText);
57 if (!$email->send($request)) {
58 import(
'classes.notification.NotificationManager');
60 $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array(
'contents' => __(
'email.compose.error')));
63 $reviewAssignment->setDeclined($decline);
65 $reviewAssignment->stampModified();
66 $reviewAssignmentDao->updateObject($reviewAssignment);
69 import(
'lib.pkp.classes.log.SubmissionLog');
70 import(
'classes.log.SubmissionEventLogEntry');
75 $decline?SUBMISSION_LOG_REVIEW_DECLINE:SUBMISSION_LOG_REVIEW_ACCEPT,
76 $decline?
'log.review.reviewDeclined':
'log.review.reviewAccepted',
78 'reviewAssignmentId' => $reviewAssignment->getId(),
79 'reviewerName' => $reviewer->getFullName(),
80 'submissionId' => $reviewAssignment->getSubmissionId(),
81 'round' => $reviewAssignment->getRound()
91 import(
'lib.pkp.classes.mail.SubmissionMailTemplate');
96 $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
102 $stageAssignments = $stageAssignmentDao->getBySubmissionAndStageId($submission->getId(), $reviewAssignment->getStageId());
104 $context = $request->getContext();
105 while ($stageAssignment = $stageAssignments->next()) {
106 $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId());
107 if (!in_array($userGroup->getRoleId(), array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR)))
continue;
109 $recipient = $userDao->getById($stageAssignment->getUserId());
110 $email->addRecipient($recipient->getEmail(), $recipient->getFullName());
113 $email->addRecipient($context->getData(
'contactEmail'), $context->getData(
'contactName'));
117 $reviewDueDate = strtotime($reviewAssignment->getDateDue());
118 $dateFormatShort = $context->getLocalizedDateFormatShort();
119 if ($reviewDueDate == -1) $reviewDueDate = $dateFormatShort;
120 else $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
122 $email->setReplyTo($reviewer->getEmail(), $reviewer->getFullName());
124 $email->assignParams(array(
125 'reviewerName' => $reviewer->getFullName(),
126 'reviewDueDate' => $reviewDueDate
128 $email->replaceParams();