Open Monograph Press  3.3.0
PKPReviewerReviewStep1Form.inc.php
1 <?php
2 
16 import('lib.pkp.classes.submission.reviewer.form.ReviewerReviewForm');
17 
24  function __construct($request, $reviewerSubmission, $reviewAssignment) {
25  parent::__construct($request, $reviewerSubmission, $reviewAssignment, 1);
26  $context = $request->getContext();
27  if (!$reviewAssignment->getDateConfirmed() && $context->getData('privacyStatement')) {
28  $this->addCheck(new FormValidator($this, 'privacyConsent', 'required', 'user.profile.form.privacyConsentRequired'));
29  }
30  }
31 
35  function validate($callHooks = true) {
36  AppLocale::requireComponents(LOCALE_COMPONENT_PKP_USER); // for user.profile.form.privacyConsentRequired
37 
38  return parent::validate($callHooks);
39  }
40 
41  //
42  // Implement protected template methods from Form
43  //
47  function fetch($request, $template = null, $display = false) {
48  $templateMgr = TemplateManager::getManager($request);
49  $context = $request->getContext();
50 
51  // Add submission parameters.
52  $reviewerSubmission = $this->getReviewerSubmission();
53  $templateMgr->assign('completedSteps', $reviewerSubmission->getStatus());
54  $templateMgr->assign('reviewerCompetingInterests', $reviewerSubmission->getCompetingInterests());
55 
56  // Add review assignment.
57  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
58  $reviewAssignment = $reviewAssignmentDao->getById($reviewerSubmission->getReviewId());
59  $templateMgr->assign(array(
60  'reviewAssignment' => $reviewAssignment,
61  'reviewRoundId' => $reviewAssignment->getReviewRoundId(),
62  'restrictReviewerFileAccess' => $context->getData('restrictReviewerFileAccess'),
63  'reviewMethod' => __($reviewAssignment->getReviewMethodKey()),
64  ));
65 
66  // Add reviewer request text.
67  $templateMgr->assign('reviewerRequest', __('reviewer.step1.requestBoilerplate'));
68 
69  //
70  // Assign the link actions
71  //
72  import('lib.pkp.classes.linkAction.request.AjaxModal');
73  import('lib.pkp.classes.linkAction.request.ConfirmationModal');
74 
75  // "View metadata" action.
76  import('lib.pkp.controllers.modals.review.ReviewerViewMetadataLinkAction');
77  $viewMetadataLinkAction = new ReviewerViewMetadataLinkAction($request, $reviewAssignment->getSubmissionId(), $reviewAssignment->getId());
78  $templateMgr->assign('viewMetadataAction', $viewMetadataLinkAction);
79 
80  // include the confirmation modal for competing interests if the context has them.
81  if ($context->getLocalizedData('competingInterests') != '') {
82  import('lib.pkp.controllers.confirmationModal.linkAction.ViewCompetingInterestGuidelinesLinkAction');
83  $competingInterestsAction = new ViewCompetingInterestGuidelinesLinkAction($request);
84  $templateMgr->assign('competingInterestsAction', $competingInterestsAction);
85  }
86  // Instantiate the view review guidelines confirmation modal.
87  $aboutDueDateAction = new LinkAction('viewReviewGuidelines',
89  __('reviewer.aboutDueDates.text'),
90  __('reviewer.aboutDueDates'),
91  'modal_information', null, '',
92  false
93  ),
94  __('reviewer.aboutDueDates')
95  );
96 
97  $templateMgr->assign('aboutDueDatesAction', $aboutDueDateAction);
98 
99  import('lib.pkp.classes.linkAction.request.AjaxModal');
100  $declineReviewLinkAction = new LinkAction('declineReview',
101  new AjaxModal(
102  $request->url(null, null, 'showDeclineReview', $reviewAssignment->getSubmissionId()),
103  __('reviewer.submission.declineReview')
104  )
105  );
106  $templateMgr->assign('declineReviewAction', $declineReviewLinkAction);
107 
108  return parent::fetch($request, $template, $display);
109  }
110 
114  function readInputData() {
115  $this->readUserVars(array('competingInterestOption', 'reviewerCompetingInterests', 'privacyConsent'));
116  }
117 
121  function execute(...$functionParams) {
122  $reviewerSubmission = $this->getReviewerSubmission();
123 
124  // Set competing interests.
125  if ($this->getData('competingInterestOption') == 'hasCompetingInterests') {
126  $reviewerSubmission->setCompetingInterests($this->request->getUserVar('reviewerCompetingInterests'));
127  } else {
128  $reviewerSubmission->setCompetingInterests(null);
129  }
130 
131  // Set review to next step.
132  $this->updateReviewStepAndSaveSubmission($reviewerSubmission);
133 
134  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
135  $reviewAssignment = $reviewAssignmentDao->getById($reviewerSubmission->getReviewId());
136  // if the reviewer has not previously confirmed the review, then
137  // Set that the reviewer has accepted the review.
138  if (!$reviewAssignment->getDateConfirmed()) {
139  $reviewerAction = new ReviewerAction();
140  $reviewerAction->confirmReview($this->request, $reviewAssignment, $reviewerSubmission, false);
141  }
142 
143  parent::execute(...$functionParams);
144  }
145 }
ReviewerReviewForm\getReviewerSubmission
getReviewerSubmission()
Definition: ReviewerReviewForm.inc.php:67
ReviewerReviewForm
Base class for reviewer forms.
Definition: ReviewerReviewForm.inc.php:17
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKPReviewerReviewStep1Form
Form for Step 1 of a review.
Definition: PKPReviewerReviewStep1Form.inc.php:18
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
ConfirmationModal
Class defining a simple confirmation modal either with remote action or not.
Definition: ConfirmationModal.inc.php:18
PKPReviewerReviewStep1Form\fetch
fetch($request, $template=null, $display=false)
Definition: PKPReviewerReviewStep1Form.inc.php:47
PKPReviewerReviewStep1Form\readInputData
readInputData()
Definition: PKPReviewerReviewStep1Form.inc.php:114
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
ReviewerReviewForm\updateReviewStepAndSaveSubmission
updateReviewStepAndSaveSubmission($reviewerSubmission)
Definition: ReviewerReviewForm.inc.php:114
ReviewerAction
ReviewerAction class.
Definition: ReviewerAction.inc.php:20
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
ReviewerViewMetadataLinkAction
An action to open the submission meta-data modal.
Definition: ReviewerViewMetadataLinkAction.inc.php:20
PKPReviewerReviewStep1Form\validate
validate($callHooks=true)
Definition: PKPReviewerReviewStep1Form.inc.php:35
ReviewerReviewForm\$request
$request
Definition: ReviewerReviewForm.inc.php:41
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
PKPReviewerReviewStep1Form\__construct
__construct($request, $reviewerSubmission, $reviewAssignment)
Definition: PKPReviewerReviewStep1Form.inc.php:24
PKPReviewerReviewStep1Form\execute
execute(... $functionParams)
Definition: PKPReviewerReviewStep1Form.inc.php:121
ViewCompetingInterestGuidelinesLinkAction
An action to open the competing interests confirmation modal.
Definition: ViewCompetingInterestGuidelinesLinkAction.inc.php:18