/** * @copydoc PKPHandler::initialize() */ function initialize($request) { parent::initialize($request); $press = $request->getPress(); $this->_pressId = $press->getId(); AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER); // Set the grid title. $this->setTitle('grid.category.categories'); // Add grid-level actions. $router = $request->getRouter(); $this->addAction(new LinkAction('addCategory', new AjaxModal($router->url($request, null, null, 'addCategory'), __('grid.category.add'), 'modal_manage'), __('grid.category.add'), 'add_category')); // Add grid columns. $cellProvider = new DataObjectGridCellProvider(); $cellProvider->setLocale(AppLocale::getLocale()); $this->addColumn(new GridColumn('title', 'grid.category.name', null, null, $cellProvider)); }
/** * @see GridCellProvider::getTemplateVarsFromRowColumn() */ function getTemplateVarsFromRowColumn(&$row, $column) { $templateVars = parent::getTemplateVarsFromRowColumn($row, $column); $element =& $row->getData(); assert(is_a($element, 'Citation')); $templateVars['isApproved'] = $element->getCitationState() == CITATION_APPROVED ? true : false; $templateVars['isCurrentItem'] = $row->getIsCurrentItem(); $templateVars['citationSeq'] = $element->getSeq(); return $templateVars; }
function initialize($request) { parent::initialize($request); // Load language components AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER, LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_GRID, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_APP_DEFAULT); // Set the grid title. $this->setTitle('grid.genres.title'); // Add grid-level actions $router = $request->getRouter(); $actionArgs = array('gridId' => $this->getId()); import('lib.pkp.classes.linkAction.request.AjaxModal'); $this->addAction(new LinkAction('addGenre', new AjaxModal($router->url($request, null, null, 'addGenre', null, $actionArgs), __('grid.action.addGenre'), 'modal_add_item', true), __('grid.action.addGenre'), 'add_item')); import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal'); $this->addAction(new LinkAction('restoreGenres', new RemoteActionConfirmationModal(__('grid.action.restoreDefaults.confirm'), null, $router->url($request, null, null, 'restoreGenres', null, $actionArgs), 'modal_delete'), __('grid.action.restoreDefaults'), 'reset_default')); // Columns $cellProvider = new DataObjectGridCellProvider(); $cellProvider->setLocale(AppLocale::getLocale()); $this->addColumn(new GridColumn('name', 'common.name', null, null, $cellProvider, array('width' => 90))); $this->addColumn(new GridColumn('designation', 'common.designation', null, null, $cellProvider)); }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LegacyLinkAction instances */ function getCellActions(&$request, &$row, &$column, $position = GRID_ACTION_POSITION_DEFAULT) { if ($column->getId() == 'files') { $monographFile =& $row->getData(); $router =& $request->getRouter(); $actionArgs = array('gridId' => $row->getGridId(), 'monographId' => $monographFile->getMonographId(), 'fileId' => $monographFile->getFileId()); $action =& new LegacyLinkAction('downloadFile', LINK_ACTION_MODE_LINK, LINK_ACTION_TYPE_NOTHING, $router->url($request, null, null, 'downloadFile', null, $actionArgs), null, $monographFile->getOriginalFileName()); return array($action); } return parent::getCellActions($request, $row, $column, $position); }
function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_ROW_CLICK) { $submissionFile = $row->getData(); $router = $request->getRouter(); switch ($column->getId()) { case 'name': $dispatcher = $request->getDispatcher(); return array(new LinkAction('editSubmissionFile', new AjaxModal($router->url($request, null, null, 'editSubmissionFile', null, array('submissionFileId' => $submissionFile->getFileId(), 'submissionId' => $this->_submissionId)), __('grid.action.edit'), 'modal_edit', true), __('plugins.generic.vgWort.grid.action.edit'), 'edit')); default: return parent::getCellActions($request, $row, $column, $position); } }
function initialize(&$request) { parent::initialize($request); // Load language components Locale::requireComponents(array(LOCALE_COMPONENT_OMP_MANAGER, LOCALE_COMPONENT_OMP_EDITOR, LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APPLICATION_COMMON, LOCALE_COMPONENT_PKP_GRID)); // Basic grid configuration $this->setTitle('manager.setup.genres'); $press =& $request->getPress(); // Elements to be displayed in the grid $genreDao =& DAORegistry::getDAO('GenreDAO'); $genres =& $genreDao->getEnabledByPressId($press->getId()); $this->setData($genres); // Add grid-level actions $router =& $request->getRouter(); $actionArgs = array('gridId' => $this->getId()); $this->addAction(new LegacyLinkAction('addGenre', LINK_ACTION_MODE_MODAL, LINK_ACTION_TYPE_APPEND, $router->url($request, null, null, 'addGenre', null, $actionArgs), 'grid.action.addItem'), GRID_ACTION_POSITION_ABOVE); $this->addAction(new LegacyLinkAction('restoreGenres', LINK_ACTION_MODE_CONFIRM, LINK_ACTION_TYPE_REPLACE, $router->url($request, null, null, 'restoreGenres', null, $actionArgs), 'grid.action.restoreDefaults'), GRID_ACTION_POSITION_ABOVE); // Columns $cellProvider = new DataObjectGridCellProvider(); $cellProvider->setLocale(Locale::getLocale()); $this->addColumn(new GridColumn('name', 'common.name', null, 'controllers/grid/gridCell.tpl', $cellProvider)); $this->addColumn(new GridColumn('designation', 'common.designation', null, 'controllers/grid/gridCell.tpl', $cellProvider)); }
/** * @copydoc GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column) { switch ($column->getId()) { case 'label': $element = $row->getData(); if ($element->getRemoteUrl() != '' || !$element->getFileId()) { break; } $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); import('lib.pkp.classes.submission.SubmissionFile'); $submissionFile = $submissionFileDao->getLatestRevision($element->getFileId(), null, $element->getSubmissionId()); import('lib.pkp.controllers.api.file.linkAction.DownloadFileLinkAction'); return array(new DownloadFileLinkAction($request, $submissionFile, $request->getUserVar('stageId'), $element->getLabel())); } return parent::getCellActions($request, $row, $column); }
/** * @copydoc GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column) { switch ($column->getId()) { case 'contents': $element = $row->getData(); $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); import('lib.pkp.classes.submission.SubmissionFile'); $submissionFiles = $submissionFileDao->getLatestRevisionsByAssocId(ASSOC_TYPE_NOTE, $element->getId(), $this->_submission->getId(), SUBMISSION_FILE_QUERY); import('lib.pkp.controllers.api.file.linkAction.DownloadFileLinkAction'); $actions = array(); foreach ($submissionFiles as $submissionFile) { $actions[] = new DownloadFileLinkAction($request, $submissionFile, $request->getUserVar('stageId')); } return $actions; } return parent::getCellActions($request, $row, $column); }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LinkAction instances */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { if ($column->getId() == 'title') { $submission = $row->getData(); if (is_a($submission, 'ReviewerSubmission')) { // Reviewer: Add a review link action. return array($this->_getCellLinkAction($request, 'reviewer', 'submission', $submission)); } else { // Get the right page and operation (authordashboard or workflow). list($page, $operation) = SubmissionsListGridCellProvider::getPageAndOperationByUserRoles($request, $submission); // Return redirect link action. return array($this->_getCellLinkAction($request, $page, $operation, $submission)); } // This should be unreachable code. assert(false); } return parent::getCellActions($request, $row, $column, $position); }
/** * @copydoc GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { switch ($column->getId()) { case 'enabled': $element = $row->getData(); /* @var $element DataObject */ $router = $request->getRouter(); import('lib.pkp.classes.linkAction.LinkAction'); if ($element->getCanDisable()) { if ($element->getEnabled()) { return array(new LinkAction('disableEmail', new RemoteActionConfirmationModal($request->getSession(), __('manager.emails.disable.message'), null, $router->url($request, null, 'grid.settings.preparedEmails.PreparedEmailsGridHandler', 'disableEmail', null, array('emailKey' => $element->getEmailKey()))), __('manager.emails.disable'), 'disable')); } else { return array(new LinkAction('enableEmail', new RemoteActionConfirmationModal($request->getSession(), __('manager.emails.enable.message'), null, $router->url($request, null, 'grid.settings.preparedEmails.PreparedEmailsGridHandler', 'enableEmail', null, array('emailKey' => $element->getEmailKey()))), __('manager.emails.enable'), 'enable')); } } } return parent::getCellActions($request, $row, $column, $position); }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LegacyLinkAction instances */ function getCellActions(&$request, &$row, &$column, $position = GRID_ACTION_POSITION_DEFAULT) { if ($column->getId() == 'title') { $monograph =& $row->getData(); $router =& $request->getRouter(); $dispatcher =& $router->getDispatcher(); $title = $monograph->getLocalizedTitle(); if (empty($title)) { $title = Locale::translate('common.untitled'); } $pressId = $monograph->getPressId(); $pressDao = DAORegistry::getDAO('PressDAO'); $press = $pressDao->getPress($pressId); $action = new LegacyLinkAction('details', LINK_ACTION_MODE_LINK, LINK_ACTION_TYPE_NOTHING, $dispatcher->url($request, ROUTE_PAGE, $press->getPath(), 'workflow', 'submission', $monograph->getId()), null, $title); return array($action); } return parent::getCellActions($request, $row, $column, $position); }
/** * Extracts variables for a given column from a data element * so that they may be assigned to template before rendering. * @param $row GridRow * @param $column GridColumn * @return array */ function getTemplateVarsFromRowColumn($row, $column) { $element = $row->getData(); $columnId = $column->getId(); assert(is_a($element, 'DataObject') && !empty($columnId)); switch ($columnId) { case 'name': return array('label' => $element->getFullName()); case 'role': return array('label' => $element->getLocalizedUserGroupName()); case 'email': return parent::getTemplateVarsFromRowColumn($row, $column); case 'principalContact': return array('isPrincipalContact' => $element->getPrimaryContact()); case 'includeInBrowse': return array('includeInBrowse' => $element->getIncludeInBrowse()); } }
/** * @copydoc GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column) { switch ($column->getId()) { case 'label': $element = $row->getData(); if ($element->getRemoteUrl() != '' || !$element->getFileId()) { break; } $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); import('lib.pkp.classes.submission.SubmissionFile'); $submissionFiles = $submissionFileDao->getLatestRevisionsByAssocId(ASSOC_TYPE_REPRESENTATION, $element->getId(), $this->_submission->getId(), SUBMISSION_FILE_PROOF); import('lib.pkp.controllers.api.file.linkAction.DownloadFileLinkAction'); $actions = array(); foreach ($submissionFiles as $submissionFile) { $actions[] = new DownloadFileLinkAction($request, $submissionFile, $request->getUserVar('stageId'), $element->getLabel()); } return $actions; } return parent::getCellActions($request, $row, $column); }
/** * Get cell actions associated with this row/column combination * * @copydoc GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { $publishedSubmissionGalley = $row->getData(); $columnId = $column->getId(); assert(is_a($publishedSubmissionGalley, 'ArticleGalley') && !empty($columnId)); $publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO'); $publishedSubmission = $publishedArticleDao->getPublishedArticleByArticleId($publishedSubmissionGalley->getSubmissionId()); import('lib.pkp.classes.linkAction.request.RedirectAction'); switch ($columnId) { case 'title': $this->_titleColumn = $column; $title = $publishedSubmission->getLocalizedTitle(); if (empty($title)) { $title = __('common.untitled'); } $authorsInTitle = $publishedSubmission->getShortAuthorString(); $title = $authorsInTitle . '; ' . $title; import('lib.pkp.controllers.grid.submissions.SubmissionsListGridCellProvider'); return array(new LinkAction('itemWorkflow', new RedirectAction(SubmissionsListGridCellProvider::getUrlByUserRoles($request, $publishedSubmission)), $title)); case 'issue': $contextId = $publishedSubmission->getContextId(); $issueId = $publishedSubmission->getIssueId(); $issueDao = DAORegistry::getDAO('IssueDAO'); $issue = $issueDao->getById($issueId, $contextId); // Link to the issue edit modal $application = PKPApplication::getApplication(); $dispatcher = $application->getDispatcher(); import('lib.pkp.classes.linkAction.request.AjaxModal'); return array(new LinkAction('edit', new AjaxModal($dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.issues.BackIssueGridHandler', 'editIssue', null, array('issueId' => $issue->getId())), __('plugins.importexport.common.settings.DOIPluginSettings')), $issue->getIssueIdentification(), null)); case 'status': $status = $publishedSubmissionGalley->getData($this->_plugin->getDepositStatusSettingName()); $statusNames = $this->_plugin->getStatusNames(); $statusActions = $this->_plugin->getStatusActions($publishedSubmission); if ($status && array_key_exists($status, $statusActions)) { assert(array_key_exists($status, $statusNames)); return array(new LinkAction('edit', new RedirectAction($statusActions[$status], '_blank'), $statusNames[$status])); } } return parent::getCellActions($request, $row, $column, $position); }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LegacyLinkAction instances */ function getCellActions(&$request, &$row, &$column, $position = GRID_ACTION_POSITION_DEFAULT) { if ($column->getId() == 'name') { $monographFile =& $row->getData(); $router =& $request->getRouter(); $dispatcher =& $router->getDispatcher(); $fileName = $monographFile->getLocalizedName() != '' ? $monographFile->getLocalizedName() : Locale::translate('common.untitled'); if ($monographFile->getRevision() > 1) { $fileName .= ' (' . $monographFile->getRevision() . ')'; } // Add revision number to label if (empty($fileName)) { $fileName = Locale::translate('common.untitled'); } $actionArgs = array('monographId' => $monographFile->getMonographId(), 'fileId' => $monographFile->getFileId()); $genreDao =& DAORegistry::getDAO('GenreDAO'); $genre = $genreDao->getById($monographFile->getGenreId()); $action =& new LegacyLinkAction('downloadFile', LINK_ACTION_MODE_LINK, LINK_ACTION_TYPE_NOTHING, $router->url($request, null, null, 'downloadFile', null, $actionArgs), null, $fileName, $genre->getCategory() == GENRE_CATEGORY_ARTWORK ? 'imageFile' : null); return array($action); } return parent::getCellActions($request, $row, $column, $position); }
/** * Get cell actions associated with this row/column combination * * @copydoc GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { $publishedIssue = $row->getData(); $columnId = $column->getId(); assert(is_a($publishedIssue, 'Issue') && !empty($columnId)); switch ($columnId) { case 'identification': // Link to the issue edit modal $application = PKPApplication::getApplication(); $dispatcher = $application->getDispatcher(); import('lib.pkp.classes.linkAction.request.AjaxModal'); return array(new LinkAction('edit', new AjaxModal($dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.issues.BackIssueGridHandler', 'editIssue', null, array('issueId' => $publishedIssue->getId())), __('plugins.importexport.common.settings.DOIPluginSettings')), $publishedIssue->getIssueIdentification(), null)); case 'status': $status = $publishedIssue->getData($this->_plugin->getDepositStatusSettingName()); $statusNames = $this->_plugin->getStatusNames(); $statusActions = $this->_plugin->getStatusActions($publishedIssue); if ($status && array_key_exists($status, $statusActions)) { assert(array_key_exists($status, $statusNames)); import('lib.pkp.classes.linkAction.request.RedirectAction'); return array(new LinkAction('edit', new RedirectAction($statusActions[$status], '_blank'), $statusNames[$status])); } } return parent::getCellActions($request, $row, $column, $position); }
/** * Constructor */ function SalesRightsGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Constructor */ function IdentificationCodeGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Extracts variables for a given column from a data element * so that they may be assigned to template before rendering. * @param $row GridRow * @param $column GridColumn * @return array */ function getTemplateVarsFromRowColumn(&$row, $column) { $element =& $row->getData(); $columnId = $column->getId(); assert(is_a($element, 'DataObject') && !empty($columnId)); switch ($columnId) { case 'name': if ($this->getCellState($row, $column) != 'linkReview') { return array('label' => $element->getReviewerFullName()); } case is_numeric($columnId): case 'reviewer': return array('status' => $this->getCellState($row, $column)); } return parent::getTemplateVarsFromRowColumn($row, $column); }
/** * Constructor */ function __construct() { parent::__construct(); }
/** * Constructor */ function EventLogGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Constructor * @param $monographId int * @param $inCatalogEntryModal boolean Tells if grid is loaded inside * catalog entry modal. */ function PublicationFormatGridCellProvider($monographId, $inCatalogEntryModal) { parent::DataObjectGridCellProvider(); $this->_monographId = $monographId; $this->_inCatalogEntryModal = $inCatalogEntryModal; }
/** * Constructor */ function StageParticipantGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Constructor */ function SubmissionParticipantGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Constructor */ function AddThisStatisticsGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Constructor */ function ReviewerSelectGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * @see GridCellProvider::getCellActions() */ function getCellActions($request, $row, $column) { $data = $row->getData(); $router = $request->getRouter(); if (is_a($data, 'Representation')) { switch ($column->getId()) { case 'name': // if it is a remotely hosted content, don't provide // file upload and select link actions $remoteURL = $data->getRemoteURL(); if ($remoteURL) { return array(); } import('lib.pkp.controllers.api.file.linkAction.AddFileLinkAction'); import('lib.pkp.controllers.grid.files.fileList.linkAction.SelectFilesLinkAction'); AppLocale::requireComponents(LOCALE_COMPONENT_PKP_EDITOR); return array(new AddFileLinkAction($request, $data->getSubmissionId(), WORKFLOW_STAGE_ID_PRODUCTION, array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), null, SUBMISSION_FILE_PROOF, ASSOC_TYPE_REPRESENTATION, $data->getId()), new SelectFilesLinkAction($request, array('submissionId' => $data->getSubmissionId(), 'assocType' => ASSOC_TYPE_REPRESENTATION, 'assocId' => $data->getId(), 'representationId' => $data->getId(), 'stageId' => WORKFLOW_STAGE_ID_PRODUCTION, 'fileStage' => SUBMISSION_FILE_PROOF), __('editor.submission.selectFiles'))); case 'isComplete': return array(new LinkAction('approveRepresentation', new RemoteActionConfirmationModal(__($data->getIsApproved() ? 'grid.catalogEntry.approvedRepresentation.removeMessage' : 'grid.catalogEntry.approvedRepresentation.message'), __('grid.catalogEntry.approvedRepresentation.title'), $router->url($request, null, null, 'setApproved', null, array('representationId' => $data->getId(), 'newApprovedState' => $data->getIsApproved() ? 0 : 1, 'submissionId' => $data->getSubmissionId())), 'modal_approve'), $data->getIsApproved() ? __('submission.complete') : __('submission.incomplete'), $data->getIsApproved() ? 'complete' : 'incomplete', __('grid.action.setApproval'))); } } else { assert(is_array($data) && isset($data['submissionFile'])); $submissionFile = $data['submissionFile']; switch ($column->getId()) { case 'name': import('lib.pkp.controllers.grid.files.FileNameGridColumn'); $fileNameColumn = new FileNameGridColumn(true, WORKFLOW_STAGE_ID_PRODUCTION, true); return $fileNameColumn->getCellActions($request, $row); case 'isComplete': AppLocale::requireComponents(LOCALE_COMPONENT_PKP_EDITOR); import('lib.pkp.classes.linkAction.request.AjaxAction'); return array(new LinkAction($submissionFile->getViewable() ? 'approved' : 'not_approved', new RemoteActionConfirmationModal(__($submissionFile->getViewable() ? 'editor.submission.proofreading.confirmRemoveCompletion' : 'editor.submission.proofreading.confirmCompletion'), __($submissionFile->getViewable() ? 'editor.submission.proofreading.revokeProofApproval' : 'editor.submission.proofreading.approveProof'), $router->url($request, null, null, 'setProofFileCompletion', null, array('submissionId' => $submissionFile->getSubmissionId(), 'fileId' => $submissionFile->getFileId(), 'revision' => $submissionFile->getRevision(), 'approval' => !$submissionFile->getViewable())), 'modal_approve'), $submissionFile->getViewable() ? __('grid.catalogEntry.availableRepresentation.approved') : __('grid.catalogEntry.availableRepresentation.notApproved'))); } } return parent::getCellActions($request, $row, $column); }
/** * Constructor */ function UserEnrollmentGridCellProvider($pressId) { $this->pressId = $pressId; parent::DataObjectGridCellProvider(); }
/** * Constructor */ function MarketsGridCellProvider() { parent::DataObjectGridCellProvider(); }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LinkAction instances */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { $submission = $row->getData(); $user = $request->getUser(); switch ($column->getId()) { case 'editor': $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */ $editorAssignments = $stageAssignmentDao->getEditorsAssignedToStage($submission->getId(), $submission->getStageId()); $assignment = current($editorAssignments); if (!$assignment) { return array(); } $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */ $editor = $userDao->getById($assignment->getUserId()); import('lib.pkp.classes.linkAction.request.NullAction'); return array(new LinkAction('editor', new NullAction(), $editor->getInitials(), null, $editor->getFullName())); case 'stage': $stageId = $submission->getStageId(); $stage = null; if ($submission->getSubmissionProgress() > 0) { // Submission process not completed. $stage = __('submissions.incomplete'); } switch ($submission->getStatus()) { case STATUS_DECLINED: $stage = __('submission.status.declined'); break; case STATUS_PUBLISHED: $stage = __('submission.status.published'); break; } if (!$stage) { $stage = __(WorkflowStageDAO::getTranslationKeyFromId($stageId)); } import('lib.pkp.classes.linkAction.request.RedirectAction'); $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment = $reviewAssignmentDao->getLastReviewRoundReviewAssignmentByReviewer($submission->getId(), $user->getId()); if (is_a($reviewAssignment, 'ReviewAssignment') && $reviewAssignment->getStageId() == $stageId) { return array(new LinkAction('itemWorkflow', new RedirectAction($request->getDispatcher()->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', $submission->getId())), $stage)); } return array(new LinkAction('itemWorkflow', new RedirectAction(SubmissionsListGridCellProvider::getUrlByUserRoles($request, $submission)), $stage)); } return parent::getCellActions($request, $row, $column, $position); }