first commit
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file /pages/dois/DoiManagementHandler.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 DoisHandler
|
||||
*
|
||||
* @ingroup pages_doi
|
||||
*
|
||||
* @brief Handle requests for DOI management functions.
|
||||
*/
|
||||
|
||||
namespace APP\pages\dois;
|
||||
|
||||
use APP\components\listPanels\DoiListPanel;
|
||||
use APP\facades\Repo;
|
||||
use PKP\core\PKPApplication;
|
||||
use PKP\pages\dois\PKPDoisHandler;
|
||||
|
||||
class DoisHandler extends PKPDoisHandler
|
||||
{
|
||||
/**
|
||||
* Set app-specific state components to appear on DOI management page
|
||||
*/
|
||||
protected function getAppStateComponents(\APP\core\Request $request, array $enabledDoiTypes, array $commonArgs): array
|
||||
{
|
||||
$context = $request->getContext();
|
||||
|
||||
$stateComponents = [];
|
||||
|
||||
// Publication and Galley DOIs
|
||||
if (count(array_intersect($enabledDoiTypes, [Repo::doi()::TYPE_PUBLICATION, Repo::doi()::TYPE_REPRESENTATION])) > 0) {
|
||||
$submissionDoiListPanel = new DoiListPanel(
|
||||
'submissionDoiListPanel',
|
||||
__('doi.manager.submissionDois'),
|
||||
array_merge(
|
||||
$commonArgs,
|
||||
[
|
||||
'apiUrl' => $request->getDispatcher()->url($request, PKPApplication::ROUTE_API, $context->getPath(), 'submissions'),
|
||||
'getParams' => [
|
||||
'stageIds' => [WORKFLOW_STAGE_ID_EDITING, WORKFLOW_STAGE_ID_PRODUCTION],
|
||||
],
|
||||
'isSubmission' => true,
|
||||
'includeIssuesFilter' => true,
|
||||
'itemType' => 'submission'
|
||||
]
|
||||
)
|
||||
);
|
||||
$stateComponents[$submissionDoiListPanel->id] = $submissionDoiListPanel->getConfig();
|
||||
}
|
||||
|
||||
// Issues DOIs
|
||||
if (in_array(Repo::doi()::TYPE_ISSUE, $enabledDoiTypes)) {
|
||||
$issueDoiListPanel = new DoiListPanel(
|
||||
'issueDoiListPanel',
|
||||
__('doi.manager.issueDois'),
|
||||
array_merge(
|
||||
$commonArgs,
|
||||
[
|
||||
'apiUrl' => $request->getDispatcher()->url($request, PKPApplication::ROUTE_API, $context->getPath(), 'issues'),
|
||||
'getParams' => [],
|
||||
'isSubmission' => false,
|
||||
'includeIssuesFilter' => false,
|
||||
'itemType' => 'issue',
|
||||
]
|
||||
)
|
||||
);
|
||||
$stateComponents[$issueDoiListPanel->id] = $issueDoiListPanel->getConfig();
|
||||
}
|
||||
return $stateComponents;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Smarty template variables. Which tabs to display are set by the APP.
|
||||
*/
|
||||
protected function getTemplateVariables(array $enabledDoiTypes): array
|
||||
{
|
||||
$templateVariables = parent::getTemplateVariables($enabledDoiTypes);
|
||||
return array_merge(
|
||||
$templateVariables,
|
||||
[
|
||||
'displaySubmissionsTab' => count(array_intersect($enabledDoiTypes, [Repo::doi()::TYPE_PUBLICATION, Repo::doi()::TYPE_REPRESENTATION])) > 0,
|
||||
'displayIssuesTab' => in_array(Repo::doi()::TYPE_ISSUE, $enabledDoiTypes),
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user