80 lines
2.0 KiB
PHP
80 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file controllers/grid/issues/IssueGridHandler.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2000-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class FutureIssueGridHandler
|
|
*
|
|
* @ingroup controllers_grid_issues
|
|
*
|
|
* @brief Handle issues grid requests.
|
|
*/
|
|
|
|
namespace APP\controllers\grid\issues;
|
|
|
|
use APP\facades\Repo;
|
|
use APP\issue\Collector;
|
|
use PKP\linkAction\LinkAction;
|
|
use PKP\linkAction\request\AjaxModal;
|
|
|
|
class FutureIssueGridHandler extends IssueGridHandler
|
|
{
|
|
//
|
|
// Implement template methods from PKPHandler
|
|
//
|
|
/**
|
|
* @copydoc IssueGridHandler::initialize()
|
|
*
|
|
* @param null|mixed $args
|
|
*/
|
|
public function initialize($request, $args = null)
|
|
{
|
|
// Basic grid configuration.
|
|
$this->setTitle('editor.issues.futureIssues');
|
|
|
|
parent::initialize($request, $args);
|
|
|
|
// Add Create Issue action
|
|
$router = $request->getRouter();
|
|
$this->addAction(
|
|
new LinkAction(
|
|
'addIssue',
|
|
new AjaxModal(
|
|
$router->url($request, null, null, 'addIssue', null, ['gridId' => $this->getId()]),
|
|
__('grid.action.addIssue'),
|
|
'modal_manage'
|
|
),
|
|
__('grid.action.addIssue'),
|
|
'add_category'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @copydoc GridHandler::loadData()
|
|
*/
|
|
protected function loadData($request, $filter)
|
|
{
|
|
$journal = $request->getJournal();
|
|
return Repo::issue()->getCollector()
|
|
->filterByContextIds([$journal->getId()])
|
|
->filterByPublished(false)
|
|
->orderBy(Collector::ORDERBY_UNPUBLISHED_ISSUES)
|
|
->getMany();
|
|
}
|
|
|
|
/**
|
|
* Get the js handler for this component.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getJSHandler()
|
|
{
|
|
return '$.pkp.controllers.grid.issues.FutureIssueGridHandler';
|
|
}
|
|
}
|