Open Preprint Systems  3.3.0
ExportPublishedSubmissionsListGridCellProvider.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.DataObjectGridCellProvider');
17 
20  var $_plugin;
21 
25  function __construct($plugin, $authorizedRoles = null) {
26  $this->_plugin = $plugin;
27  if ($authorizedRoles) {
28  $this->_authorizedRoles = $authorizedRoles;
29  }
30  parent::__construct();
31  }
32 
33  //
34  // Template methods from GridCellProvider
35  //
41  function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
42  $submission = $row->getData();
43  $columnId = $column->getId();
44  assert(is_a($submission, 'Submission') && !empty($columnId));
45 
46  import('lib.pkp.classes.linkAction.request.RedirectAction');
47  switch ($columnId) {
48  case 'title':
49  $this->_titleColumn = $column;
50  $title = $submission->getLocalizedTitle();
51  if (empty($title)) $title = __('common.untitled');
52  $authorsInTitle = $submission->getShortAuthorString();
53  $title = $authorsInTitle . '; ' . $title;
54  import('classes.core.Services');
55  return array(
56  new LinkAction(
57  'itemWorkflow',
58  new RedirectAction(
59  Services::get('submission')->getWorkflowUrlByUserRoles($submission)
60  ),
61  htmlspecialchars($title)
62  )
63  );
64  case 'status':
65  $status = $submission->getData($this->_plugin->getDepositStatusSettingName());
66  $statusNames = $this->_plugin->getStatusNames();
67  $statusActions = $this->_plugin->getStatusActions($submission);
68  if ($status && array_key_exists($status, $statusActions)) {
69  assert(array_key_exists($status, $statusNames));
70  return array($statusActions[$status]);
71  }
72  }
73  return parent::getCellActions($request, $row, $column, $position);
74  }
75 
82  function getTemplateVarsFromRowColumn($row, $column) {
83  $submission = $row->getData();
84  $columnId = $column->getId();
85  assert(is_a($submission, 'Submission') && !empty($columnId));
86 
87  switch ($columnId) {
88  case 'id':
89  return array('label' => $submission->getId());
90  case 'title':
91  return array('label' => '');
92  case 'status':
93  $status = $submission->getData($this->_plugin->getDepositStatusSettingName());
94  $statusNames = $this->_plugin->getStatusNames();
95  $statusActions = $this->_plugin->getStatusActions($submission);
96  if ($status) {
97  if (array_key_exists($status, $statusActions)) {
98  $label = '';
99  } else {
100  assert(array_key_exists($status, $statusNames));
101  $label = $statusNames[$status];
102  }
103  } else {
104  $label = $statusNames[EXPORT_STATUS_NOT_DEPOSITED];
105  }
106  return array('label' => $label);
107  }
108  }
109 
110 }
111 
112 
ExportPublishedSubmissionsListGridCellProvider\$_plugin
$_plugin
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:23
ExportPublishedSubmissionsListGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:85
ExportPublishedSubmissionsListGridCellProvider
Class for a cell provider that can retrieve labels from submissions.
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:18
GridCellProvider\__construct
__construct()
Definition: GridCellProvider.inc.php:24
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
ExportPublishedSubmissionsListGridCellProvider\__construct
__construct($plugin, $authorizedRoles=null)
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:28
RedirectAction
This action request redirects to another page.
Definition: RedirectAction.inc.php:18
DataObjectGridCellProvider
Base class for a cell provider that can retrieve simple labels from DataObjects. If you need more com...
Definition: DataObjectGridCellProvider.inc.php:22
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49
ExportPublishedSubmissionsListGridCellProvider\getCellActions
getCellActions($request, $row, $column, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:44