Open Journal 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 'issue':
68  $contextId = $submission->getContextId();
69  $issueId = $submission->getCurrentPublication()->getData('issueId');
70  $issueDao = DAORegistry::getDAO('IssueDAO'); /* @var $issueDao IssueDAO */
71  $issue = $issueDao->getById($issueId, $contextId);
72  // Link to the issue edit modal
74  $dispatcher = $application->getDispatcher();
75  import('lib.pkp.classes.linkAction.request.AjaxModal');
76  return array(
77  new LinkAction(
78  'edit',
79  new AjaxModal(
80  $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.issues.BackIssueGridHandler', 'editIssue', null, array('issueId' => $issue->getId())),
81  __('plugins.importexport.common.settings.DOIPluginSettings')
82  ),
83  htmlspecialchars($issue->getIssueIdentification()),
84  null
85  )
86  );
87  case 'status':
88  $status = $galley->getData($this->_plugin->getDepositStatusSettingName());
89  $statusNames = $this->_plugin->getStatusNames();
90  $statusActions = $this->_plugin->getStatusActions($submission);
91  if ($status && array_key_exists($status, $statusActions)) {
92  assert(array_key_exists($status, $statusNames));
93  return array(
94  new LinkAction(
95  'edit',
96  new RedirectAction(
97  $statusActions[$status],
98  '_blank'
99  ),
100  htmlspecialchars($statusNames[$status])
101  )
102  );
103  }
104  }
105  return parent::getCellActions($request, $row, $column, $position);
106  }
107 
114  function getTemplateVarsFromRowColumn($row, $column) {
115  $submissionGalley = $row->getData();
116  $columnId = $column->getId();
117  assert(is_a($submissionGalley, 'ArticleGAlley') && !empty($columnId));
118 
119  switch ($columnId) {
120  case 'id':
121  return array('label' => $submissionGalley->getId());
122  case 'title':
123  return array('label' => '');
124  case 'issue':
125  return array('label' => '');
126  case 'galley':
127  return array('label' => $submissionGalley->getGalleyLabel());
128  case 'pubId':
129  return array('label' => $submissionGalley->getStoredPubId($this->_plugin->getPubIdType()));
130  case 'status':
131  $status = $submissionGalley->getData($this->_plugin->getDepositStatusSettingName());
132  $statusNames = $this->_plugin->getStatusNames();
133  $statusActions = $this->_plugin->getStatusActions($submissionGalley);
134  if ($status) {
135  if (array_key_exists($status, $statusActions)) {
136  $label = '';
137  } else {
138  assert(array_key_exists($status, $statusNames));
139  $label = $statusNames[$status];
140  }
141  } else {
142  $label = $statusNames[EXPORT_STATUS_NOT_DEPOSITED];
143  }
144  return array('label' => $label);
145  }
146  }
147 
148 }
PubIdExportRepresentationsListGridCellProvider
Definition: PubIdExportRepresentationsListGridCellProvider.inc.php:19
$application
$application
Definition: index.php:65
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PubIdExportRepresentationsListGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: PubIdExportRepresentationsListGridCellProvider.inc.php:117
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
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
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
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49