17 import(
'classes.handler.Handler');
18 import(
'lib.pkp.classes.core.JSONMessage');
26 parent::__construct();
37 function authorize($request, &$args, $roleAssignments) {
38 import(
'lib.pkp.classes.security.authorization.AuthorDashboardAccessPolicy');
41 return parent::authorize($request, $args, $roleAssignments);
58 $stageId = $request->getUserVar(
'stageId');
59 $templateMgr->assign(
'stageId', $stageId);
62 $templateMgr->assign(
'submission', $submission);
65 $canAccessCopyeditingStage =
true;
67 if (!array_key_exists(WORKFLOW_STAGE_ID_EDITING, $userAllowedStages)) {
68 $canAccessCopyeditingStage =
false;
70 $templateMgr->assign(
'canAccessCopyeditingStage', $canAccessCopyeditingStage);
73 import(
'lib.pkp.classes.submission.SubmissionFile');
76 $currentStage = $submission->getStageId();
80 if (in_array($stageId, array(WORKFLOW_STAGE_ID_INTERNAL_REVIEW, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW))) {
82 $templateMgr->assign(
'reviewRounds', $reviewRoundDao->getBySubmissionId($submission->getId(), $stageId));
88 $user = $request->getUser();
92 'authorDashboardNotificationRequestOptions',
99 case WORKFLOW_STAGE_ID_SUBMISSION:
100 return $templateMgr->fetchJson(
'controllers/tab/authorDashboard/submission.tpl');
101 case WORKFLOW_STAGE_ID_INTERNAL_REVIEW:
102 return $templateMgr->fetchJson(
'controllers/tab/authorDashboard/internalReview.tpl');
103 case WORKFLOW_STAGE_ID_EXTERNAL_REVIEW:
104 return $templateMgr->fetchJson(
'controllers/tab/authorDashboard/externalReview.tpl');
105 case WORKFLOW_STAGE_ID_EDITING:
106 $templateMgr->assign(
'copyeditingEmails', $submissionEmailLogDao->getByEventType($submission->getId(), SUBMISSION_EMAIL_COPYEDIT_NOTIFY_AUTHOR, $user->getId()));
107 return $templateMgr->fetchJson(
'controllers/tab/authorDashboard/editorial.tpl');
108 case WORKFLOW_STAGE_ID_PRODUCTION:
109 $templateMgr->assign(array(
110 'productionEmails' => $submissionEmailLogDao->getByEventType($submission->getId(), SUBMISSION_EMAIL_PROOFREAD_NOTIFY_AUTHOR, $user->getId()),
112 return $templateMgr->fetchJson(
'controllers/tab/authorDashboard/production.tpl');
124 $lastExternalReviewRound = $reviewRoundDao->getLastReviewRoundBySubmissionId($submission->getId(), $stageId);
125 if ($lastExternalReviewRound) {
126 return $lastExternalReviewRound->getRound();
137 $submissionAssocTypeAndIdArray = array(ASSOC_TYPE_SUBMISSION, $submission->getId());
139 NOTIFICATION_LEVEL_TASK => array(
140 NOTIFICATION_TYPE_PENDING_EXTERNAL_REVISIONS => $submissionAssocTypeAndIdArray),
141 NOTIFICATION_LEVEL_NORMAL => array(
142 NOTIFICATION_TYPE_EDITOR_DECISION_ACCEPT => $submissionAssocTypeAndIdArray,
143 NOTIFICATION_TYPE_EDITOR_DECISION_EXTERNAL_REVIEW => $submissionAssocTypeAndIdArray,
144 NOTIFICATION_TYPE_EDITOR_DECISION_PENDING_REVISIONS => $submissionAssocTypeAndIdArray,
145 NOTIFICATION_TYPE_EDITOR_DECISION_RESUBMIT => $submissionAssocTypeAndIdArray,
146 NOTIFICATION_TYPE_EDITOR_DECISION_NEW_ROUND => $submissionAssocTypeAndIdArray,
147 NOTIFICATION_TYPE_EDITOR_DECISION_DECLINE => $submissionAssocTypeAndIdArray,
148 NOTIFICATION_TYPE_EDITOR_DECISION_SEND_TO_PRODUCTION => $submissionAssocTypeAndIdArray),
149 NOTIFICATION_LEVEL_TRIVIAL => array()