[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
controllers
/
tab
/
workflow
/
[
Home
]
File: WorkflowTabHandler.php
<?php /** * @file controllers/tab/workflow/WorkflowTabHandler.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 WorkflowTabHandler * * @ingroup controllers_tab_workflow * * @brief Handle AJAX operations for workflow tabs. */ namespace APP\controllers\tab\workflow; use APP\core\Application; use APP\notification\Notification; use APP\template\TemplateManager; use PKP\controllers\tab\workflow\PKPWorkflowTabHandler; use PKP\core\PKPApplication; use PKP\decision\DecisionType; use PKP\decision\types\NewExternalReviewRound; use PKP\linkAction\LinkAction; use PKP\linkAction\request\AjaxModal; use PKP\notification\PKPNotification; class WorkflowTabHandler extends PKPWorkflowTabHandler { /** * @copydoc PKPWorkflowTabHandler::fetchTab */ public function fetchTab($args, $request) { $this->setupTemplate($request); $templateMgr = TemplateManager::getManager($request); $stageId = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_WORKFLOW_STAGE); $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION); switch ($stageId) { case WORKFLOW_STAGE_ID_PRODUCTION: $dispatcher = $request->getDispatcher(); $schedulePublicationLinkAction = new LinkAction( 'schedulePublication', new AjaxModal( $dispatcher->url( $request, PKPApplication::ROUTE_COMPONENT, null, 'tab.issueEntry.IssueEntryTabHandler', 'publicationMetadata', null, ['submissionId' => $submission->getId(), 'stageId' => $stageId] ), __('submission.publication') ), __('editor.submission.schedulePublication') ); $templateMgr->assign('schedulePublicationLinkAction', $schedulePublicationLinkAction); break; } return parent::fetchTab($args, $request); } /** * Get all production notification options to be used in the production stage tab. * * @param int $submissionId * * @return array */ protected function getProductionNotificationOptions($submissionId) { return [ Notification::NOTIFICATION_LEVEL_NORMAL => [ PKPNotification::NOTIFICATION_TYPE_VISIT_CATALOG => [Application::ASSOC_TYPE_SUBMISSION, $submissionId], PKPNotification::NOTIFICATION_TYPE_ASSIGN_PRODUCTIONUSER => [Application::ASSOC_TYPE_SUBMISSION, $submissionId], PKPNotification::NOTIFICATION_TYPE_AWAITING_REPRESENTATIONS => [Application::ASSOC_TYPE_SUBMISSION, $submissionId], ], Notification::NOTIFICATION_LEVEL_TRIVIAL => [] ]; } protected function getNewReviewRoundDecisionType(int $stageId): DecisionType { // OJS only supports the external review stage return new NewExternalReviewRound(); } }