_assocId = (int) $assocId; parent::__construct(SubmissionFile::SUBMISSION_FILE_DEPENDENT); } /** * @copydoc GridDataProvider::loadData() */ public function loadData($filter = []) { // Retrieve all dependent files for the given file stage and original submission file id (i.e. the main galley/production file) $submissionFiles = Repo::submissionFile() ->getCollector() ->filterByAssoc( Application::ASSOC_TYPE_SUBMISSION_FILE, [$this->getAssocId()] )->filterBySubmissionIds([$this->getSubmission()->getId()]) ->filterByFileStages([$this->getFileStage()]) ->includeDependentFiles() ->getMany() ->toArray(); return $this->prepareSubmissionFileData($submissionFiles, $this->_viewableOnly, $filter); } /** * Overridden from SubmissionFilesGridDataProvider - we need to also include the assocType and assocId * * @copydoc FilesGridDataProvider::getAddFileAction() */ public function getAddFileAction($request) { $submission = $this->getSubmission(); return new AddFileLinkAction( $request, $submission->getId(), $this->getStageId(), $this->getUploaderRoles(), $this->getFileStage(), Application::ASSOC_TYPE_SUBMISSION_FILE, $this->getAssocId(), null, null, $this->isDependent() ); } /** * returns the id of the parent submission file for these dependent files. * * @return int */ public function getAssocId() { return $this->_assocId; } /** * Convenience function to make the argument to the AddFileLinkAction more obvious. * * @return true */ public function isDependent() { return true; } }