16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
17 import(
'controllers.grid.pubIds.PubIdExportRepresentationsListGridCellProvider');
27 parent::__construct();
29 array(ROLE_ID_MANAGER),
30 array(
'fetchGrid',
'fetchRow')
40 function authorize($request, &$args, $roleAssignments) {
41 import(
'lib.pkp.classes.security.authorization.PolicySet');
42 $rolePolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
44 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
45 foreach($roleAssignments as $role => $operations) {
50 return parent::authorize($request, $args, $roleAssignments);
57 parent::initialize($request, $args);
58 $context = $request->getContext();
61 $this->
setTitle(
'plugins.importexport.common.export.articles');
65 LOCALE_COMPONENT_APP_SUBMISSION,
66 LOCALE_COMPONENT_PKP_SUBMISSION,
67 LOCALE_COMPONENT_APP_MANAGER
70 $pluginCategory = $request->getUserVar(
'category');
71 $pluginPathName = $request->getUserVar(
'plugin');
73 assert(isset($this->_plugin));
85 'controllers/grid/gridCell.tpl',
87 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
94 'grid.submission.itemTitle',
99 'alignment' => COLUMN_ALIGNMENT_LEFT)
109 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
116 'submission.layout.galleyLabel',
120 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
128 $this->_plugin->getPubIdDisplayType(),
131 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
142 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
157 import(
'lib.pkp.classes.controllers.grid.feature.selectableItems.SelectableItemsFeature');
158 import(
'lib.pkp.classes.controllers.grid.feature.PagingFeature');
166 return array_merge(parent::getRequestArgs(), array(
'category' => $this->_plugin->getCategory(),
'plugin' => basename($this->_plugin->getPluginPath())));
180 return 'selectedRepresentations';
187 return 'controllers/grid/pubIds/pubIdExportRepresentationsGridFilter.tpl';
193 function renderFilter($request, $filterData = array()) {
194 $context = $request->getContext();
196 $issuesIterator = $issueDao->getPublishedIssues($context->getId());
197 $issues = $issuesIterator->toArray();
198 foreach ($issues as $issue) {
199 $issueOptions[$issue->getId()] = $issue->getIssueIdentification();
201 $issueOptions[0] = __(
'plugins.importexport.common.filter.issue');
202 ksort($issueOptions);
203 $statusNames = $this->_plugin->getStatusNames();
205 $allFilterData = array_merge(
208 'columns' => $filterColumns,
209 'issues' => $issueOptions,
210 'status' => $statusNames,
211 'gridId' => $this->
getId(),
213 return parent::renderFilter($request, $allFilterData);
220 $search = (string) $request->getUserVar(
'search');
221 $column = (string) $request->getUserVar(
'column');
222 $issueId = (int) $request->getUserVar(
'issueId');
223 $statusId = (string) $request->getUserVar(
'statusId');
227 'issueId' => $issueId,
228 'statusId' => $statusId,
235 protected function loadData($request, $filter) {
237 $context = $request->getContext();
239 $title = $author =
null;
240 if ($column ==
'title') {
242 } elseif ($column ==
'author') {
245 $pubIdStatusSettingName =
null;
247 $pubIdStatusSettingName = $this->_plugin->getDepositStatusSettingName();
249 return $articleGalleyDao->getExportable(
251 $this->_plugin->getPubIdType(),
255 $pubIdStatusSettingName,
257 $this->getGridRangeInfo($request, $this->getId())
271 'title' => __(
'submission.title'),
272 'author' => __(
'submission.authors')
282 if (isset($filter[
'search']) && $filter[
'search']) {
283 $search = $filter[
'search'];
287 if (isset($filter[
'column']) && $filter[
'column']) {
288 $column = $filter[
'column'];
292 if (isset($filter[
'issueId']) && $filter[
'issueId']) {
293 $issueId = $filter[
'issueId'];
297 if (isset($filter[
'statusId']) && $filter[
'statusId'] != EXPORT_STATUS_ANY) {
298 $statusId = $filter[
'statusId'];
302 return array($search, $column, $issueId, $statusId);