/**
  * Fetches an email template's message body and returns it via AJAX.
  * @param $args array
  * @param $request PKPRequest
  */
 function fetchTemplateBody($args, $request)
 {
     $templateId = $request->getUserVar('template');
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $template = new SubmissionMailTemplate($this->getSubmission(), $templateId);
     if ($template) {
         $user = $request->getUser();
         $dispatcher = $request->getDispatcher();
         $context = $request->getContext();
         $template->assignParams(array('editorialContactSignature' => $user->getContactSignature(), 'signatureFullName' => $user->getFullname()));
         $json = new JSONMessage(true, $template->getBody() . "\n" . $context->getSetting('emailSignature'));
         return $json->getString();
     }
 }
 /**
  * Deletes the review assignment and notifies the reviewer via email
  *
  * @param mixed $args
  * @param $request PKPRequest
  * @return bool whether or not the review assignment was deleted successfully
  */
 function execute($args, $request)
 {
     $submission = $this->getSubmission();
     $reviewAssignment = $this->getReviewAssignment();
     // Notify the reviewer via email.
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $mail = new SubmissionMailTemplate($submission, 'REVIEW_CANCEL', null, null, null, false);
     if ($mail->isEnabled() && !$this->getData('skipEmail')) {
         $userDao = DAORegistry::getDAO('UserDAO');
         $reviewerId = (int) $this->getData('reviewerId');
         $reviewer = $userDao->getById($reviewerId);
         $mail->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
         $mail->setBody($this->getData('personalMessage'));
         $mail->send($request);
     }
     // Delete the review assignment.
     // NB: EditorAction::clearReview() will check that this review
     // id is actually attached to the submission so no need for further
     // validation here.
     import('lib.pkp.classes.submission.action.EditorAction');
     $editorAction = new EditorAction();
     return $editorAction->clearReview($request, $submission->getId(), $reviewAssignment->getId());
 }
 /**
  * Send the email
  * @param $request PKPRequest
  * @param $submission Submission
  */
 function execute($request, $submission)
 {
     $userDao = DAORegistry::getDAO('UserDAO');
     $toUser = $userDao->getById($this->_reviewAssignment->getReviewerId());
     $fromUser = $request->getUser();
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission);
     $email->addRecipient($toUser->getEmail(), $toUser->getFullName());
     $email->setReplyTo($fromUser->getEmail(), $fromUser->getFullName());
     $email->setSubject($this->getData('subject'));
     $email->setBody($this->getData('message'));
     $email->assignParams();
     $email->send();
 }
Example #4
0
 /**
  * Get the reviewer response email template.
  */
 function getResponseEmail($submission, $reviewAssignment, $request, $decline)
 {
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, $decline ? 'REVIEW_DECLINE' : 'REVIEW_CONFIRM');
     // Get reviewer
     $userDao = DAORegistry::getDAO('UserDAO');
     $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
     // Get editorial contact name
     $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO');
     $userGroupDao = DAORegistry::getDAO('UserGroupDAO');
     $userDao = DAORegistry::getDAO('UserDAO');
     $stageAssignments = $stageAssignmentDao->getBySubmissionAndStageId($submission->getId(), $reviewAssignment->getStageId());
     $recipient = null;
     while ($stageAssignment = $stageAssignments->next()) {
         $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId());
         if (!in_array($userGroup->getRoleId(), array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR))) {
             continue;
         }
         $recipient = $userDao->getById($stageAssignment->getUserId());
         $email->addRecipient($recipient->getEmail(), $recipient->getFullName());
     }
     if (!$recipient) {
         $context = $request->getContext();
         $email->addRecipient($context->getSetting('contactEmail'), $context->getSetting('contactName'));
     }
     // Get due date
     $reviewDueDate = strtotime($reviewAssignment->getDateDue());
     $dateFormatShort = Config::getVar('general', 'date_format_short');
     if ($reviewDueDate == -1) {
         $reviewDueDate = $dateFormatShort;
     } else {
         $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
     }
     $email->setReplyTo($reviewer->getEmail(), $reviewer->getFullName());
     $email->assignParams(array('reviewerName' => $reviewer->getFullName(), 'reviewDueDate' => $reviewDueDate));
     $email->replaceParams();
     return $email;
 }
