16 import(
'lib.pkp.classes.controllers.grid.DataObjectGridCellProvider');
25 function __construct($plugin, $authorizedRoles =
null) {
26 $this->_plugin = $plugin;
27 if ($authorizedRoles) {
28 $this->_authorizedRoles = $authorizedRoles;
30 parent::__construct();
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));
46 import(
'lib.pkp.classes.linkAction.request.RedirectAction');
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');
59 Services::get(
'submission')->getWorkflowUrlByUserRoles($submission)
61 htmlspecialchars($title)
65 $contextId = $submission->getContextId();
66 $issueId = $submission->getCurrentPublication()->getData(
'issueId');
68 $issue = $issueDao->getById($issueId, $contextId);
72 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
77 $dispatcher->url($request, ROUTE_COMPONENT,
null,
'grid.issues.BackIssueGridHandler',
'editIssue',
null, array(
'issueId' => $issue->getId())),
78 __(
'plugins.importexport.common.settings.DOIPluginSettings')
80 htmlspecialchars($issue->getIssueIdentification()),
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]);
93 return parent::getCellActions($request, $row, $column, $position);
103 $submission = $row->getData();
104 $columnId = $column->getId();
105 assert(is_a($submission,
'Submission') && !empty($columnId));
109 return array(
'label' => $submission->getId());
111 return array(
'label' =>
'');
113 return array(
'label' =>
'');
115 $status = $submission->getData($this->_plugin->getDepositStatusSettingName());
116 $statusNames = $this->_plugin->getStatusNames();
117 $statusActions = $this->_plugin->getStatusActions($submission);
119 if (array_key_exists($status, $statusActions)) {
122 assert(array_key_exists($status, $statusNames));
123 $label = $statusNames[$status];
126 $label = $statusNames[EXPORT_STATUS_NOT_DEPOSITED];
128 return array(
'label' => $label);