Open Preprint Systems  3.3.0
PKPSubmissionsListPanel.inc.php
1 <?php
17 
18 import('lib.pkp.classes.submission.PKPSubmission');
19 import('classes.core.Services');
20 
21 abstract class PKPSubmissionsListPanel extends ListPanel {
22 
24  public $apiUrl = '';
25 
27  public $count = 30;
28 
30  public $getParams = [];
31 
33  public $lazyLoad = false;
34 
36  public $itemsMax = 0;
37 
41  public function getConfig() {
42  \AppLocale::requireComponents([LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_APP_EDITOR]);
43  $request = \Application::get()->getRequest();
44 
45  $config = parent::getConfig();
46 
47  $config['apiUrl'] = $this->apiUrl;
48  $config['count'] = $this->count;
49  $config['getParams'] = $this->getParams;
50  $config['lazyLoad'] = $this->lazyLoad;
51  $config['itemsMax'] = $this->itemsMax;
52 
53  // URL to add a new submission
54  $config['addUrl'] = $request->getDispatcher()->url(
55  $request,
56  ROUTE_PAGE,
57  null,
58  'submission',
59  'wizard'
60  );
61 
62  // URL to view info center for a submission
63  $config['infoUrl'] = $request->getDispatcher()->url(
64  $request,
65  ROUTE_COMPONENT,
66  null,
67  'informationCenter.SubmissionInformationCenterHandler',
68  'viewInformationCenter',
69  null,
70  array('submissionId' => '__id__')
71  );
72 
73  // URL to assign a participant
74  $config['assignParticipantUrl'] = $request->getDispatcher()->url(
75  $request,
76  ROUTE_COMPONENT,
77  null,
78  'grid.users.stageParticipant.StageParticipantGridHandler',
79  'addParticipant',
80  null,
81  array('submissionId' => '__id__', 'stageId' => '__stageId__')
82  );
83 
84  $config['filters'] = [
85  array(
86  'filters' => array(
87  array(
88  'param' => 'isOverdue',
89  'value' => true,
90  'title' => __('common.overdue'),
91  ),
92  array(
93  'param' => 'isIncomplete',
94  'value' => true,
95  'title' => __('submissions.incomplete'),
96  ),
97  ),
98  ),
99  [
100  'heading' => __('settings.roles.stages'),
101  'filters' => $this->getWorkflowStages(),
102  ],
103  [
104  'heading' => __('submission.list.activity'),
105  'filters' => [
106  [
107  'title' => __('submission.list.daysSinceLastActivity'),
108  'param' => 'daysInactive',
109  'value' => 30,
110  'min' => 1,
111  'max' => 180,
112  'filterType' => 'pkp-filter-slider',
113  ]
114  ]
115  ]
116  ];
117 
118  // Provide required constants
119  import('lib.pkp.classes.submission.reviewRound.ReviewRound');
120  import('lib.pkp.classes.submission.reviewAssignment.ReviewAssignment');
121  import('lib.pkp.classes.services.PKPSubmissionService'); // STAGE_STATUS_SUBMISSION_UNASSIGNED
122  $templateMgr = \TemplateManager::getManager($request);
123  $templateMgr->setConstants([
124  'STATUS_QUEUED',
125  'STATUS_PUBLISHED',
126  'STATUS_DECLINED',
127  'STATUS_SCHEDULED',
128  'WORKFLOW_STAGE_ID_SUBMISSION',
129  'WORKFLOW_STAGE_ID_INTERNAL_REVIEW',
130  'WORKFLOW_STAGE_ID_EXTERNAL_REVIEW',
131  'WORKFLOW_STAGE_ID_EDITING',
132  'WORKFLOW_STAGE_ID_PRODUCTION',
133  'STAGE_STATUS_SUBMISSION_UNASSIGNED',
134  'REVIEW_ROUND_STATUS_PENDING_REVIEWERS',
135  'REVIEW_ROUND_STATUS_REVIEWS_READY',
136  'REVIEW_ROUND_STATUS_REVIEWS_COMPLETED',
137  'REVIEW_ROUND_STATUS_REVIEWS_OVERDUE',
138  'REVIEW_ROUND_STATUS_REVISIONS_REQUESTED',
139  'REVIEW_ROUND_STATUS_REVISIONS_SUBMITTED',
140  'REVIEW_ROUND_STATUS_RESUBMIT_FOR_REVIEW',
141  'REVIEW_ROUND_STATUS_RESUBMIT_FOR_REVIEW_SUBMITTED',
142  'REVIEW_ASSIGNMENT_STATUS_AWAITING_RESPONSE',
143  'REVIEW_ASSIGNMENT_STATUS_RESPONSE_OVERDUE',
144  'REVIEW_ASSIGNMENT_STATUS_REVIEW_OVERDUE',
145  'REVIEW_ASSIGNMENT_STATUS_ACCEPTED',
146  'REVIEW_ASSIGNMENT_STATUS_RECEIVED',
147  'REVIEW_ASSIGNMENT_STATUS_COMPLETE',
148  'REVIEW_ASSIGNMENT_STATUS_THANKED',
149  'REVIEW_ASSIGNMENT_STATUS_CANCELLED',
150  'REVIEW_ROUND_STATUS_RECOMMENDATIONS_READY',
151  'REVIEW_ROUND_STATUS_RECOMMENDATIONS_COMPLETED',
152  ]);
153 
154  $templateMgr->setLocaleKeys([
155  'common.lastActivity',
156  'editor.submissionArchive.confirmDelete',
157  'submission.list.empty',
158  'submission.submit.newSubmissionSingle',
159  'submission.review',
160  'submissions.incomplete',
161  'submission.list.assignEditor',
162  'submission.list.copyeditsSubmitted',
163  'submission.list.currentStage',
164  'submission.list.discussions',
165  'submission.list.dualWorkflowLinks',
166  'submission.list.galleysCreated',
167  'submission.list.infoCenter',
168  'submission.list.reviewAssignment',
169  'submission.list.responseDue',
170  'submission.list.reviewCancelled',
171  'submission.list.reviewComplete',
172  'submission.list.reviewDue',
173  'submission.list.reviewerWorkflowLink',
174  'submission.list.reviewsCompleted',
175  'submission.list.revisionsSubmitted',
176  'submission.list.viewSubmission',
177  ]);
178 
179  return $config;
180  }
181 
188  public function getItems($request) {
189  $submissionsIterator = \Services::get('submission')->getMany($this->_getItemsParams());
190  $items = [];
191  foreach ($submissionsIterator as $submission) {
192  $items[] = \Services::get('submission')->getBackendListProperties($submission, ['request' => $request]);
193  }
194 
195  return $items;
196  }
197 
203  public function getItemsMax() {
204  return \Services::get('submission')->getMax($this->_getItemsParams());
205  }
206 
212  protected function _getItemsParams() {
213  $request = \Application::get()->getRequest();
214  $context = $request->getContext();
215  $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
216 
217  return array_merge(
218  array(
219  'contextId' => $contextId,
220  'count' => $this->count,
221  'offset' => 0,
222  ),
223  $this->getParams
224  );
225  }
226 }
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
PKP\components\listPanels\PKPSubmissionsListPanel
Definition: PKPSubmissionsListPanel.inc.php:21
PKP\components\listPanels\PKPSubmissionsListPanel\$count
$count
Definition: PKPSubmissionsListPanel.inc.php:33
PKP\components\listPanels\PKPSubmissionsListPanel\$apiUrl
$apiUrl
Definition: PKPSubmissionsListPanel.inc.php:27
PKP\components\listPanels\PKPSubmissionsListPanel\$itemsMax
$itemsMax
Definition: PKPSubmissionsListPanel.inc.php:51
PKP\components\listPanels\PKPSubmissionsListPanel\$getParams
$getParams
Definition: PKPSubmissionsListPanel.inc.php:39
PKP\components\listPanels\PKPSubmissionsListPanel\getConfig
getConfig()
Definition: PKPSubmissionsListPanel.inc.php:56
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1226
PKP\components\listPanels\PKPSubmissionsListPanel\$lazyLoad
$lazyLoad
Definition: PKPSubmissionsListPanel.inc.php:45
PKP\components\listPanels
Definition: ListPanel.inc.php:15
PKP\components\listPanels\PKPSubmissionsListPanel\getItemsMax
getItemsMax()
Definition: PKPSubmissionsListPanel.inc.php:218
PKP\components\listPanels\PKPSubmissionsListPanel\_getItemsParams
_getItemsParams()
Definition: PKPSubmissionsListPanel.inc.php:227
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PKP\components\listPanels\ListPanel
Definition: ListPanel.inc.php:17
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49
PKP\components\listPanels\ListPanel\$items
$items
Definition: ListPanel.inc.php:59
PKP\components\listPanels\PKPSubmissionsListPanel\getItems
getItems($request)
Definition: PKPSubmissionsListPanel.inc.php:203