Server IP : 103.11.96.170 / Your IP : 18.116.28.60 Web Server : Microsoft-IIS/10.0 System : Windows NT WIN-F6SLGVICLOP 10.0 build 17763 (Windows Server 2016) AMD64 User : elibrary.unsap.ac.id ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF Directory (0777) : D:/localhost/ejournal_unsap/classes/workflow/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php /** * @file classes/workflow/EditorDecisionActionsManager.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class EditorDecisionActionsManager * @ingroup classes_workflow * * @brief Wrapper class for create and assign editor decisions actions to template manager. */ // Submission stage decision actions. define('SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW', 8); // Submission and review stages decision actions. define('SUBMISSION_EDITOR_DECISION_ACCEPT', 1); define('SUBMISSION_EDITOR_DECISION_DECLINE', 4); // Review stage decisions actions. define('SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS', 2); define('SUBMISSION_EDITOR_DECISION_RESUBMIT', 3); define('SUBMISSION_EDITOR_DECISION_NEW_ROUND', 16); // Editorial stage decision actions. define('SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION', 7); import('lib.pkp.classes.workflow.PKPEditorDecisionActionsManager'); class EditorDecisionActionsManager extends PKPEditorDecisionActionsManager { /** * Get decision actions labels. * @param $context Context * @param $stageId int * @param $decisions array * @return array */ public function getActionLabels($context, $submission, $stageId, $decisions) { $allDecisionsData = $this->_submissionStageDecisions($submission, $stageId) + $this->_externalReviewStageDecisions($context, $submission) + $this->_editorialStageDecisions(); $actionLabels = array(); foreach($decisions as $decision) { if ($allDecisionsData[$decision]['title']) { $actionLabels[$decision] = $allDecisionsData[$decision]['title']; } else { assert(false); } } return $actionLabels; } /** * Check for editor decisions in the review round. * @param $reviewRound ReviewRound * @param $decisions array * @return boolean */ public function getEditorTakenActionInReviewRound($context, $reviewRound, $decisions = array()) { $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */ $editorDecisions = $editDecisionDao->getEditorDecisions($reviewRound->getSubmissionId(), $reviewRound->getStageId(), $reviewRound->getRound()); if (empty($decisions)) { $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */ $submission = $submissionDao->getById($reviewRound->getSubmissionId()); $decisions = array_keys($this->_externalReviewStageDecisions($context, $submission)); } $takenDecision = false; foreach ($editorDecisions as $decision) { if (in_array($decision['decision'], $decisions)) { $takenDecision = true; break; } } return $takenDecision; } /** * Define and return editor decisions for the review stage. * If the user cannot make decisions i.e. if it is a recommendOnly user, * there will be no decisions options in the review stage. * @param $context Context * @param $makeDecision boolean If the user can make decisions * @return array */ protected function _externalReviewStageDecisions($context, $submission, $makeDecision = true) { $paymentManager = Application::getPaymentManager($context); $decisions = array(); if ($makeDecision) { $decisions = array( SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS => array( 'operation' => 'sendReviewsInReview', 'name' => 'requestRevisions', 'title' => 'editor.submission.decision.requestRevisions', ), SUBMISSION_EDITOR_DECISION_RESUBMIT => array( 'name' => 'resubmit', 'title' => 'editor.submission.decision.resubmit', ), SUBMISSION_EDITOR_DECISION_NEW_ROUND => array( 'name' => 'newround', 'title' => 'editor.submission.decision.newRound', ), SUBMISSION_EDITOR_DECISION_ACCEPT => array( 'operation' => 'promoteInReview', 'name' => 'accept', 'title' => 'editor.submission.decision.accept', 'toStage' => 'submission.copyediting', 'paymentType' => $paymentManager->publicationEnabled()?PAYMENT_TYPE_PUBLICATION:null, 'paymentAmount' => $context->getData('publicationFee'), 'paymentCurrency' => $context->getData('currency'), 'requestPaymentText' => __('payment.requestPublicationFee', array('feeAmount' => $context->getData('publicationFee') . ' ' . $context->getData('currency'))), 'waivePaymentText' => __('payment.waive'), ), ); if ($submission->getStatus() == STATUS_QUEUED){ $decisions = $decisions + array( SUBMISSION_EDITOR_DECISION_DECLINE => array( 'operation' => 'sendReviewsInReview', 'name' => 'decline', 'title' => 'editor.submission.decision.decline', ), ); } if ($submission->getStatus() == STATUS_DECLINED){ $decisions = $decisions + array( SUBMISSION_EDITOR_DECISION_REVERT_DECLINE => array( 'name' => 'revert', 'operation' => 'revertDecline', 'title' => 'editor.submission.decision.revertDecline', ), ); } } return $decisions; } }