Example #5
0
 /**
  * Get the reviewer response email template.
  */
 function getResponseEmail($submission, $reviewAssignment, $request, $decline)
 {
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, $decline ? 'REVIEW_DECLINE' : 'REVIEW_CONFIRM');
     // Get reviewer
     $userDao = DAORegistry::getDAO('UserDAO');
     $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
     // Get editorial contact name
     $context = $request->getContext();
     $email->addRecipient($context->getSetting('contactEmail'), $context->getSetting('contactName'));
     $editorialContactName = $context->getSetting('contactName');
     // Get due date
     $reviewDueDate = strtotime($reviewAssignment->getDateDue());
     $dateFormatShort = Config::getVar('general', 'date_format_short');
     if ($reviewDueDate == -1) {
         $reviewDueDate = $dateFormatShort;
     } else {
         $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
     }
     $email->setReplyTo($reviewer->getEmail(), $reviewer->getFullName());
     $email->assignParams(array('editorialContactName' => $editorialContactName, 'reviewerName' => $reviewer->getFullName(), 'reviewDueDate' => $reviewDueDate));
     return $email;
 }
Example #6
0
 /**
  * Save review assignment
  * @param $args array
  * @param $request PKPRequest
  */
 function execute($args, $request)
 {
     $userDao = DAORegistry::getDAO('UserDAO');
     $submissionDao = Application::getSubmissionDAO();
     $reviewAssignment = $this->getReviewAssignment();
     $reviewerId = $reviewAssignment->getReviewerId();
     $reviewer = $userDao->getById($reviewerId);
     $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, 'REVIEW_REMIND', null, null, null, false);
     $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
     $email->setBody($this->getData('message'));
     $email->send($request);
     // update the ReviewAssignment with the reminded and modified dates
     $reviewAssignment->setDateReminded(Core::getCurrentDate());
     $reviewAssignment->stampModified();
     $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
     $reviewAssignmentDao->updateObject($reviewAssignment);
 }
 /**
  * Save review assignment
  * @param $args array
  * @param $request PKPRequest
  */
 function execute($args, $request)
 {
     $userDao = DAORegistry::getDAO('UserDAO');
     $submissionDao = Application::getSubmissionDAO();
     $reviewAssignment = $this->getReviewAssignment();
     $reviewerId = $reviewAssignment->getReviewerId();
     $reviewer = $userDao->getById($reviewerId);
     $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, 'REVIEW_ACK', null, null, null, false);
     $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
     $email->setBody($this->getData('message'));
     if (!$this->getData('skipEmail')) {
         HookRegistry::call('ThankReviewerForm::thankReviewer', array(&$submission, &$reviewAssignment, &$email));
         $email->send($request);
     }
     // update the ReviewAssignment with the acknowledged date
     $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
     $reviewAssignment->setDateAcknowledged(Core::getCurrentDate());
     $reviewAssignment->stampModified();
     $reviewAssignment->setUnconsidered(REVIEW_ASSIGNMENT_NOT_UNCONSIDERED);
     $reviewAssignmentDao->updateObject($reviewAssignment);
 }
