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)
105 'submission.layout.galleyLabel',
109 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
117 $this->_plugin->getPubIdDisplayType(),
120 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
131 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
146 import(
'lib.pkp.classes.controllers.grid.feature.selectableItems.SelectableItemsFeature');
147 import(
'lib.pkp.classes.controllers.grid.feature.PagingFeature');
155 return array_merge(parent::getRequestArgs(), array(
'category' => $this->_plugin->getCategory(),
'plugin' => basename($this->_plugin->getPluginPath())));
169 return 'selectedRepresentations';
176 return 'controllers/grid/pubIds/pubIdExportRepresentationsGridFilter.tpl';
182 function renderFilter($request, $filterData = array()) {
183 $context = $request->getContext();
184 $statusNames = $this->_plugin->getStatusNames();
186 $allFilterData = array_merge(
189 'columns' => $filterColumns,
190 'status' => $statusNames,
191 'gridId' => $this->
getId(),
193 return parent::renderFilter($request, $allFilterData);
200 $search = (string) $request->getUserVar(
'search');
201 $column = (string) $request->getUserVar(
'column');
202 $statusId = (string) $request->getUserVar(
'statusId');
206 'statusId' => $statusId,
213 protected function loadData($request, $filter) {
215 $context = $request->getContext();
217 $title = $author =
null;
218 if ($column ==
'title') {
220 } elseif ($column ==
'author') {
223 $pubIdStatusSettingName =
null;
225 $pubIdStatusSettingName = $this->_plugin->getDepositStatusSettingName();
227 return $articleGalleyDao->getExportable(
229 $this->_plugin->getPubIdType(),
232 $pubIdStatusSettingName,
234 $this->getGridRangeInfo($request, $this->getId())
248 'title' => __(
'submission.title'),
249 'author' => __(
'submission.authors')
259 if (isset($filter[
'search']) && $filter[
'search']) {
260 $search = $filter[
'search'];
264 if (isset($filter[
'column']) && $filter[
'column']) {
265 $column = $filter[
'column'];
269 if (isset($filter[
'statusId']) && $filter[
'statusId'] != EXPORT_STATUS_ANY) {
270 $statusId = $filter[
'statusId'];
274 return array($search, $column, $statusId);