_submission = $submission; } // // Template methods from GridCellProvider // /** * Extracts variables for a given column from a data element * so that they may be assigned to template before rendering. * * @param \PKP\controllers\grid\GridRow $row * @param GridColumn $column * * @return array */ public function getTemplateVarsFromRowColumn($row, $column) { $element = $row->getData(); $columnId = $column->getId(); assert($element instanceof \PKP\core\DataObject && !empty($columnId)); /** @var Note $element */ $user = $element->getUser(); $datetimeFormatShort = PKPString::convertStrftimeFormat(Application::get()->getRequest()->getContext()->getLocalizedDateTimeFormatShort()); switch ($columnId) { case 'from': return ['label' => ($user ? $user->getUsername() : '—') . '
' . date($datetimeFormatShort, strtotime($element->getDateCreated()))]; } return parent::getTemplateVarsFromRowColumn($row, $column); } /** * @copydoc GridCellProvider::getCellActions() */ public function getCellActions($request, $row, $column, $position = GridHandler::GRID_ACTION_POSITION_DEFAULT) { switch ($column->getId()) { case 'contents': $submissionFiles = Repo::submissionFile() ->getCollector() ->filterByAssoc( Application::ASSOC_TYPE_NOTE, [$row->getData()->getId()] )->filterBySubmissionIds([$this->_submission->getId()]) ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_QUERY]) ->getMany(); $actions = []; foreach ($submissionFiles as $submissionFile) { $actions[] = new DownloadFileLinkAction($request, $submissionFile, $request->getUserVar('stageId')); } return $actions; } return parent::getCellActions($request, $row, $column, $position); } }