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 'externalReview',
'saveExternalReview',
32 'sendReviews',
'saveSendReviews',
33 'promote',
'savePromote',
45 function authorize($request, &$args, $roleAssignments) {
46 $stageId = (int) $request->getUserVar(
'stageId');
47 import(
'lib.pkp.classes.security.authorization.EditorDecisionAccessPolicy');
49 return parent::authorize($request, $args, $roleAssignments);
65 if ($stageId == WORKFLOW_STAGE_ID_EXTERNAL_REVIEW) {
66 $redirectOp = WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
72 return $this->
_saveEditorDecision($args, $request,
'NewReviewRoundForm', $redirectOp, SUBMISSION_EDITOR_DECISION_NEW_ROUND);
82 $decision = (int)$request->getUserVar(
'decision');
86 if ($decision == SUBMISSION_EDITOR_DECISION_ACCEPT) {
87 $redirectOp = WORKFLOW_STAGE_PATH_EDITING;
88 } elseif ($decision == SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW) {
89 $redirectOp = WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
90 } elseif ($decision == SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION) {
91 $redirectOp = WORKFLOW_STAGE_PATH_PRODUCTION;
95 import(
'lib.pkp.classes.workflow.WorkflowStageDAO');
98 if (!array_key_exists($redirectWorkflowStage, $userAccessibleWorkflowStages)) {
112 case SUBMISSION_EDITOR_DECISION_ACCEPT:
113 return NOTIFICATION_TYPE_EDITOR_DECISION_ACCEPT;
114 case SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW:
115 return NOTIFICATION_TYPE_EDITOR_DECISION_EXTERNAL_REVIEW;
116 case SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS:
117 return NOTIFICATION_TYPE_EDITOR_DECISION_PENDING_REVISIONS;
118 case SUBMISSION_EDITOR_DECISION_RESUBMIT:
119 return NOTIFICATION_TYPE_EDITOR_DECISION_RESUBMIT;
120 case SUBMISSION_EDITOR_DECISION_NEW_ROUND:
121 return NOTIFICATION_TYPE_EDITOR_DECISION_NEW_ROUND;
122 case SUBMISSION_EDITOR_DECISION_DECLINE:
123 case SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE:
124 return NOTIFICATION_TYPE_EDITOR_DECISION_DECLINE;
125 case SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION:
126 return NOTIFICATION_TYPE_EDITOR_DECISION_SEND_TO_PRODUCTION;
128 throw new Exception(
'Unknown editor decision.');
136 return array(WORKFLOW_STAGE_ID_INTERNAL_REVIEW, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW);
143 return array(NOTIFICATION_TYPE_PENDING_EXTERNAL_REVISIONS);
153 case 'InitiateExternalReviewForm':
154 return "controllers.modals.editorDecision.form.$formName";
156 return parent::_resolveEditorDecisionForm($formName);