00001 <?php
00002
00015
00016
00017
00018 import('pages.proofreader.SubmissionProofreadHandler');
00019
00020 class SubmissionCommentsHandler extends ProofreaderHandler {
00021
00025 function viewProofreadComments($args) {
00026 ProofreaderHandler::validate();
00027 ProofreaderHandler::setupTemplate(true);
00028
00029 $articleId = $args[0];
00030
00031 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00032 ProofreaderAction::viewProofreadComments($submission);
00033
00034 }
00035
00039 function postProofreadComment() {
00040 ProofreaderHandler::validate();
00041 ProofreaderHandler::setupTemplate(true);
00042
00043 $articleId = Request::getUserVar('articleId');
00044
00045
00046 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00047
00048 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00049 if (ProofreaderAction::postProofreadComment($submission, $emailComment)) {
00050 ProofreaderAction::viewProofreadComments($submission);
00051 }
00052 }
00053
00057 function viewLayoutComments($args) {
00058 ProofreaderHandler::validate();
00059 ProofreaderHandler::setupTemplate(true);
00060
00061 $articleId = $args[0];
00062
00063 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00064 ProofreaderAction::viewLayoutComments($submission);
00065
00066 }
00067
00071 function postLayoutComment() {
00072 ProofreaderHandler::validate();
00073 ProofreaderHandler::setupTemplate(true);
00074
00075 $articleId = Request::getUserVar('articleId');
00076
00077
00078 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00079
00080 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00081 if (ProofreaderAction::postLayoutComment($submission, $emailComment)) {
00082 ProofreaderAction::viewLayoutComments($submission);
00083 }
00084
00085 }
00086
00090 function editComment($args) {
00091 ProofreaderHandler::validate();
00092 ProofreaderHandler::setupTemplate(true);
00093
00094 $articleId = $args[0];
00095 $commentId = $args[1];
00096
00097 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00098 list($comment) = SubmissionCommentsHandler::validate($commentId);
00099 ProofreaderAction::editComment($submission, $comment);
00100
00101 }
00102
00106 function saveComment() {
00107 ProofreaderHandler::validate();
00108 ProofreaderHandler::setupTemplate(true);
00109
00110 $articleId = Request::getUserVar('articleId');
00111 $commentId = Request::getUserVar('commentId');
00112
00113
00114 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00115
00116 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00117 list($comment) = SubmissionCommentsHandler::validate($commentId);
00118 ProofreaderAction::saveComment($submission, $comment, $emailComment);
00119
00120
00121 $commentPageMap = array(
00122 COMMENT_TYPE_PROOFREAD => 'viewProofreadComments',
00123 COMMENT_TYPE_LAYOUT => 'viewLayoutComments'
00124 );
00125
00126
00127 Request::redirect(null, null, $commentPageMap[$comment->getCommentType()], $articleId);
00128 }
00129
00133 function deleteComment($args) {
00134 ProofreaderHandler::validate();
00135 ProofreaderHandler::setupTemplate(true);
00136
00137 $articleId = $args[0];
00138 $commentId = $args[1];
00139
00140 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00141 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00142
00143 list($journal, $submission) = SubmissionProofreadHandler::validate($articleId);
00144 list($comment) = SubmissionCommentsHandler::validate($commentId);
00145 ProofreaderAction::deleteComment($commentId);
00146
00147
00148 $commentPageMap = array(
00149 COMMENT_TYPE_PROOFREAD => 'viewProofreadComments',
00150 COMMENT_TYPE_LAYOUT => 'viewLayoutComments'
00151 );
00152
00153
00154 Request::redirect(null, null, $commentPageMap[$comment->getCommentType()], $articleId);
00155 }
00156
00157
00158
00159
00160
00161
00165 function validate($commentId) {
00166 parent::validate();
00167
00168 $isValid = true;
00169
00170 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00171 $user = &Request::getUser();
00172
00173 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00174
00175 if ($comment == null) {
00176 $isValid = false;
00177
00178 } else if ($comment->getAuthorId() != $user->getUserId()) {
00179 $isValid = false;
00180 }
00181
00182 if (!$isValid) {
00183 Request::redirect(null, Request::getRequestedPage());
00184 }
00185
00186 return array(&$comment);
00187 }
00188 }
00189 ?>