Open Journal Systems  3.3.0
PubIdExportIssuesListGridCellProvider.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  $publishedIssue = $row->getData();
43  $columnId = $column->getId();
44  assert(is_a($publishedIssue, 'Issue') && !empty($columnId));
45 
46  switch ($columnId) {
47  case 'identification':
48  // Link to the issue edit modal
50  $dispatcher = $application->getDispatcher();
51  import('lib.pkp.classes.linkAction.request.AjaxModal');
52  return array(
53  new LinkAction(
54  'edit',
55  new AjaxModal(
56  $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.issues.BackIssueGridHandler', 'editIssue', null, array('issueId' => $publishedIssue->getId())),
57  __('plugins.importexport.common.settings.DOIPluginSettings')
58  ),
59  htmlspecialchars($publishedIssue->getIssueIdentification()),
60  null
61  )
62  );
63  case 'status':
64  $status = $publishedIssue->getData($this->_plugin->getDepositStatusSettingName());
65  $statusNames = $this->_plugin->getStatusNames();
66  $statusActions = $this->_plugin->getStatusActions($publishedIssue);
67  if ($status && array_key_exists($status, $statusActions)) {
68  assert(array_key_exists($status, $statusNames));
69  import('lib.pkp.classes.linkAction.request.RedirectAction');
70  return array(
71  new LinkAction(
72  'edit',
73  new RedirectAction(
74  $statusActions[$status],
75  '_blank'
76  ),
77  $statusNames[$status]
78  )
79  );
80  }
81  }
82  return parent::getCellActions($request, $row, $column, $position);
83  }
84 
91  function getTemplateVarsFromRowColumn($row, $column) {
92  $publishedIssue = $row->getData();
93  $columnId = $column->getId();
94  assert(is_a($publishedIssue, 'Issue') && !empty($columnId));
95 
96  switch ($columnId) {
97  case 'identification':
98  return array('label' => '');
99  case 'published':
100  return array('label' => $publishedIssue->getDatePublished());
101  case 'pubId':
102  return array('label' => $publishedIssue->getStoredPubId($this->_plugin->getPubIdType()));
103  case 'status':
104  $status = $publishedIssue->getData($this->_plugin->getDepositStatusSettingName());
105  $statusNames = $this->_plugin->getStatusNames();
106  $statusActions = $this->_plugin->getStatusActions($publishedIssue);
107  if ($status) {
108  if (array_key_exists($status, $statusActions)) {
109  $label = '';
110  } else {
111  assert(array_key_exists($status, $statusNames));
112  $label = $statusNames[$status];
113  }
114  } else {
115  $label = $statusNames[EXPORT_STATUS_NOT_DEPOSITED];
116  }
117  return array('label' => $label);
118  }
119  }
120 
121 }
122 
123 
$application
$application
Definition: index.php:65
PubIdExportIssuesListGridCellProvider\__construct
__construct($plugin, $authorizedRoles=null)
Definition: PubIdExportIssuesListGridCellProvider.inc.php:28
GridCellProvider\__construct
__construct()
Definition: GridCellProvider.inc.php:24
PubIdExportIssuesListGridCellProvider\getCellActions
getCellActions($request, $row, $column, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: PubIdExportIssuesListGridCellProvider.inc.php:44
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
PubIdExportIssuesListGridCellProvider\$_plugin
$_plugin
Definition: PubIdExportIssuesListGridCellProvider.inc.php:23
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
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PubIdExportIssuesListGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: PubIdExportIssuesListGridCellProvider.inc.php:94
PubIdExportIssuesListGridCellProvider
Class for a cell provider that can retrieve labels from issues with pub ids.
Definition: PubIdExportIssuesListGridCellProvider.inc.php:18