00001 <?php
00002
00015
00016
00017
00018 import('submission.reviewer.ReviewerAction');
00019
00020 class ReviewerHandler extends Handler {
00021
00025 function index($args) {
00026 ReviewerHandler::validate();
00027 ReviewerHandler::setupTemplate();
00028
00029 $journal = &Request::getJournal();
00030 $user = &Request::getUser();
00031 $reviewerSubmissionDao = &DAORegistry::getDAO('ReviewerSubmissionDAO');
00032 $rangeInfo = Handler::getRangeInfo('submissions');
00033
00034 $page = isset($args[0]) ? $args[0] : '';
00035 switch($page) {
00036 case 'completed':
00037 $active = false;
00038 break;
00039 default:
00040 $page = 'active';
00041 $active = true;
00042 }
00043
00044 $submissions = $reviewerSubmissionDao->getReviewerSubmissionsByReviewerId($user->getUserId(), $journal->getJournalId(), $active, $rangeInfo);
00045
00046 $templateMgr = &TemplateManager::getManager();
00047 $templateMgr->assign('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions());
00048 $templateMgr->assign('pageToDisplay', $page);
00049 $templateMgr->assign_by_ref('submissions', $submissions);
00050
00051 import('submission.reviewAssignment.ReviewAssignment');
00052 $templateMgr->assign_by_ref('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions());
00053
00054 import('issue.IssueAction');
00055 $issueAction = &new IssueAction();
00056 $templateMgr->register_function('print_issue_id', array($issueAction, 'smartyPrintIssueId'));
00057 $templateMgr->assign('helpTopicId', 'editorial.reviewersRole.submissions');
00058 $templateMgr->display('reviewer/index.tpl');
00059 }
00060
00066 function validate() {
00067 parent::validate();
00068 $journal = &Request::getJournal();
00069
00070 if (!isset($journal) || !Validation::isReviewer($journal->getJournalId())) {
00071 Validation::redirectLogin();
00072 }
00073 }
00074
00082 function &validateAccessKey($userId, $reviewId, $newKey = null) {
00083 $journal =& Request::getJournal();
00084 if (!$journal || !$journal->getSetting('reviewerAccessKeysEnabled')) {
00085 $accessKey = false;
00086 return $accessKey;
00087 }
00088
00089 define('REVIEWER_ACCESS_KEY_SESSION_VAR', 'ReviewerAccessKey');
00090
00091 import('security.AccessKeyManager');
00092 $accessKeyManager =& new AccessKeyManager();
00093
00094 $session =& Request::getSession();
00095
00096 if (!empty($newKey)) {
00097 if (Validation::isLoggedIn()) {
00098 Validation::logout();
00099 }
00100 $keyHash = $accessKeyManager->generateKeyHash($newKey);
00101 $session->setSessionVar(REVIEWER_ACCESS_KEY_SESSION_VAR, $keyHash);
00102 } else {
00103 $keyHash = $session->getSessionVar(REVIEWER_ACCESS_KEY_SESSION_VAR);
00104 }
00105
00106
00107 $accessKey =& $accessKeyManager->validateKey(
00108 'ReviewerContext',
00109 $userId,
00110 $keyHash,
00111 $reviewId
00112 );
00113
00114 if ($accessKey) {
00115 $userDao =& DAORegistry::getDAO('UserDAO');
00116 $user =& $userDao->getUser($accessKey->getUserId(), false);
00117 return $user;
00118 }
00119
00120
00121 return $accessKey;
00122 }
00123
00128 function setupTemplate($subclass = false, $articleId = 0, $reviewId = 0) {
00129 $templateMgr = &TemplateManager::getManager();
00130 $pageHierarchy = $subclass ? array(array(Request::url(null, 'user'), 'navigation.user'), array(Request::url(null, 'reviewer'), 'user.role.reviewer'))
00131 : array(array(Request::url(null, 'user'), 'navigation.user'), array(Request::url(null, 'reviewer'), 'user.role.reviewer'));
00132
00133 if ($articleId && $reviewId) {
00134 $pageHierarchy[] = array(Request::url(null, 'reviewer', 'submission', $reviewId), "#$articleId", true);
00135 }
00136 $templateMgr->assign('pageHierarchy', $pageHierarchy);
00137 }
00138
00139
00140
00141
00142
00143 function submission($args) {
00144 import('pages.reviewer.SubmissionReviewHandler');
00145 SubmissionReviewHandler::submission($args);
00146 }
00147
00148 function confirmReview($args) {
00149 import('pages.reviewer.SubmissionReviewHandler');
00150 SubmissionReviewHandler::confirmReview($args);
00151 }
00152
00153 function saveCompetingInterests() {
00154 import('pages.reviewer.SubmissionReviewHandler');
00155 SubmissionReviewHandler::saveCompetingInterests();
00156 }
00157
00158 function recordRecommendation() {
00159 import('pages.reviewer.SubmissionReviewHandler');
00160 SubmissionReviewHandler::recordRecommendation();
00161 }
00162
00163 function viewMetadata($args) {
00164 import('pages.reviewer.SubmissionReviewHandler');
00165 SubmissionReviewHandler::viewMetadata($args);
00166 }
00167
00168 function uploadReviewerVersion() {
00169 import('pages.reviewer.SubmissionReviewHandler');
00170 SubmissionReviewHandler::uploadReviewerVersion();
00171 }
00172
00173 function deleteReviewerVersion($args) {
00174 import('pages.reviewer.SubmissionReviewHandler');
00175 SubmissionReviewHandler::deleteReviewerVersion($args);
00176 }
00177
00178
00179
00180
00181
00182 function downloadFile($args) {
00183 import('pages.reviewer.SubmissionReviewHandler');
00184 SubmissionReviewHandler::downloadFile($args);
00185 }
00186
00187
00188
00189
00190
00191 function editReviewFormResponse($args) {
00192 import('pages.reviewer.SubmissionReviewHandler');
00193 SubmissionReviewHandler::editReviewFormResponse($args);
00194 }
00195
00196 function saveReviewFormResponse($args) {
00197 import('pages.reviewer.SubmissionReviewHandler');
00198 SubmissionReviewHandler::saveReviewFormResponse($args);
00199 }
00200
00201
00202
00203
00204
00205 function viewPeerReviewComments($args) {
00206 import('pages.reviewer.SubmissionCommentsHandler');
00207 SubmissionCommentsHandler::viewPeerReviewComments($args);
00208 }
00209
00210 function postPeerReviewComment() {
00211 import('pages.reviewer.SubmissionCommentsHandler');
00212 SubmissionCommentsHandler::postPeerReviewComment();
00213 }
00214
00215 function editComment($args) {
00216 import('pages.reviewer.SubmissionCommentsHandler');
00217 SubmissionCommentsHandler::editComment($args);
00218 }
00219
00220 function saveComment() {
00221 import('pages.reviewer.SubmissionCommentsHandler');
00222 SubmissionCommentsHandler::saveComment();
00223 }
00224
00225 function deleteComment($args) {
00226 import('pages.reviewer.SubmissionCommentsHandler');
00227 SubmissionCommentsHandler::deleteComment($args);
00228 }
00229 }
00230
00231 ?>