00001 <?php
00002
00015
00016
00017
00018 class SubmissionReviewHandler extends ReviewerHandler {
00023 function submission($args) {
00024 $journal = &Request::getJournal();
00025 $reviewId = $args[0];
00026
00027 list($journal, $submission, $user) = SubmissionReviewHandler::validate($reviewId);
00028
00029 $reviewAssignmentDao = &DAORegistry::getDAO('ReviewAssignmentDAO');
00030 $reviewAssignment = $reviewAssignmentDao->getReviewAssignmentById($reviewId);
00031
00032 $reviewFormResponseDao =& DAORegistry::getDAO('ReviewFormResponseDAO');
00033
00034 if ($submission->getDateConfirmed() == null) {
00035 $confirmedStatus = 0;
00036 } else {
00037 $confirmedStatus = 1;
00038 }
00039
00040 ReviewerHandler::setupTemplate(true, $reviewAssignment->getArticleId(), $reviewId);
00041
00042 $templateMgr = &TemplateManager::getManager();
00043
00044 $templateMgr->assign_by_ref('user', $user);
00045 $templateMgr->assign_by_ref('submission', $submission);
00046 $templateMgr->assign_by_ref('reviewAssignment', $reviewAssignment);
00047 $templateMgr->assign('confirmedStatus', $confirmedStatus);
00048 $templateMgr->assign('declined', $submission->getDeclined());
00049 $templateMgr->assign('reviewFormResponseExists', $reviewFormResponseDao->reviewFormResponseExists($reviewId));
00050 $templateMgr->assign_by_ref('reviewFile', $reviewAssignment->getReviewFile());
00051 $templateMgr->assign_by_ref('reviewerFile', $submission->getReviewerFile());
00052 $templateMgr->assign_by_ref('suppFiles', $submission->getSuppFiles());
00053 $templateMgr->assign_by_ref('journal', $journal);
00054 $templateMgr->assign_by_ref('reviewGuidelines', $journal->getLocalizedSetting('reviewGuidelines'));
00055
00056 import('submission.reviewAssignment.ReviewAssignment');
00057 $templateMgr->assign_by_ref('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions());
00058
00059 $templateMgr->assign('helpTopicId', 'editorial.reviewersRole.review');
00060 $templateMgr->display('reviewer/submission.tpl');
00061 }
00062
00067 function confirmReview($args = null) {
00068 $reviewId = Request::getUserVar('reviewId');
00069 $declineReview = Request::getUserVar('declineReview');
00070
00071 $reviewerSubmissionDao = &DAORegistry::getDAO('ReviewerSubmissionDAO');
00072
00073 list($journal, $reviewerSubmission, $user) = SubmissionReviewHandler::validate($reviewId);
00074
00075 ReviewerHandler::setupTemplate();
00076
00077 $decline = isset($declineReview) ? 1 : 0;
00078
00079 if (!$reviewerSubmission->getCancelled()) {
00080 if (ReviewerAction::confirmReview($reviewerSubmission, $decline, Request::getUserVar('send'))) {
00081 Request::redirect(null, null, 'submission', $reviewId);
00082 }
00083 } else {
00084 Request::redirect(null, null, 'submission', $reviewId);
00085 }
00086 }
00087
00091 function saveCompetingInterests() {
00092 $reviewId = Request::getUserVar('reviewId');
00093 list($journal, $reviewerSubmission, $user) = SubmissionReviewHandler::validate($reviewId);
00094
00095 if ($reviewerSubmission->getDateConfirmed() && !$reviewerSubmission->getDeclined() && !$reviewerSubmission->getCancelled() && !$reviewerSubmission->getRecommendation()) {
00096 $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO');
00097 $reviewerSubmission->setCompetingInterests(Request::getUserVar('competingInterests'));
00098 $reviewerSubmissionDao->updateReviewerSubmission($reviewerSubmission);
00099 }
00100
00101 Request::redirect(null, 'reviewer', 'submission', array($reviewId));
00102 }
00103
00107 function recordRecommendation() {
00108 $reviewId = Request::getUserVar('reviewId');
00109 $recommendation = Request::getUserVar('recommendation');
00110
00111 list($journal, $reviewerSubmission, $user) = SubmissionReviewHandler::validate($reviewId);
00112
00113 ReviewerHandler::setupTemplate(true);
00114
00115 if (!$reviewerSubmission->getCancelled()) {
00116 if (ReviewerAction::recordRecommendation($reviewerSubmission, $recommendation, Request::getUserVar('send'))) {
00117 Request::redirect(null, null, 'submission', $reviewId);
00118 }
00119 } else {
00120 Request::redirect(null, null, 'submission', $reviewId);
00121 }
00122 }
00123
00128 function viewMetadata($args) {
00129 $reviewId = $args[0];
00130 $articleId = $args[1];
00131
00132 list($journal, $reviewerSubmission) = SubmissionReviewHandler::validate($reviewId);
00133
00134 parent::setupTemplate(true, $articleId, $reviewId);
00135
00136 ReviewerAction::viewMetadata($reviewerSubmission, ROLE_ID_REVIEWER);
00137 }
00138
00142 function uploadReviewerVersion() {
00143 $reviewId = Request::getUserVar('reviewId');
00144
00145 list($journal, $reviewerSubmission) = SubmissionReviewHandler::validate($reviewId);
00146
00147 ReviewerHandler::setupTemplate(true);
00148 ReviewerAction::uploadReviewerVersion($reviewId);
00149 Request::redirect(null, null, 'submission', $reviewId);
00150 }
00151
00152
00153
00154
00155 function deleteReviewerVersion($args) {
00156 $reviewId = isset($args[0]) ? (int) $args[0] : 0;
00157 $fileId = isset($args[1]) ? (int) $args[1] : 0;
00158 $revision = isset($args[2]) ? (int) $args[2] : null;
00159
00160 list($journal, $reviewerSubmission) = SubmissionReviewHandler::validate($reviewId);
00161
00162 if (!$reviewerSubmission->getCancelled()) ReviewerAction::deleteReviewerVersion($reviewId, $fileId, $revision);
00163 Request::redirect(null, null, 'submission', $reviewId);
00164 }
00165
00166
00167
00168
00169
00174 function downloadFile($args) {
00175 $reviewId = isset($args[0]) ? $args[0] : 0;
00176 $articleId = isset($args[1]) ? $args[1] : 0;
00177 $fileId = isset($args[2]) ? $args[2] : 0;
00178 $revision = isset($args[3]) ? $args[3] : null;
00179
00180 list($journal, $reviewerSubmission) = SubmissionReviewHandler::validate($reviewId);
00181 if (!ReviewerAction::downloadReviewerFile($reviewId, $reviewerSubmission, $fileId, $revision)) {
00182 Request::redirect(null, null, 'submission', $reviewId);
00183 }
00184 }
00185
00186
00187
00188
00189
00194 function editReviewFormResponse($args) {
00195 $reviewId = isset($args[0]) ? $args[0] : 0;
00196
00197 list($journal, $reviewerSubmission, $user) = SubmissionReviewHandler::validate($reviewId);
00198
00199 $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00200 $reviewAssignment =& $reviewAssignmentDao->getReviewAssignmentById($reviewId);
00201 $reviewFormId = $reviewAssignment->getReviewFormId();
00202 if ($reviewFormId != null) {
00203 ReviewerAction::editReviewFormResponse($reviewId, $reviewFormId);
00204 }
00205 }
00206
00211 function saveReviewFormResponse($args) {
00212 $reviewId = isset($args[0]) ? $args[0] : 0;
00213 $reviewFormId = isset($args[1]) ? $args[1] : 0;
00214 if (ReviewerAction::saveReviewFormResponse($reviewId, $reviewFormId)) {
00215 Request::redirect(null, null, 'submission', $reviewId);
00216 }
00217 }
00218
00219
00220
00221
00222
00228 function validate($reviewId) {
00229 $reviewerSubmissionDao = &DAORegistry::getDAO('ReviewerSubmissionDAO');
00230 $journal = &Request::getJournal();
00231 $user = &Request::getUser();
00232
00233 $isValid = true;
00234 $newKey = Request::getUserVar('key');
00235
00236 $reviewerSubmission = &$reviewerSubmissionDao->getReviewerSubmission($reviewId);
00237
00238 if (!$reviewerSubmission || $reviewerSubmission->getJournalId() != $journal->getJournalId()) {
00239 $isValid = false;
00240 } elseif ($user && empty($newKey)) {
00241 if ($reviewerSubmission->getReviewerId() != $user->getUserId()) {
00242 $isValid = false;
00243 }
00244 } else {
00245 $user =& SubmissionReviewHandler::validateAccessKey($reviewerSubmission->getReviewerId(), $reviewId, $newKey);
00246 if (!$user) $isValid = false;
00247 }
00248
00249 if (!$isValid) {
00250 Request::redirect(null, Request::getRequestedPage());
00251 }
00252
00253 return array($journal, $reviewerSubmission, $user);
00254 }
00255 }
00256 ?>