Ejemplo n.º 1
0
 /**
  * Initialize form data from the associated author.
  * @param $args array
  * @param $request PKPRequest
  */
 function initData($args, $request)
 {
     $userDao = DAORegistry::getDAO('UserDAO');
     $user = $request->getUser();
     $context = $request->getContext();
     $reviewAssignment = $this->getReviewAssignment();
     $reviewerId = $reviewAssignment->getReviewerId();
     $reviewer = $userDao->getById($reviewerId);
     $submissionDao = Application::getSubmissionDAO();
     $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $email = new SubmissionMailTemplate($submission, 'REVIEW_ACK');
     $dispatcher = $request->getDispatcher();
     $email->assignParams(array('reviewerName' => $reviewer->getFullName(), 'editorialContactSignature' => $user->getContactSignature(), 'reviewerUserName' => $reviewer->getUsername(), '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()))));
     $email->replaceParams();
     $this->setData('submissionId', $submission->getId());
     $this->setData('stageId', $reviewAssignment->getStageId());
     $this->setData('reviewAssignmentId', $reviewAssignment->getId());
     $this->setData('reviewAssignment', $reviewAssignment);
     $this->setData('reviewerName', $reviewer->getFullName() . ' <' . $reviewer->getEmail() . '>');
     $this->setData('message', $email->getBody());
 }
Ejemplo n.º 2
0
 /**
  * Initialize form data
  *
  * @param $args array
  * @param $request PKPRequest
  */
 function initData($args, $request)
 {
     $context = $request->getContext();
     $submission = $this->getSubmission();
     $reviewAssignment = $this->getReviewAssignment();
     $reviewRound = $this->getReviewRound();
     $reviewerId = $reviewAssignment->getReviewerId();
     $this->setData('submissionId', $submission->getId());
     $this->setData('stageId', $reviewRound->getStageId());
     $this->setData('reviewRoundId', $reviewRound->getId());
     $this->setData('reviewAssignmentId', $reviewAssignment->getId());
     $this->setData('reviewerId', $reviewerId);
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $template = new SubmissionMailTemplate($submission, 'REVIEW_CANCEL');
     if ($template) {
         $userDao = DAORegistry::getDAO('UserDAO');
         $reviewer = $userDao->getById($reviewerId);
         $user = $request->getUser();
         $template->assignParams(array('reviewerName' => $reviewer->getFullName(), 'editorialContactSignature' => $user->getContactSignature(), 'signatureFullName' => $user->getFullname()));
         $template->replaceParams();
         $this->setData('personalMessage', $template->getBody());
     }
 }
 /**
  * @copydoc Form::initData()
  */
 function initData($args, $request, $actionLabels)
 {
     $context = $request->getContext();
     $router = $request->getRouter();
     $dispatcher = $router->getDispatcher();
     $submission = $this->getSubmission();
     $user = $request->getUser();
     import('lib.pkp.classes.mail.SubmissionMailTemplate');
     $emailKeys = array(SUBMISSION_EDITOR_DECISION_ACCEPT => 'EDITOR_DECISION_ACCEPT', SUBMISSION_EDITOR_DECISION_DECLINE => 'EDITOR_DECISION_DECLINE', SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW => 'EDITOR_DECISION_SEND_TO_EXTERNAL', SUBMISSION_EDITOR_DECISION_RESUBMIT => 'EDITOR_DECISION_RESUBMIT', SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS => 'EDITOR_DECISION_REVISIONS', SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION => 'EDITOR_DECISION_SEND_TO_PRODUCTION');
     $email = new SubmissionMailTemplate($submission, $emailKeys[$this->getDecision()]);
     $submissionUrl = $dispatcher->url($request, ROUTE_PAGE, null, 'authorDashboard', 'submission', $submission->getId());
     $email->assignParams(array('authorName' => $submission->getAuthorString(), 'editorialContactSignature' => $user->getContactSignature(), 'submissionUrl' => "<a href=\"{$submissionUrl}\">{$submissionUrl}</a>"));
     $email->replaceParams();
     // If we are in review stage we need a review round.
     $reviewRound = $this->getReviewRound();
     if (is_a($reviewRound, 'ReviewRound')) {
         $this->setData('reviewRoundId', $reviewRound->getId());
     }
     $data = array('submissionId' => $submission->getId(), 'decision' => $this->getDecision(), 'authorName' => $submission->getAuthorString(), 'personalMessage' => $email->getBody(), 'actionLabel' => $actionLabels[$this->getDecision()]);
     foreach ($data as $key => $value) {
         $this->setData($key, $value);
     }
     return parent::initData($args, $request);
 }
 /**
  * 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)));
     }
 }
 /**
  * Initialize form data from the associated author.
  * @param $args array
  * @param $request PKPRequest
  */
 function initData($args, $request)
 {
     $reviewerId = (int) $request->getUserVar('reviewerId');
     $context = $request->getContext();
     $reviewRound = $this->getReviewRound();
     $submission = $this->getSubmission();
     // The reviewer id has been set
     if (!empty($reviewerId)) {
         if ($this->_isValidReviewer($context, $submission, $reviewRound, $reviewerId)) {
             $userDao = DAORegistry::getDAO('UserDAO');
             /* @var $userDao UserDAO */
             $reviewer = $userDao->getById($reviewerId);
             $this->setData('userNameString', sprintf('%s (%s)', $reviewer->getFullname(), $reviewer->getUsername()));
         }
     }
     // Get review assignment related data;
     $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
     $reviewAssignment = $reviewAssignmentDao->getReviewAssignment($reviewRound->getId(), $reviewerId, $reviewRound->getRound());
     // Get the review method (open, blind, or double-blind)
     if (isset($reviewAssignment) && $reviewAssignment->getReviewMethod() != false) {
         $reviewMethod = $reviewAssignment->getReviewMethod();
         $reviewFormId = $reviewAssignment->getReviewFormId();
     } else {
         // Set default review method.
         $reviewMethod = $context->getSetting('defaultReviewMode');
         if (!$reviewMethod) {
             $reviewMethod = SUBMISSION_REVIEW_METHOD_BLIND;
         }
         // If there is a section/series and it has a default
         // review form designated, use it.
         $sectionDao = Application::getSectionDAO();
         $section = $sectionDao->getById($submission->getSectionId(), $context->getId());
         if ($section) {
             $reviewFormId = $section->getReviewFormId();
         } else {
             $reviewFormId = null;
         }
     }
     // Get the response/review due dates or else set defaults
     if (isset($reviewAssignment) && $reviewAssignment->getDueDate() != null) {
         $reviewDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime($reviewAssignment->getDueDate()));
     } else {
         $numWeeks = (int) $context->getSetting('numWeeksPerReview');
         if ($numWeeks <= 0) {
             $numWeeks = 4;
         }
         $reviewDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime('+' . $numWeeks . ' week'));
     }
     if (isset($reviewAssignment) && $reviewAssignment->getResponseDueDate() != null) {
         $responseDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime($reviewAssignment->getResponseDueDate()));
     } else {
         $numWeeks = (int) $context->getSetting('numWeeksPerResponse');
         if ($numWeeks <= 0) {
             $numWeeks = 3;
         }
         $responseDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime('+' . $numWeeks . ' week'));
     }
     // Get the currently selected reviewer selection type to show the correct tab if we're re-displaying the form
     $selectionType = (int) $request->getUserVar('selectionType');
     $stageId = $reviewRound->getStageId();
     $this->setData('submissionId', $this->getSubmissionId());
     $this->setData('stageId', $stageId);
     $this->setData('reviewMethod', $reviewMethod);
     $this->setData('reviewFormId', $reviewFormId);
     $this->setData('reviewRoundId', $reviewRound->getId());
     $this->setData('reviewerId', $reviewerId);
     $context = $request->getContext();
     $templateKey = $this->_getMailTemplateKey($context);
     $template = new SubmissionMailTemplate($submission, $templateKey);
     if ($template) {
         $user = $request->getUser();
         $dispatcher = $request->getDispatcher();
         AppLocale::requireComponents(LOCALE_COMPONENT_PKP_REVIEWER);
         // reviewer.step1.requestBoilerplate
         $template->assignParams(array('contextUrl' => $dispatcher->url($request, ROUTE_PAGE, $context->getPath()), 'editorialContactSignature' => $user->getContactSignature(), 'signatureFullName' => $user->getFullname(), 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'login', 'lostPassword'), 'messageToReviewer' => __('reviewer.step1.requestBoilerplate'), 'abstractTermIfEnabled' => $submission->getLocalizedAbstract() == '' ? '' : __('common.abstract')));
         $template->replaceParams();
     }
     $this->setData('personalMessage', $template->getBody());
     $this->setData('responseDueDate', $responseDueDate);
     $this->setData('reviewDueDate', $reviewDueDate);
     $this->setData('selectionType', $selectionType);
 }
Ejemplo n.º 6
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;
 }