Example #8
0
 /**
  * Save review assignment
  * @param $args array
  * @param $request PKPRequest
  */
 function execute($args, $request)
 {
     $userDao = DAORegistry::getDAO('UserDAO');
     $submissionDao = Application::getSubmissionDAO();
     $reviewAssignment = $this->getReviewAssignment();
     $reviewerId = $reviewAssignment->getReviewerId();
     $reviewer = $userDao->getById($reviewerId);
     $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
     $reviewDueDate = $this->getData('reviewDueDate');
     $dispatcher = $request->getDispatcher();
     $user = $request->getUser();
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, 'REVIEW_REMIND', null, null, null, false);
     $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
     $email->setBody($this->getData('message'));
     $email->assignParams(array('reviewerName' => $reviewer->getFullName(), 'reviewDueDate' => $reviewDueDate, 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))), 'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', null, array('submissionId' => $reviewAssignment->getSubmissionId())), 'editorialContactSignature' => $user->getContactSignature()));
     $email->send($request);
     // update the ReviewAssignment with the reminded and modified dates
     $reviewAssignment->setDateReminded(Core::getCurrentDate());
     $reviewAssignment->stampModified();
     $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
     $reviewAssignmentDao->updateObject($reviewAssignment);
 }
 /**
  * Sends an email with a personal message and the selected
  * review attachements to the author. Also marks review attachments
  * selected by the editor as "viewable" for the author.
  * @param $submission Submission
  * @param $emailKey string An email template.
  * @param $request PKPRequest
  */
 function _sendReviewMailToAuthor($submission, $emailKey, $request)
 {
     // Send personal message to author.
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, $emailKey, null, null, null, false);
     $email->setBody($this->getData('personalMessage'));
     $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO');
     $userDao = DAORegistry::getDAO('UserDAO');
     $submitterAssignments = $stageAssignmentDao->getBySubmissionAndRoleId($submission->getId(), ROLE_ID_AUTHOR);
     while ($submitterAssignment = $submitterAssignments->next()) {
         $submitterUser = $userDao->getById($submitterAssignment->getUserId());
         $email->addRecipient($submitterUser->getEmail(), $submitterUser->getFullName());
     }
     DAORegistry::getDAO('SubmissionEmailLogDAO');
     // Load constants
     $email->setEventType(SUBMISSION_EMAIL_EDITOR_NOTIFY_AUTHOR);
     // Get review round.
     $reviewRound = $this->getReviewRound();
     if (is_a($reviewRound, 'ReviewRound')) {
         // Retrieve review indexes.
         $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
         /* @var $reviewAssignmentDao ReviewAssignmentDAO */
         $reviewIndexes = $reviewAssignmentDao->getReviewIndexesForRound($submission->getId(), $reviewRound->getId());
         assert(is_array($reviewIndexes));
         // Add a review index for review attachments not associated with
         // a review assignment (i.e. attachments uploaded by the editor).
         $lastIndex = end($reviewIndexes);
         $reviewIndexes[-1] = $lastIndex + 1;
         // Attach the selected reviewer attachments to the email.
         $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
         /* @var $submissionFileDao SubmissionFileDAO */
         $selectedAttachments = $this->getData('selectedAttachments');
         if (is_array($selectedAttachments)) {
             foreach ($selectedAttachments as $fileId) {
                 // Retrieve the submission file.
                 $submissionFile = $submissionFileDao->getLatestRevision($fileId);
                 assert(is_a($submissionFile, 'SubmissionFile'));
                 // Check the association information.
                 if ($submissionFile->getAssocType() == ASSOC_TYPE_REVIEW_ASSIGNMENT) {
                     // The review attachment has been uploaded by a reviewer.
                     $reviewAssignmentId = $submissionFile->getAssocId();
                     assert(is_numeric($reviewAssignmentId));
                 } else {
                     // The review attachment has been uploaded by the editor.
                     $reviewAssignmentId = -1;
                 }
                 // Identify the corresponding review index.
                 assert(isset($reviewIndexes[$reviewAssignmentId]));
                 $reviewIndex = $reviewIndexes[$reviewAssignmentId];
                 assert(!is_null($reviewIndex));
                 // Add the attachment to the email.
                 $email->addAttachment($submissionFile->getFilePath(), String::enumerateAlphabetically($reviewIndex) . '-' . $submissionFile->getOriginalFileName());
                 // Update submission file to set viewable as true, so author
                 // can view the file on their submission summary page.
                 $submissionFile->setViewable(true);
                 $submissionFileDao->updateObject($submissionFile);
             }
         }
     }
     // Send the email.
     if (!$this->getData('skipEmail')) {
         $router = $request->getRouter();
         $dispatcher = $router->getDispatcher();
         $context = $request->getContext();
         $email->assignParams(array('submissionUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'authorDashboard', 'submission', $submission->getId()), 'contextName' => $context->getLocalizedName()));
         $email->send($request);
     }
 }
 /**
  * Send the automatic review reminder to the reviewer.
  * @param $reviewAssignment ReviewAssignment
  * @param $submission Submission
  * @param $context Context
  * @param $reminderType string
  * 	REVIEW_REMIND_AUTO, REVIEW_REQUEST_REMIND_AUTO
  */
 function sendReminder($reviewAssignment, $submission, $context, $reminderType = REVIEW_REMIND_AUTO)
 {
     $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
     $userDao = DAORegistry::getDAO('UserDAO');
     $reviewId = $reviewAssignment->getId();
     $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
     if (!isset($reviewer)) {
         return false;
     }
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $emailKey = $reminderType;
     $reviewerAccessKeysEnabled = $context->getSetting('reviewerAccessKeysEnabled');
     switch (true) {
         case $reviewerAccessKeysEnabled && $reminderType == REVIEW_REMIND_AUTO:
             $emailKey = 'REVIEW_REMIND_AUTO_ONECLICK';
             break;
         case $reviewerAccessKeysEnabled && $reminderType == REVIEW_REQUEST_REMIND_AUTO:
             $emailKey = 'REVIEW_REQUEST_REMIND_AUTO_ONECLICK';
             break;
     }
     $email = new SubmissionMailTemplate($submission, $emailKey, $context->getPrimaryLocale(), $context, false);
     $email->setContext($context);
     $email->setReplyTo(null);
     $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
     $email->setSubject($email->getSubject($context->getPrimaryLocale()));
     $email->setBody($email->getBody($context->getPrimaryLocale()));
     $urlParams = array('submissionId' => $reviewAssignment->getSubmissionId());
     if ($reviewerAccessKeysEnabled) {
         import('lib.pkp.classes.security.AccessKeyManager');
         $accessKeyManager = new AccessKeyManager();
         // Key lifetime is the typical review period plus four weeks
         $keyLifetime = ($context->getSetting('numWeeksPerReview') + 4) * 7;
         $urlParams['key'] = $accessKeyManager->createKey('ReviewerContext', $reviewer->getId(), $reviewId, $keyLifetime);
     }
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     $dispatcher = $application->getDispatcher();
     $submissionReviewUrl = $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'reviewer', 'submission', null, $urlParams);
     // Format the review due date
     $reviewDueDate = strtotime($reviewAssignment->getDateDue());
     $dateFormatShort = Config::getVar('general', 'date_format_short');
     if ($reviewDueDate === -1 || $reviewDueDate === false) {
         // Default to something human-readable if no date specified
         $reviewDueDate = '_____';
     } else {
         $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
     }
     // Format the review response due date
     $responseDueDate = strtotime($reviewAssignment->getDateResponseDue());
     if ($responseDueDate === -1 || $responseDueDate === false) {
         // Default to something human-readable if no date specified
         $responseDueDate = '_____';
     } else {
         $responseDueDate = strftime($dateFormatShort, $responseDueDate);
     }
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_REVIEWER);
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON);
     $paramArray = array('reviewerName' => $reviewer->getFullName(), 'reviewerUserName' => $reviewer->getUsername(), 'reviewDueDate' => $reviewDueDate, 'responseDueDate' => $responseDueDate, 'editorialContactSignature' => $context->getSetting('contactName') . "\n" . $context->getLocalizedName(), 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))), 'submissionReviewUrl' => $submissionReviewUrl, 'messageToReviewer' => __('reviewer.step1.requestBoilerplate'), 'abstractTermIfEnabled' => $submission->getLocalizedAbstract() == '' ? '' : __('common.abstract'));
     $email->assignParams($paramArray);
     $email->send();
     $reviewAssignment->setDateReminded(Core::getCurrentDate());
     $reviewAssignment->setReminderWasAutomatic(1);
     $reviewAssignmentDao->updateObject($reviewAssignment);
 }
