16 import(
'lib.pkp.classes.controllers.modals.editorDecision.PKPEditorDecisionHandler');
19 import(
'classes.workflow.EditorDecisionActionsManager');
26 parent::__construct();
29 array(ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER),
31 'internalReview',
'saveInternalReview',
32 'externalReview',
'saveExternalReview',
33 'sendReviews',
'saveSendReviews',
34 'promote',
'savePromote',
46 function authorize($request, &$args, $roleAssignments) {
47 $stageId = (int) $request->getUserVar(
'stageId');
48 import(
'lib.pkp.classes.security.authorization.EditorDecisionAccessPolicy');
51 return parent::authorize($request, $args, $roleAssignments);
67 if ($stageId == WORKFLOW_STAGE_ID_INTERNAL_REVIEW) {
68 $redirectOp = WORKFLOW_STAGE_PATH_INTERNAL_REVIEW;
69 } elseif ($stageId == WORKFLOW_STAGE_ID_EXTERNAL_REVIEW) {
70 $redirectOp = WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
76 return $this->
_saveEditorDecision($args, $request,
'NewReviewRoundForm', $redirectOp, SUBMISSION_EDITOR_DECISION_NEW_ROUND);
98 $args, $request,
'InitiateInternalReviewForm',
99 WORKFLOW_STAGE_PATH_INTERNAL_REVIEW,
100 SUBMISSION_EDITOR_DECISION_INTERNAL_REVIEW
116 $decision = (int)$request->getUserVar(
'decision');
120 if ($decision == SUBMISSION_EDITOR_DECISION_ACCEPT) {
121 $redirectOp = WORKFLOW_STAGE_PATH_EDITING;
122 } elseif ($decision == SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW) {
123 $redirectOp = WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
124 } elseif ($decision == SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION) {
125 $redirectOp = WORKFLOW_STAGE_PATH_PRODUCTION;
129 import(
'lib.pkp.classes.workflow.WorkflowStageDAO');
132 if (!array_key_exists($redirectWorkflowStage, $userAccessibleWorkflowStages)) {
146 case SUBMISSION_EDITOR_DECISION_INTERNAL_REVIEW:
147 return NOTIFICATION_TYPE_EDITOR_DECISION_INTERNAL_REVIEW;
148 case SUBMISSION_EDITOR_DECISION_ACCEPT:
149 return NOTIFICATION_TYPE_EDITOR_DECISION_ACCEPT;
150 case SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW:
151 return NOTIFICATION_TYPE_EDITOR_DECISION_EXTERNAL_REVIEW;
152 case SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS:
153 return NOTIFICATION_TYPE_EDITOR_DECISION_PENDING_REVISIONS;
154 case SUBMISSION_EDITOR_DECISION_RESUBMIT:
155 return NOTIFICATION_TYPE_EDITOR_DECISION_RESUBMIT;
156 case SUBMISSION_EDITOR_DECISION_NEW_ROUND:
157 return NOTIFICATION_TYPE_EDITOR_DECISION_NEW_ROUND;
158 case SUBMISSION_EDITOR_DECISION_DECLINE:
159 case SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE:
160 return NOTIFICATION_TYPE_EDITOR_DECISION_DECLINE;
161 case SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION:
162 return NOTIFICATION_TYPE_EDITOR_DECISION_SEND_TO_PRODUCTION;
164 throw new Exception(
'Unknown editor decision.');
172 return array(WORKFLOW_STAGE_ID_INTERNAL_REVIEW, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW);
179 return array(NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS, NOTIFICATION_TYPE_PENDING_EXTERNAL_REVISIONS);
189 case 'InitiateInternalReviewForm':
190 case 'InitiateExternalReviewForm':
191 return "controllers.modals.editorDecision.form.$formName";
193 return parent::_resolveEditorDecisionForm($formName);