00001 <?php
00002
00015
00016
00017
00018 import('pages.reviewer.SubmissionReviewHandler');
00019
00020 class SubmissionCommentsHandler extends ReviewerHandler {
00021
00025 function viewPeerReviewComments($args) {
00026 $articleId = $args[0];
00027 $reviewId = $args[1];
00028
00029 list($journal, $submission, $user) = SubmissionReviewHandler::validate($reviewId);
00030 ReviewerHandler::setupTemplate(true);
00031 ReviewerAction::viewPeerReviewComments($user, $submission, $reviewId);
00032
00033 }
00034
00038 function postPeerReviewComment() {
00039 $articleId = Request::getUserVar('articleId');
00040 $reviewId = Request::getUserVar('reviewId');
00041
00042
00043 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00044
00045 list($journal, $submission, $user) = SubmissionReviewHandler::validate($reviewId);
00046
00047 ReviewerHandler::setupTemplate(true);
00048 if (ReviewerAction::postPeerReviewComment($user, $submission, $reviewId, $emailComment)) {
00049 ReviewerAction::viewPeerReviewComments($user, $submission, $reviewId);
00050 }
00051 }
00052
00056 function editComment($args) {
00057 $articleId = $args[0];
00058 $commentId = $args[1];
00059 $reviewId = Request::getUserVar('reviewId');
00060
00061 $articleDao = &DAORegistry::getDAO('ArticleDAO');
00062 $article = $articleDao->getArticle($articleId);
00063
00064 list($journal, $submission, $user) = SubmissionReviewHandler::validate($reviewId);
00065 list($comment) = SubmissionCommentsHandler::validate($user, $commentId);
00066
00067 ReviewerHandler::setupTemplate(true);
00068
00069 ReviewerAction::editComment($article, $comment, $reviewId);
00070 }
00071
00075 function saveComment() {
00076 $articleId = Request::getUserVar('articleId');
00077 $commentId = Request::getUserVar('commentId');
00078 $reviewId = Request::getUserVar('reviewId');
00079
00080 $articleDao = &DAORegistry::getDAO('ArticleDAO');
00081 $article = $articleDao->getArticle($articleId);
00082
00083 list($journal, $submission, $user) = SubmissionReviewHandler::validate($reviewId);
00084 list($comment) = SubmissionCommentsHandler::validate($user, $commentId);
00085
00086
00087 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00088
00089 ReviewerHandler::setupTemplate(true);
00090
00091 ReviewerAction::saveComment($article, $comment, $emailComment);
00092
00093
00094 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00095 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00096
00097
00098 if ($comment->getCommentType() == COMMENT_TYPE_PEER_REVIEW) {
00099 Request::redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId()));
00100 }
00101 }
00102
00106 function deleteComment($args) {
00107 $articleId = $args[0];
00108 $commentId = $args[1];
00109 $reviewId = Request::getUserVar('reviewId');
00110
00111 list($journal, $submission, $user) = SubmissionReviewHandler::validate($reviewId);
00112 list($comment) = SubmissionCommentsHandler::validate($user, $commentId);
00113
00114 ReviewerHandler::setupTemplate(true);
00115
00116 ReviewerAction::deleteComment($commentId, $user);
00117
00118
00119 if ($comment->getCommentType() == COMMENT_TYPE_PEER_REVIEW) {
00120 Request::redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId()));
00121 }
00122 }
00123
00124
00125
00126
00127
00131 function validate($user, $commentId) {
00132 $isValid = true;
00133
00134 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00135 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00136
00137 if ($comment == null) {
00138 $isValid = false;
00139
00140 } else if ($comment->getAuthorId() != $user->getUserId()) {
00141 $isValid = false;
00142 }
00143
00144 if (!$isValid) {
00145 Request::redirect(null, Request::getRequestedPage());
00146 }
00147
00148 return array($comment);
00149 }
00150 }
00151 ?>