16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
26 parent::__construct();
28 array(ROLE_ID_MANAGER),
29 array(
'fetchGrid',
'fetchRow')
39 function authorize($request, &$args, $roleAssignments) {
40 import(
'lib.pkp.classes.security.authorization.PolicySet');
41 $rolePolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
43 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
44 foreach($roleAssignments as $role => $operations) {
49 return parent::authorize($request, $args, $roleAssignments);
56 parent::initialize($request, $args);
57 $context = $request->getContext();
60 $this->
setTitle(
'plugins.importexport.common.export.articles');
64 LOCALE_COMPONENT_APP_SUBMISSION,
65 LOCALE_COMPONENT_PKP_SUBMISSION,
66 LOCALE_COMPONENT_APP_MANAGER
69 $pluginCategory = $request->getUserVar(
'category');
70 $pluginPathName = $request->getUserVar(
'plugin');
72 assert(isset($this->_plugin));
81 'controllers/grid/gridCell.tpl',
83 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
90 'grid.submission.itemTitle',
95 'alignment' => COLUMN_ALIGNMENT_LEFT)
105 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
109 if (method_exists($this,
'addAdditionalColumns')) {
110 $this->addAdditionalColumns($cellProvider);
119 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
133 import(
'lib.pkp.classes.controllers.grid.feature.selectableItems.SelectableItemsFeature');
134 import(
'lib.pkp.classes.controllers.grid.feature.PagingFeature');
142 return array_merge(parent::getRequestArgs(), array(
'category' => $this->_plugin->getCategory(),
'plugin' => basename($this->_plugin->getPluginPath())));
156 return 'selectedSubmissions';
163 return 'controllers/grid/submissions/exportPublishedSubmissionsGridFilter.tpl';
169 function renderFilter($request, $filterData = array()) {
170 $context = $request->getContext();
172 $issuesIterator = $issueDao->getPublishedIssues($context->getId());
173 $issues = $issuesIterator->toArray();
174 foreach ($issues as $issue) {
175 $issueOptions[$issue->getId()] = $issue->getIssueIdentification();
177 $issueOptions[0] = __(
'plugins.importexport.common.filter.issue');
178 ksort($issueOptions);
179 $statusNames = $this->_plugin->getStatusNames();
181 $allFilterData = array_merge(
184 'columns' => $filterColumns,
185 'issues' => $issueOptions,
186 'status' => $statusNames,
187 'gridId' => $this->
getId(),
189 return parent::renderFilter($request, $allFilterData);
196 $search = (string) $request->getUserVar(
'search');
197 $column = (string) $request->getUserVar(
'column');
198 $issueId = (int) $request->getUserVar(
'issueId');
199 $statusId = (string) $request->getUserVar(
'statusId');
203 'issueId' => $issueId,
204 'statusId' => $statusId,
211 protected function loadData($request, $filter) {
212 $context = $request->getContext();
213 list($search, $column, $issueId, $statusId) = $this->
getFilterValues($filter);
214 $title = $author =
null;
215 if ($column ==
'title') {
217 } elseif ($column ==
'author') {
220 $pubIdStatusSettingName =
null;
222 $pubIdStatusSettingName = $this->_plugin->getDepositStatusSettingName();
225 return $submissionDao->getExportable(
231 $pubIdStatusSettingName,
233 $this->getGridRangeInfo($request, $this->getId())
247 'title' => __(
'submission.title'),
248 'author' => __(
'submission.authors')
258 if (isset($filter[
'search']) && $filter[
'search']) {
259 $search = $filter[
'search'];
263 if (isset($filter[
'column']) && $filter[
'column']) {
264 $column = $filter[
'column'];
268 if (isset($filter[
'issueId']) && $filter[
'issueId']) {
269 $issueId = $filter[
'issueId'];
273 if (isset($filter[
'statusId']) && $filter[
'statusId'] != EXPORT_STATUS_ANY) {
274 $statusId = $filter[
'statusId'];
278 return array($search, $column, $issueId, $statusId);
288 import(
'controllers.grid.submissions.ExportPublishedSubmissionsListGridCellProvider');