15 import(
'classes.handler.Handler');
17 define(
'SUBMISSIONS_LIST_ACTIVE',
'active');
18 define(
'SUBMISSIONS_LIST_ARCHIVE',
'archive');
19 define(
'SUBMISSIONS_LIST_MY_QUEUE',
'myQueue');
20 define(
'SUBMISSIONS_LIST_UNASSIGNED',
'unassigned');
31 parent::__construct();
33 $this->
addRoleAssignment(array(ROLE_ID_SITE_ADMIN, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_AUTHOR, ROLE_ID_REVIEWER, ROLE_ID_ASSISTANT),
34 array(
'index',
'tasks',
'myQueue',
'unassigned',
'active',
'archives'));
40 function authorize($request, &$args, $roleAssignments) {
41 import(
'lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
43 return parent::authorize($request, $args, $roleAssignments);
51 function index($args, $request) {
52 $context = $request->getContext();
53 $dispatcher = $request->getDispatcher();
56 $request->redirect(
null,
'user');
62 $currentUser = $request->getUser();
64 $apiUrl = $dispatcher->url($request, ROUTE_API, $context->getPath(),
'_submissions');
67 $includeIssuesFilter = array_intersect(array(ROLE_ID_SITE_ADMIN, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), $userRoles);
70 $myQueueListPanel = new \APP\components\listPanels\SubmissionsListPanel(
71 SUBMISSIONS_LIST_MY_QUEUE,
72 __(
'common.queue.long.myAssigned'),
76 'status' => STATUS_QUEUED,
77 'assignedTo' => [(
int) $request->getUser()->getId()],
79 'includeIssuesFilter' => $includeIssuesFilter,
81 $myQueueListPanel->set([
82 'items' => $myQueueListPanel->getItems($request),
83 'itemsMax' => $myQueueListPanel->getItemsMax()
85 $lists[$myQueueListPanel->id] = $myQueueListPanel->getConfig();
87 if (!empty(array_intersect(array(ROLE_ID_SITE_ADMIN, ROLE_ID_MANAGER), $userRoles))) {
90 $unassignedListPanel = new \APP\components\listPanels\SubmissionsListPanel(
91 SUBMISSIONS_LIST_UNASSIGNED,
92 __(
'common.queue.long.submissionsUnassigned'),
96 'status' => STATUS_QUEUED,
100 'includeIssuesFilter' => $includeIssuesFilter,
103 $lists[$unassignedListPanel->id] = $unassignedListPanel->getConfig();
106 $activeListPanel = new \APP\components\listPanels\SubmissionsListPanel(
107 SUBMISSIONS_LIST_ACTIVE,
108 __(
'common.queue.long.active'),
112 'status' => STATUS_QUEUED,
115 'includeIssuesFilter' => $includeIssuesFilter,
118 $lists[$activeListPanel->id] = $activeListPanel->getConfig();
119 $lists[$activeListPanel->id][
'filters'][] = [
122 'title' => _(
'editors'),
123 'param' =>
'assignedTo',
125 'filterType' =>
'pkp-filter-autosuggest',
126 'component' =>
'field-select-users',
127 'autosuggestProps' => [
128 'allErrors' => (object) [],
129 'apiUrl' => $request->getDispatcher()->url($request, ROUTE_API, $context->getPath(),
'users',
null,
null, [
'roleIds' => [ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR]]),
131 'deselectLabel' => __(
'common.removeItem'),
132 'formId' =>
'default',
133 'groupId' =>
'default',
134 'initialPosition' =>
'inline',
135 'isRequired' =>
false,
136 'label' => __(
'editor.submissions.assignedTo'),
138 'name' =>
'editorIds',
139 'primaryLocale' =>
'en_US',
140 'selectedLabel' => __(
'common.assigned'),
150 'status' => [STATUS_DECLINED, STATUS_PUBLISHED, STATUS_SCHEDULED],
152 if (empty(array_intersect([ROLE_ID_MANAGER, ROLE_ID_SITE_ADMIN], $userRoles))) {
153 $params[
'assignedTo'] = (int) $currentUser->getId();
155 $archivedListPanel = new \APP\components\listPanels\SubmissionsListPanel(
156 SUBMISSIONS_LIST_ARCHIVE,
157 __(
'common.queue.long.submissionsArchived'),
160 'getParams' => $params,
162 'includeIssuesFilter' => $includeIssuesFilter,
165 $lists[$archivedListPanel->id] = $archivedListPanel->getConfig();
167 $templateMgr->setState([
'components' => $lists]);
168 $templateMgr->assign([
169 'pageTitle' => __(
'navigation.submissions'),
172 return $templateMgr->display(
'dashboard/index.tpl');
185 return $templateMgr->fetchJson(
'dashboard/tasks.tpl');
193 AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER, LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_SUBMISSION);
194 parent::setupTemplate($request);