Open Preprint Systems  3.3.0
PubIdExportRepresentationsListGridCellProvider.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.DataObjectGridCellProvider');
17 
18 
21  var $_plugin;
22 
26  function __construct($plugin, $authorizedRoles = null) {
27  $this->_plugin = $plugin;
28  if ($authorizedRoles) {
29  $this->_authorizedRoles = $authorizedRoles;
30  }
31  parent::__construct();
32  }
33 
34  //
35  // Template methods from GridCellProvider
36  //
42  function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
43  $galley = $row->getData();
44  $columnId = $column->getId();
45  assert(is_a($galley, 'ArticleGalley') && !empty($columnId));
46 
47  $publication = Services::get('publication')->get($galley->getData('publicationId'));
48  $submission = Services::get('submission')->get($publication->getData('submissionId'));
49  import('lib.pkp.classes.linkAction.request.RedirectAction');
50  switch ($columnId) {
51  case 'title':
52  $this->_titleColumn = $column;
53  $title = $submission->getLocalizedTitle();
54  if (empty($title)) $title = __('common.untitled');
55  $authorsInTitle = $submission->getShortAuthorString();
56  $title = $authorsInTitle . '; ' . $title;
57  import('classes.core.Services');
58  return array(
59  new LinkAction(
60  'itemWorkflow',
61  new RedirectAction(
62  Services::get('submission')->getWorkflowUrlByUserRoles($submission)
63  ),
64  htmlspecialchars($title)
65  )
66  );
67  case 'status':
68  $status = $galley->getData($this->_plugin->getDepositStatusSettingName());
69  $statusNames = $this->_plugin->getStatusNames();
70  $statusActions = $this->_plugin->getStatusActions($submission);
71  if ($status && array_key_exists($status, $statusActions)) {
72  assert(array_key_exists($status, $statusNames));
73  return array(
74  new LinkAction(
75  'edit',
76  new RedirectAction(
77  $statusActions[$status],
78  '_blank'
79  ),
80  htmlspecialchars($statusNames[$status])
81  )
82  );
83  }
84  }
85  return parent::getCellActions($request, $row, $column, $position);
86  }
87 
94  function getTemplateVarsFromRowColumn($row, $column) {
95  $submissionGalley = $row->getData();
96  $columnId = $column->getId();
97  assert(is_a($submissionGalley, 'ArticleGAlley') && !empty($columnId));
98 
99  switch ($columnId) {
100  case 'id':
101  return array('label' => $submissionGalley->getId());
102  case 'title':
103  return array('label' => '');
104  case 'galley':
105  return array('label' => $submissionGalley->getGalleyLabel());
106  case 'pubId':
107  return array('label' => $submissionGalley->getStoredPubId($this->_plugin->getPubIdType()));
108  case 'status':
109  $status = $submissionGalley->getData($this->_plugin->getDepositStatusSettingName());
110  $statusNames = $this->_plugin->getStatusNames();
111  $statusActions = $this->_plugin->getStatusActions($submissionGalley);
112  if ($status) {
113  if (array_key_exists($status, $statusActions)) {
114  $label = '';
115  } else {
116  assert(array_key_exists($status, $statusNames));
117  $label = $statusNames[$status];
118  }
119  } else {
120  $label = $statusNames[EXPORT_STATUS_NOT_DEPOSITED];
121  }
122  return array('label' => $label);
123  }
124  }
125 
126 }
PubIdExportRepresentationsListGridCellProvider
Definition: PubIdExportRepresentationsListGridCellProvider.inc.php:19
PubIdExportRepresentationsListGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: PubIdExportRepresentationsListGridCellProvider.inc.php:97
PubIdExportRepresentationsListGridCellProvider\getCellActions
getCellActions($request, $row, $column, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: PubIdExportRepresentationsListGridCellProvider.inc.php:45
PubIdExportRepresentationsListGridCellProvider\__construct
__construct($plugin, $authorizedRoles=null)
Definition: PubIdExportRepresentationsListGridCellProvider.inc.php:29
GridCellProvider\__construct
__construct()
Definition: GridCellProvider.inc.php:24
PubIdExportRepresentationsListGridCellProvider\$_plugin
$_plugin
Definition: PubIdExportRepresentationsListGridCellProvider.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
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