first commit
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file controllers/modals/documentLibrary/DocumentLibraryHandler.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 DocumentLibraryHandler
|
||||
*
|
||||
* @ingroup controllers_modals_documentLibrary
|
||||
*
|
||||
* @brief Submission document library modal handler.
|
||||
*/
|
||||
|
||||
namespace PKP\controllers\modals\documentLibrary;
|
||||
|
||||
use APP\core\Application;
|
||||
use APP\handler\Handler;
|
||||
use APP\submission\Submission;
|
||||
use APP\template\TemplateManager;
|
||||
use PKP\core\JSONMessage;
|
||||
use PKP\core\PKPRequest;
|
||||
use PKP\security\authorization\SubmissionAccessPolicy;
|
||||
use PKP\security\Role;
|
||||
|
||||
class DocumentLibraryHandler extends Handler
|
||||
{
|
||||
/** @var Submission */
|
||||
public $_submission;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->addRoleAssignment(
|
||||
[Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_AUTHOR, Role::ROLE_ID_ASSISTANT],
|
||||
['documentLibrary']
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Overridden methods from Handler
|
||||
//
|
||||
/**
|
||||
* @copydoc PKPHandler::initialize()
|
||||
*/
|
||||
public function initialize($request)
|
||||
{
|
||||
parent::initialize($request);
|
||||
|
||||
$this->_submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION);
|
||||
$this->setupTemplate($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc PKPHandler::authorize()
|
||||
*/
|
||||
public function authorize($request, &$args, $roleAssignments)
|
||||
{
|
||||
$this->addPolicy(new SubmissionAccessPolicy($request, $args, $roleAssignments));
|
||||
return parent::authorize($request, $args, $roleAssignments);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Getters and Setters
|
||||
//
|
||||
/**
|
||||
* Get the Submission
|
||||
*
|
||||
* @return Submission
|
||||
*/
|
||||
public function getSubmission()
|
||||
{
|
||||
return $this->_submission;
|
||||
}
|
||||
|
||||
//
|
||||
// Public handler methods
|
||||
//
|
||||
/**
|
||||
* Display a list of the review form elements within a review form.
|
||||
*
|
||||
* @param array $args
|
||||
* @param PKPRequest $request
|
||||
*
|
||||
* @return JSONMessage JSON object
|
||||
*/
|
||||
public function documentLibrary($args, $request)
|
||||
{
|
||||
$templateMgr = TemplateManager::getManager($request);
|
||||
$templateMgr->assign('submission', $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION));
|
||||
return $templateMgr->fetchJson('controllers/modals/documentLibrary/documentLibrary.tpl');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file controllers/grid/files/submissionDocuments/SubmissionLibraryLinkAction.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 SubmissionLibraryLinkAction
|
||||
*
|
||||
* @ingroup controllers_grid_files_submissionDocuments
|
||||
*
|
||||
* @brief An action to open up the submission documents modal.
|
||||
*/
|
||||
|
||||
namespace PKP\controllers\grid\files\submissionDocuments;
|
||||
|
||||
use APP\core\Request;
|
||||
use PKP\core\PKPApplication;
|
||||
use PKP\linkAction\LinkAction;
|
||||
use PKP\linkAction\request\AjaxModal;
|
||||
|
||||
class SubmissionLibraryLinkAction extends LinkAction
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Request $request
|
||||
* @param int $submissionId the ID of the submission to present link for
|
||||
* to show information about.
|
||||
*/
|
||||
public function __construct($request, $submissionId)
|
||||
{
|
||||
$dispatcher = $request->getDispatcher();
|
||||
parent::__construct(
|
||||
'editorialHistory',
|
||||
new AjaxModal(
|
||||
$dispatcher->url(
|
||||
$request,
|
||||
PKPApplication::ROUTE_COMPONENT,
|
||||
null,
|
||||
'modals.documentLibrary.DocumentLibraryHandler',
|
||||
'documentLibrary',
|
||||
null,
|
||||
['submissionId' => $submissionId]
|
||||
),
|
||||
__('editor.submissionLibrary'),
|
||||
'modal_information'
|
||||
),
|
||||
__('editor.submissionLibrary'),
|
||||
'more_info'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file controllers/modals/publish/PublishHandler.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 PublishHandler
|
||||
*
|
||||
* @ingroup controllers_modals_publish
|
||||
*
|
||||
* @brief A handler to load final publishing confirmation checks
|
||||
*/
|
||||
|
||||
namespace PKP\controllers\modals\publish;
|
||||
|
||||
use APP\components\forms\publication\PublishForm;
|
||||
use APP\core\Application;
|
||||
use APP\core\Services;
|
||||
use APP\facades\Repo;
|
||||
use APP\handler\Handler;
|
||||
use APP\publication\Publication;
|
||||
use APP\submission\Submission;
|
||||
use APP\template\TemplateManager;
|
||||
use PKP\core\JSONMessage;
|
||||
use PKP\core\PKPApplication;
|
||||
use PKP\core\PKPRequest;
|
||||
use PKP\security\authorization\PublicationAccessPolicy;
|
||||
use PKP\security\authorization\SubmissionAccessPolicy;
|
||||
use PKP\security\Role;
|
||||
|
||||
class PublishHandler extends Handler
|
||||
{
|
||||
/** @var Submission */
|
||||
public $submission;
|
||||
|
||||
/** @var Publication */
|
||||
public $publication;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->addRoleAssignment(
|
||||
[Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_ASSISTANT],
|
||||
['publish']
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Overridden methods from Handler
|
||||
//
|
||||
/**
|
||||
* @copydoc PKPHandler::initialize()
|
||||
*/
|
||||
public function initialize($request)
|
||||
{
|
||||
parent::initialize($request);
|
||||
$this->submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION);
|
||||
$this->publication = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION);
|
||||
$this->setupTemplate($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc PKPHandler::authorize()
|
||||
*/
|
||||
public function authorize($request, &$args, $roleAssignments)
|
||||
{
|
||||
$this->addPolicy(new SubmissionAccessPolicy($request, $args, $roleAssignments));
|
||||
$this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
|
||||
return parent::authorize($request, $args, $roleAssignments);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Public handler methods
|
||||
//
|
||||
/**
|
||||
* Display a publishing confirmation form
|
||||
*
|
||||
* @param array $args
|
||||
* @param PKPRequest $request
|
||||
*
|
||||
* @return JSONMessage JSON object
|
||||
*/
|
||||
public function publish($args, $request)
|
||||
{
|
||||
$templateMgr = TemplateManager::getManager($request);
|
||||
|
||||
$submissionContext = $request->getContext();
|
||||
if (!$submissionContext || $submissionContext->getId() !== $this->submission->getData('contextId')) {
|
||||
$submissionContext = Services::get('context')->get($this->submission->getData('contextId'));
|
||||
}
|
||||
|
||||
$primaryLocale = $submissionContext->getPrimaryLocale();
|
||||
$allowedLocales = $submissionContext->getSupportedSubmissionLocales();
|
||||
$errors = Repo::publication()->validatePublish($this->publication, $this->submission, $allowedLocales, $primaryLocale);
|
||||
|
||||
$publicationApiUrl = $request->getDispatcher()->url($request, PKPApplication::ROUTE_API, $submissionContext->getPath(), 'submissions/' . $this->submission->getId() . '/publications/' . $this->publication->getId() . '/publish');
|
||||
|
||||
$publishForm = new PublishForm($publicationApiUrl, $this->publication, $submissionContext, $errors);
|
||||
|
||||
$settingsData = [
|
||||
'components' => [
|
||||
FORM_PUBLISH => $publishForm->getConfig(),
|
||||
],
|
||||
];
|
||||
|
||||
$templateMgr->assign('publishData', $settingsData);
|
||||
|
||||
return $templateMgr->fetchJson('controllers/modals/publish/publish.tpl');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* @defgroup controllers_modals_review_linkAction Submission Metadata Link Actions
|
||||
*/
|
||||
/**
|
||||
* @file controllers/modals/review/ReviewerViewMetadataLinkAction.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 ReviewerViewMetadataLinkAction
|
||||
*
|
||||
* @ingroup controllers_modals_review_linkAction
|
||||
*
|
||||
* @brief An action to open the submission meta-data modal.
|
||||
*/
|
||||
|
||||
namespace PKP\controllers\modals\review;
|
||||
|
||||
use APP\core\Request;
|
||||
use PKP\core\PKPApplication;
|
||||
use PKP\linkAction\LinkAction;
|
||||
use PKP\linkAction\request\AjaxModal;
|
||||
|
||||
class ReviewerViewMetadataLinkAction extends LinkAction
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Request $request
|
||||
* @param int $submissionId
|
||||
* @param int $reviewAssignmentId
|
||||
*/
|
||||
public function __construct($request, $submissionId, $reviewAssignmentId)
|
||||
{
|
||||
// Instantiate the meta-data modal.
|
||||
$dispatcher = $request->getDispatcher();
|
||||
$modal = new AjaxModal(
|
||||
$dispatcher->url(
|
||||
$request,
|
||||
PKPApplication::ROUTE_COMPONENT,
|
||||
null,
|
||||
'modals.submission.ViewSubmissionMetadataHandler',
|
||||
'display',
|
||||
null,
|
||||
['submissionId' => $submissionId, 'reviewAssignmentId' => $reviewAssignmentId]
|
||||
),
|
||||
__('reviewer.step1.viewAllDetails'),
|
||||
'modal_information'
|
||||
);
|
||||
// Configure the link action.
|
||||
parent::__construct('viewMetadata', $modal, __('reviewer.step1.viewAllDetails'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/**
|
||||
* @file controllers/modals/submission/ViewSubmissionMetadataHandler.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 ViewSubmissionMetadataHandler
|
||||
*
|
||||
* @ingroup controllers_modals_viewSubmissionMetadataHandler
|
||||
*
|
||||
* @brief Display submission metadata.
|
||||
*/
|
||||
|
||||
namespace PKP\controllers\modals\submission;
|
||||
|
||||
use APP\core\Application;
|
||||
use APP\facades\Repo;
|
||||
use APP\handler\Handler;
|
||||
use APP\template\TemplateManager;
|
||||
use PKP\security\authorization\SubmissionAccessPolicy;
|
||||
use PKP\security\Role;
|
||||
use PKP\submission\reviewAssignment\ReviewAssignment;
|
||||
|
||||
class ViewSubmissionMetadataHandler extends handler
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->addRoleAssignment([Role::ROLE_ID_REVIEWER], ['display']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc PKPHandler::authorize()
|
||||
*/
|
||||
public function authorize($request, &$args, $roleAssignments)
|
||||
{
|
||||
$this->addPolicy(new SubmissionAccessPolicy($request, $args, $roleAssignments));
|
||||
return parent::authorize($request, $args, $roleAssignments);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display metadata
|
||||
*/
|
||||
public function display($args, $request)
|
||||
{
|
||||
$submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION);
|
||||
$reviewAssignment = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REVIEW_ASSIGNMENT);
|
||||
$context = $request->getContext();
|
||||
$templateMgr = TemplateManager::getManager($request);
|
||||
$publication = $submission->getCurrentPublication();
|
||||
|
||||
if ($reviewAssignment->getReviewMethod() != ReviewAssignment::SUBMISSION_REVIEW_METHOD_DOUBLEANONYMOUS) { /* ReviewAssignment::SUBMISSION_REVIEW_METHOD_ANONYMOUS or _OPEN */
|
||||
$userGroups = Repo::userGroup()->getCollector()
|
||||
->filterByContextIds([$context->getId()])
|
||||
->getMany();
|
||||
|
||||
$templateMgr->assign('authors', $publication->getAuthorString($userGroups));
|
||||
|
||||
if ($publication->getLocalizedData('dataAvailability')) {
|
||||
$templateMgr->assign('dataAvailability', $publication->getLocalizedData('dataAvailability'));
|
||||
}
|
||||
}
|
||||
|
||||
$templateMgr->assign('publication', $publication);
|
||||
|
||||
$additionalMetadata = [];
|
||||
if ($publication->getLocalizedData('keywords')) {
|
||||
$additionalMetadata[] = [__('common.keywords'), implode(', ', $publication->getLocalizedData('keywords'))];
|
||||
}
|
||||
if ($publication->getLocalizedData('subjects')) {
|
||||
$additionalMetadata[] = [__('common.subjects'), implode(', ', $publication->getLocalizedData('subjects'))];
|
||||
}
|
||||
if ($publication->getLocalizedData('disciplines')) {
|
||||
$additionalMetadata[] = [__('common.discipline'), implode(', ', $publication->getLocalizedData('disciplines'))];
|
||||
}
|
||||
if ($publication->getLocalizedData('agencies')) {
|
||||
$additionalMetadata[] = [__('submission.agencies'), implode(', ', $publication->getLocalizedData('agencies'))];
|
||||
}
|
||||
if ($publication->getLocalizedData('languages')) {
|
||||
$additionalMetadata[] = [__('common.languages'), implode(', ', $publication->getLocalizedData('languages'))];
|
||||
}
|
||||
|
||||
$templateMgr->assign('additionalMetadata', $additionalMetadata);
|
||||
|
||||
return $templateMgr->fetchJson('controllers/modals/submission/viewSubmissionMetadata.tpl');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user