Example #11
0
 function assignParams($paramArray = array())
 {
     $paramArray['sectionName'] = strip_tags($this->submission->getSectionTitle());
     parent::assignParams($paramArray);
 }
 /**
  * Fetches an email template's message body and returns it via AJAX.
  * @param $args array
  * @param $request PKPRequest
  * @return JSONMessage JSON object
  */
 function fetchTemplateBody($args, $request)
 {
     $templateId = $request->getUserVar('template');
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $template = new SubmissionMailTemplate($this->getSubmission(), $templateId);
     if ($template) {
         $user = $request->getUser();
         $dispatcher = $request->getDispatcher();
         $context = $request->getContext();
         $template->assignParams(array('editorialContactSignature' => $user->getContactSignature(), 'signatureFullName' => $user->getFullname()));
         $template->replaceParams();
         import('controllers.grid.users.stageParticipant.form.StageParticipantNotifyForm');
         // exists in each app.
         $notifyForm = new StageParticipantNotifyForm($this->getSubmission()->getId(), ASSOC_TYPE_SUBMISSION, $this->getAuthorizedContextObject(ASSOC_TYPE_WORKFLOW_STAGE));
         return new JSONMessage(true, array('body' => $template->getBody(), 'variables' => $notifyForm->getEmailVariableNames($templateId)));
     }
 }
 /**
  * Save review assignment
  * @param $args array
  * @param $request PKPRequest
  */
 function execute($args, $request)
 {
     $submission = $this->getSubmission();
     $context = $request->getContext();
     $currentReviewRound = $this->getReviewRound();
     $stageId = $currentReviewRound->getStageId();
     $reviewDueDate = $this->getData('reviewDueDate');
     $responseDueDate = $this->getData('responseDueDate');
     // Get reviewer id and validate it.
     $reviewerId = (int) $this->getData('reviewerId');
     if (!$this->_isValidReviewer($context, $submission, $currentReviewRound, $reviewerId)) {
         fatalError('Invalid reviewer id.');
     }
     $reviewMethod = (int) $this->getData('reviewMethod');
     import('lib.pkp.classes.submission.action.EditorAction');
     $editorAction = new EditorAction();
     $editorAction->addReviewer($request, $submission, $reviewerId, $currentReviewRound, $reviewDueDate, $responseDueDate, $reviewMethod);
     // Get the reviewAssignment object now that it has been added.
     $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
     /* @var $reviewAssignmentDao ReviewAssignmentDAO */
     $reviewAssignment = $reviewAssignmentDao->getReviewAssignment($currentReviewRound->getId(), $reviewerId, $currentReviewRound->getRound(), $stageId);
     $reviewAssignment->setDateNotified(Core::getCurrentDate());
     $reviewAssignment->setCancelled(0);
     $reviewAssignment->stampModified();
     // Ensure that the review form ID is valid, if specified
     $reviewFormId = (int) $this->getData('reviewFormId');
     $reviewFormDao = DAORegistry::getDAO('ReviewFormDAO');
     $reviewForm = $reviewFormDao->getById($reviewFormId, Application::getContextAssocType(), $context->getId());
     $reviewAssignment->setReviewFormId($reviewForm ? $reviewFormId : null);
     $reviewAssignmentDao->updateObject($reviewAssignment);
     // Grant access for this review to all selected files.
     $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
     import('lib.pkp.classes.submission.SubmissionFile');
     // File constants
     $submissionFiles = $submissionFileDao->getLatestRevisionsByReviewRound($currentReviewRound, SUBMISSION_FILE_REVIEW_FILE);
     $selectedFiles = (array) $this->getData('selectedFiles');
     $reviewFilesDao = DAORegistry::getDAO('ReviewFilesDAO');
     foreach ($submissionFiles as $submissionFile) {
         if (in_array($submissionFile->getFileId(), $selectedFiles)) {
             $reviewFilesDao->grant($reviewAssignment->getId(), $submissionFile->getFileId());
         }
     }
     // Notify the reviewer via email.
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $templateKey = $this->getData('template');
     $mail = new SubmissionMailTemplate($submission, $templateKey, null, null, null, false);
     if ($mail->isEnabled() && !$this->getData('skipEmail')) {
         $userDao = DAORegistry::getDAO('UserDAO');
         /* @var $userDao UserDAO */
         $reviewer = $userDao->getById($reviewerId);
         $user = $request->getUser();
         $mail->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
         $mail->setBody($this->getData('personalMessage'));
         $dispatcher = $request->getDispatcher();
         // Set the additional arguments for the one click url
         $reviewUrlArgs = array('submissionId' => $this->getSubmissionId());
         if ($context->getSetting('reviewerAccessKeysEnabled')) {
             import('lib.pkp.classes.security.AccessKeyManager');
             $accessKeyManager = new AccessKeyManager();
             $expiryDays = $context->getSetting('numWeeksPerReview') + 4 * 7;
             $accessKey = $accessKeyManager->createKey($context->getId(), $reviewerId, $reviewAssignment->getId(), $expiryDays);
             $reviewUrlArgs = array_merge($reviewUrlArgs, array('reviewId' => $reviewAssignment->getId(), 'key' => $accessKey));
         }
         // Assign the remaining parameters
         $mail->assignParams(array('reviewerName' => $reviewer->getFullName(), 'responseDueDate' => $responseDueDate, 'reviewDueDate' => $reviewDueDate, 'reviewerUserName' => $reviewer->getUsername(), 'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', null, $reviewUrlArgs)));
         $mail->send($request);
     }
     return $reviewAssignment;
 }
