Open Journal 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  $context = $request->getContext();
45 
46  $config = parent::getConfig();
47 
48  $config['apiUrl'] = $this->apiUrl;
49  $config['count'] = $this->count;
50  $config['getParams'] = $this->getParams;
51  $config['lazyLoad'] = $this->lazyLoad;
52  $config['itemsMax'] = $this->itemsMax;
53 
54  // URL to add a new submission
55  if ($context->getData('disableSubmissions')) {
56  $config['allowSubmissions'] = false;
57  }
58 
59  $config['addUrl'] = $request->getDispatcher()->url(
60  $request,
61  ROUTE_PAGE,
62  null,
63  'submission',
64  'wizard'
65  );
66 
67  // URL to view info center for a submission
68  $config['infoUrl'] = $request->getDispatcher()->url(
69  $request,
70  ROUTE_COMPONENT,
71  null,
72  'informationCenter.SubmissionInformationCenterHandler',
73  'viewInformationCenter',
74  null,
75  array('submissionId' => '__id__')
76  );
77 
78  // URL to assign a participant
79  $config['assignParticipantUrl'] = $request->getDispatcher()->url(
80  $request,
81  ROUTE_COMPONENT,
82  null,
83  'grid.users.stageParticipant.StageParticipantGridHandler',
84  'addParticipant',
85  null,
86  array('submissionId' => '__id__', 'stageId' => '__stageId__')
87  );
88 
89  $config['filters'] = [
90  array(
91  'filters' => array(
92  array(
93  'param' => 'isOverdue',
94  'value' => true,
95  'title' => __('common.overdue'),
96  ),
97  array(
98  'param' => 'isIncomplete',
99  'value' => true,
100  'title' => __('submissions.incomplete'),
101  ),
102  ),
103  ),
104  [
105  'heading' => __('settings.roles.stages'),
106  'filters' => $this->getWorkflowStages(),
107  ],
108  [
109  'heading' => __('submission.list.activity'),
110  'filters' => [
111  [
112  'title' => __('submission.list.daysSinceLastActivity'),
113  'param' => 'daysInactive',
114  'value' => 30,
115  'min' => 1,
116  'max' => 180,
117  'filterType' => 'pkp-filter-slider',
118  ]
119  ]
120  ]
121  ];
122 
123  // Provide required constants
124  import('lib.pkp.classes.submission.reviewRound.ReviewRound');
125  import('lib.pkp.classes.submission.reviewAssignment.ReviewAssignment');
126  import('lib.pkp.classes.services.PKPSubmissionService'); // STAGE_STATUS_SUBMISSION_UNASSIGNED
127  $templateMgr = \TemplateManager::getManager($request);
128  $templateMgr->setConstants([
129  'STATUS_QUEUED',
130  'STATUS_PUBLISHED',
131  'STATUS_DECLINED',
132  'STATUS_SCHEDULED',
133  'WORKFLOW_STAGE_ID_SUBMISSION',
134  'WORKFLOW_STAGE_ID_INTERNAL_REVIEW',
135  'WORKFLOW_STAGE_ID_EXTERNAL_REVIEW',
136  'WORKFLOW_STAGE_ID_EDITING',
137  'WORKFLOW_STAGE_ID_PRODUCTION',
138  'STAGE_STATUS_SUBMISSION_UNASSIGNED',
139  'REVIEW_ROUND_STATUS_PENDING_REVIEWERS',
140  'REVIEW_ROUND_STATUS_REVIEWS_READY',
141  'REVIEW_ROUND_STATUS_REVIEWS_COMPLETED',
142  'REVIEW_ROUND_STATUS_REVIEWS_OVERDUE',
143  'REVIEW_ROUND_STATUS_REVISIONS_REQUESTED',
144  'REVIEW_ROUND_STATUS_REVISIONS_SUBMITTED',
145  'REVIEW_ROUND_STATUS_RESUBMIT_FOR_REVIEW',
146  'REVIEW_ROUND_STATUS_RESUBMIT_FOR_REVIEW_SUBMITTED',
147  'REVIEW_ASSIGNMENT_STATUS_AWAITING_RESPONSE',
148  'REVIEW_ASSIGNMENT_STATUS_RESPONSE_OVERDUE',
149  'REVIEW_ASSIGNMENT_STATUS_REVIEW_OVERDUE',
150  'REVIEW_ASSIGNMENT_STATUS_ACCEPTED',
151  'REVIEW_ASSIGNMENT_STATUS_RECEIVED',
152  'REVIEW_ASSIGNMENT_STATUS_COMPLETE',
153  'REVIEW_ASSIGNMENT_STATUS_THANKED',
154  'REVIEW_ASSIGNMENT_STATUS_CANCELLED',
155  'REVIEW_ROUND_STATUS_RECOMMENDATIONS_READY',
156  'REVIEW_ROUND_STATUS_RECOMMENDATIONS_COMPLETED',
157  ]);
158 
159  $templateMgr->setLocaleKeys([
160  'common.lastActivity',
161  'editor.submissionArchive.confirmDelete',
162  'submission.list.empty',
163  'submission.submit.newSubmissionSingle',
164  'submission.review',
165  'submissions.incomplete',
166  'submission.list.assignEditor',
167  'submission.list.copyeditsSubmitted',
168  'submission.list.currentStage',
169  'submission.list.discussions',
170  'submission.list.dualWorkflowLinks',
171  'submission.list.galleysCreated',
172  'submission.list.infoCenter',
173  'submission.list.reviewAssignment',
174  'submission.list.responseDue',
175  'submission.list.reviewCancelled',
176  'submission.list.reviewComplete',
177  'submission.list.reviewDue',
178  'submission.list.reviewerWorkflowLink',
179  'submission.list.reviewsCompleted',
180  'submission.list.revisionsSubmitted',
181  'submission.list.viewSubmission',
182  ]);
183 
184  return $config;
185  }
186 
193  public function getItems($request) {
194  $submissionsIterator = \Services::get('submission')->getMany($this->_getItemsParams());
195  $items = [];
196  foreach ($submissionsIterator as $submission) {
197  $items[] = \Services::get('submission')->getBackendListProperties($submission, ['request' => $request]);
198  }
199 
200  return $items;
201  }
202 
208  public function getItemsMax() {
209  return \Services::get('submission')->getMax($this->_getItemsParams());
210  }
211 
217  protected function _getItemsParams() {
218  $request = \Application::get()->getRequest();
219  $context = $request->getContext();
220  $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
221 
222  return array_merge(
223  array(
224  'contextId' => $contextId,
225  'count' => $this->count,
226  'offset' => 0,
227  ),
228  $this->getParams
229  );
230  }
231 }
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:1239
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:223
PKP\components\listPanels\PKPSubmissionsListPanel\_getItemsParams
_getItemsParams()
Definition: PKPSubmissionsListPanel.inc.php:232
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:208