16 import(
'classes.handler.Handler');
17 import(
'lib.pkp.classes.core.JSONMessage');
18 import(
'lib.pkp.classes.submission.reviewer.ReviewerAction');
33 $reviewerSubmission = $reviewerSubmissionDao->getReviewerSubmission($reviewAssignment->getId());
34 assert(is_a($reviewerSubmission,
'ReviewerSubmission'));
39 $reviewStep = max($reviewerSubmission->getStep(), 1);
40 $userStep = (int) $request->getUserVar(
'step');
41 $step = (int) (!empty($userStep) ? $userStep: $reviewStep);
42 if ($step > $reviewStep) $step = $reviewStep;
43 if ($step < 1 || $step > 4)
throw new Exception(
'Invalid step!');
44 $templateMgr->assign([
45 'pageTitle' => __(
'semicolon', [
'label' => __(
'submission.review')]) . $reviewerSubmission->getLocalizedTitle(),
46 'reviewStep' => $reviewStep,
47 'selected' => $step - 1,
48 'submission' => $reviewerSubmission,
51 $templateMgr->display(
'reviewer/review/reviewStepHeader.tpl');
60 function step($args, $request) {
62 $reviewId = (int) $reviewAssignment->getId();
63 assert(!empty($reviewId));
66 $reviewerSubmission = $reviewerSubmissionDao->getReviewerSubmission($reviewAssignment->getId());
67 assert(is_a($reviewerSubmission,
'ReviewerSubmission'));
71 $reviewStep = max($reviewerSubmission->getStep(), 1);
72 $userStep = (int) $request->getUserVar(
'step');
73 $step = (int) (!empty($userStep) ? $userStep: $reviewStep);
74 if ($step > $reviewStep) $step = $reviewStep;
75 if ($step < 1 || $step > 4)
fatalError(
'Invalid step!');
78 $reviewerForm = $this->
getReviewForm($step, $request, $reviewerSubmission, $reviewAssignment);
79 $reviewerForm->initData();
80 return new JSONMessage(
true, $reviewerForm->fetch($request));
83 $templateMgr->assign([
84 'submission' => $reviewerSubmission,
86 'reviewAssignment' => $reviewAssignment,
88 return $templateMgr->fetchJson(
'reviewer/review/reviewCompleted.tpl');
99 $step = (int)$request->getUserVar(
'step');
100 if ($step<1 || $step>3)
fatalError(
'Invalid step!');
101 $saveFormButton = (bool)$request->getUserVar(
'saveFormButton');
104 if ($reviewAssignment->getDateCompleted())
fatalError(
'Review already completed!');
107 $reviewerSubmission = $reviewerSubmissionDao->getReviewerSubmission($reviewAssignment->getId());
108 assert(is_a($reviewerSubmission,
'ReviewerSubmission'));
110 $reviewerForm = $this->
getReviewForm($step, $request, $reviewerSubmission, $reviewAssignment);
111 $reviewerForm->readInputData();
114 if ($saveFormButton) {
115 $reviewerForm->saveForLater();
117 $user = $request->getUser();
118 $notificationMgr->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array(
'contents' => __(
'common.changesSaved')));
123 if ($reviewerForm->validate()) {
124 $reviewerForm->execute();
126 $json->setEvent(
'setStep', $step+1);
130 return new JSONMessage(
true, $reviewerForm->fetch($request));
145 $reviewerSubmission = $reviewerSubmissionDao->getReviewerSubmission($reviewAssignment->getId());
146 assert(is_a($reviewerSubmission,
'ReviewerSubmission'));
151 $templateMgr->assign(
'submissionId', $reviewerSubmission->getId());
155 $email = $reviewerAction->getResponseEmail($reviewerSubmission, $reviewAssignment, $request, 1);
156 $templateMgr->assign(
'declineMessageBody', $email->getBody());
158 return $templateMgr->fetchJson(
'reviewer/review/modal/regretMessage.tpl');
168 if ($reviewAssignment->getDateCompleted())
fatalError(
'Review already completed!');
170 $reviewId = (int) $reviewAssignment->getId();
171 $declineReviewMessage = $request->getUserVar(
'declineReviewMessage');
176 $reviewerAction->confirmReview($request, $reviewAssignment, $submission, 1, $declineReviewMessage);
178 $dispatcher = $request->getDispatcher();
179 return $request->redirectUrlJson($dispatcher->url($request, ROUTE_PAGE,
null,
'index'));
186 parent::setupTemplate($request);
188 LOCALE_COMPONENT_PKP_SUBMISSION,
189 LOCALE_COMPONENT_APP_SUBMISSION,
190 LOCALE_COMPONENT_APP_COMMON,
191 LOCALE_COMPONENT_PKP_GRID,
192 LOCALE_COMPONENT_PKP_REVIEWER,
193 LOCALE_COMPONENT_PKP_EDITOR,
194 LOCALE_COMPONENT_PKP_USER
205 public function getReviewForm($step, $request, $reviewerSubmission, $reviewAssignment) {
208 import(
"lib.pkp.classes.submission.reviewer.form.PKPReviewerReviewStep1Form");
211 import(
"lib.pkp.classes.submission.reviewer.form.PKPReviewerReviewStep2Form");
214 import(
"lib.pkp.classes.submission.reviewer.form.PKPReviewerReviewStep3Form");
224 $reviewId = (int) $reviewAssignment->getId();
225 assert(!empty($reviewId));