Example #14
0
 function assignParams($paramArray = array())
 {
     $submission = $this->submission;
     $paramArray['seriesName'] = strip_tags($submission->getSeriesTitle());
     parent::assignParams($paramArray);
 }
Example #15
0
 /**
  * Assign user to copyedit the selected files
  * @see Form::execute()
  */
 function execute($request)
 {
     // Decode the "files" list
     import('lib.pkp.classes.controllers.listbuilder.ListbuilderHandler');
     ListbuilderHandler::unpack($request, $this->getData('files'));
     // Send the message to the user
     $submission = $this->getSubmission();
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, 'AUDITOR_REQUEST', null, null, null, false);
     $email->setBody($this->getData('personalMessage'));
     $userDao = DAORegistry::getDAO('UserDAO');
     /* @var $userDao UserDAO */
     // FIXME: How to validate user IDs?
     $user = $userDao->getById($this->getData('userId'));
     import('lib.pkp.controllers.grid.submissions.SubmissionsListGridCellProvider');
     list($page, $operation) = SubmissionsListGridCellProvider::getPageAndOperationByUserRoles($request, $submission, $user->getId());
     $dispatcher = $request->getDispatcher();
     $auditUrl = $dispatcher->url($request, ROUTE_PAGE, null, $page, $operation, array('submissionId' => $submission->getId()));
     // Other parameters assigned above; see bug #7090.
     $email->assignParams(array('auditorName' => $user->getFullName(), 'auditorUserName' => $user->getUsername(), 'auditUrl' => $auditUrl));
     $email->addRecipient($user->getEmail(), $user->getFullName());
     $email->setEventType($this->getEventType());
     if (!$this->getData('skipEmail')) {
         $email->send($request);
     }
 }