Open Journal 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 'issue':
65  $contextId = $submission->getContextId();
66  $issueId = $submission->getCurrentPublication()->getData('issueId');
67  $issueDao = DAORegistry::getDAO('IssueDAO'); /* @var $issueDao IssueDAO */
68  $issue = $issueDao->getById($issueId, $contextId);
69  // Link to the issue edit modal
71  $dispatcher = $application->getDispatcher();
72  import('lib.pkp.classes.linkAction.request.AjaxModal');
73  return array(
74  new LinkAction(
75  'edit',
76  new AjaxModal(
77  $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.issues.BackIssueGridHandler', 'editIssue', null, array('issueId' => $issue->getId())),
78  __('plugins.importexport.common.settings.DOIPluginSettings')
79  ),
80  htmlspecialchars($issue->getIssueIdentification()),
81  null
82  )
83  );
84  case 'status':
85  $status = $submission->getData($this->_plugin->getDepositStatusSettingName());
86  $statusNames = $this->_plugin->getStatusNames();
87  $statusActions = $this->_plugin->getStatusActions($submission);
88  if ($status && array_key_exists($status, $statusActions)) {
89  assert(array_key_exists($status, $statusNames));
90  return array($statusActions[$status]);
91  }
92  }
93  return parent::getCellActions($request, $row, $column, $position);
94  }
95 
102  function getTemplateVarsFromRowColumn($row, $column) {
103  $submission = $row->getData();
104  $columnId = $column->getId();
105  assert(is_a($submission, 'Submission') && !empty($columnId));
106 
107  switch ($columnId) {
108  case 'id':
109  return array('label' => $submission->getId());
110  case 'title':
111  return array('label' => '');
112  case 'issue':
113  return array('label' => '');
114  case 'status':
115  $status = $submission->getData($this->_plugin->getDepositStatusSettingName());
116  $statusNames = $this->_plugin->getStatusNames();
117  $statusActions = $this->_plugin->getStatusActions($submission);
118  if ($status) {
119  if (array_key_exists($status, $statusActions)) {
120  $label = '';
121  } else {
122  assert(array_key_exists($status, $statusNames));
123  $label = $statusNames[$status];
124  }
125  } else {
126  $label = $statusNames[EXPORT_STATUS_NOT_DEPOSITED];
127  }
128  return array('label' => $label);
129  }
130  }
131 
132 }
133 
134 
ExportPublishedSubmissionsListGridCellProvider\$_plugin
$_plugin
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:23
$application
$application
Definition: index.php:65
ExportPublishedSubmissionsListGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: ExportPublishedSubmissionsListGridCellProvider.inc.php:105
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
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
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
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
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
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