00001 <?php
00002
00015
00016
00017
00018 import('pages.author.TrackSubmissionHandler');
00019
00020 class SubmissionCommentsHandler extends AuthorHandler {
00021
00025 function viewEditorDecisionComments($args) {
00026 AuthorHandler::validate();
00027 AuthorHandler::setupTemplate(true);
00028
00029 $articleId = $args[0];
00030
00031 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00032 AuthorAction::viewEditorDecisionComments($authorSubmission);
00033 }
00034
00038 function viewCopyeditComments($args) {
00039 AuthorHandler::validate();
00040 AuthorHandler::setupTemplate(true);
00041
00042 $articleId = $args[0];
00043
00044 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00045 AuthorAction::viewCopyeditComments($authorSubmission);
00046
00047 }
00048
00052 function postCopyeditComment() {
00053 AuthorHandler::validate();
00054 AuthorHandler::setupTemplate(true);
00055
00056 $articleId = Request::getUserVar('articleId');
00057
00058
00059 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00060
00061 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00062 if (AuthorAction::postCopyeditComment($authorSubmission, $emailComment)) {
00063 AuthorAction::viewCopyeditComments($authorSubmission);
00064 }
00065
00066 }
00067
00071 function viewProofreadComments($args) {
00072 AuthorHandler::validate();
00073 AuthorHandler::setupTemplate(true);
00074
00075 $articleId = $args[0];
00076
00077 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00078 AuthorAction::viewProofreadComments($authorSubmission);
00079
00080 }
00081
00085 function postProofreadComment() {
00086 AuthorHandler::validate();
00087 AuthorHandler::setupTemplate(true);
00088
00089 $articleId = Request::getUserVar('articleId');
00090
00091
00092 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00093
00094 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00095 if (AuthorAction::postProofreadComment($authorSubmission, $emailComment)) {
00096 AuthorAction::viewProofreadComments($authorSubmission);
00097 }
00098
00099 }
00100
00104 function viewLayoutComments($args) {
00105 AuthorHandler::validate();
00106 AuthorHandler::setupTemplate(true);
00107
00108 $articleId = $args[0];
00109
00110 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00111 AuthorAction::viewLayoutComments($authorSubmission);
00112
00113 }
00114
00118 function postLayoutComment() {
00119 AuthorHandler::validate();
00120 AuthorHandler::setupTemplate(true);
00121
00122 $articleId = Request::getUserVar('articleId');
00123
00124
00125 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00126
00127 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00128 if (AuthorAction::postLayoutComment($authorSubmission, $emailComment)) {
00129 AuthorAction::viewLayoutComments($authorSubmission);
00130 }
00131
00132 }
00133
00137 function emailEditorDecisionComment() {
00138 $articleId = (int) Request::getUserVar('articleId');
00139 list($journal, $submission) = TrackSubmissionHandler::validate($articleId);
00140
00141 parent::setupTemplate(true);
00142 if (AuthorAction::emailEditorDecisionComment($submission, Request::getUserVar('send'))) {
00143 Request::redirect(null, null, 'submissionReview', array($articleId));
00144 }
00145 }
00146
00150 function editComment($args) {
00151 AuthorHandler::validate();
00152 AuthorHandler::setupTemplate(true);
00153
00154 $articleId = $args[0];
00155 $commentId = $args[1];
00156
00157 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00158 list($comment) = SubmissionCommentsHandler::validate($commentId);
00159
00160 if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) {
00161
00162 Request::redirect(null, Request::getRequestedPage());
00163 }
00164
00165 AuthorAction::editComment($authorSubmission, $comment);
00166
00167 }
00168
00172 function saveComment() {
00173 AuthorHandler::validate();
00174 AuthorHandler::setupTemplate(true);
00175
00176 $articleId = Request::getUserVar('articleId');
00177 $commentId = Request::getUserVar('commentId');
00178
00179
00180 $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false;
00181
00182 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00183 list($comment) = SubmissionCommentsHandler::validate($commentId);
00184
00185 if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) {
00186
00187 Request::redirect(null, Request::getRequestedPage());
00188 }
00189
00190 AuthorAction::saveComment($authorSubmission, $comment, $emailComment);
00191
00192 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00193 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00194
00195
00196 if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) {
00197 Request::redirect(null, null, 'viewEditorDecisionComments', $articleId);
00198 } else if ($comment->getCommentType() == COMMENT_TYPE_COPYEDIT) {
00199 Request::redirect(null, null, 'viewCopyeditComments', $articleId);
00200 } else if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) {
00201 Request::redirect(null, null, 'viewLayoutComments', $articleId);
00202 } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) {
00203 Request::redirect(null, null, 'viewProofreadComments', $articleId);
00204 }
00205 }
00206
00210 function deleteComment($args) {
00211 AuthorHandler::validate();
00212 AuthorHandler::setupTemplate(true);
00213
00214 $articleId = $args[0];
00215 $commentId = $args[1];
00216
00217 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00218 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00219
00220 list($journal, $authorSubmission) = TrackSubmissionHandler::validate($articleId);
00221 list($comment) = SubmissionCommentsHandler::validate($commentId);
00222 AuthorAction::deleteComment($commentId);
00223
00224
00225 if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) {
00226 Request::redirect(null, null, 'viewEditorDecisionComments', $articleId);
00227 } else if ($comment->getCommentType() == COMMENT_TYPE_COPYEDIT) {
00228 Request::redirect(null, null, 'viewCopyeditComments', $articleId);
00229 } else if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) {
00230 Request::redirect(null, null, 'viewLayoutComments', $articleId);
00231 } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) {
00232 Request::redirect(null, null, 'viewProofreadComments', $articleId);
00233 }
00234 }
00235
00236
00237
00238
00239
00240
00244 function validate($commentId) {
00245 parent::validate();
00246
00247 $isValid = true;
00248
00249 $articleCommentDao = &DAORegistry::getDAO('ArticleCommentDAO');
00250 $user = &Request::getUser();
00251
00252 $comment = &$articleCommentDao->getArticleCommentById($commentId);
00253
00254 if ($comment == null) {
00255 $isValid = false;
00256
00257 } else if ($comment->getAuthorId() != $user->getUserId()) {
00258 $isValid = false;
00259 }
00260
00261 if (!$isValid) {
00262 Request::redirect(null, Request::getRequestedPage());
00263 }
00264
00265 return array($comment);
00266 }
00267 }
00268 ?>