[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
classes
/
submissionFile
/
[
Home
]
File: Repository.php
<?php /** * @file classes/submissionFile/Repository.php * * Copyright (c) 2014-2020 Simon Fraser University * Copyright (c) 2000-2020 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class Repository * * @brief A repository to find and manage submission files. */ namespace APP\submissionFile; use APP\core\Application; use APP\facades\Repo; use Exception; use Illuminate\Support\Facades\App; use PKP\observers\events\SubmissionFileDeleted; use PKP\plugins\Hook; use PKP\submissionFile\Collector; use PKP\submissionFile\Repository as BaseRepository; use PKP\submissionFile\SubmissionFile; class Repository extends BaseRepository { public array $reviewFileStages = [ SubmissionFile::SUBMISSION_FILE_REVIEW_REVISION, SubmissionFile::SUBMISSION_FILE_REVIEW_ATTACHMENT, SubmissionFile::SUBMISSION_FILE_REVIEW_FILE, ]; public function getCollector(): Collector { return App::makeWith(Collector::class, ['dao' => $this->dao]); } public function add(SubmissionFile $submissionFile): int { $galley = null; if ($submissionFile->getData('assocType') === Application::ASSOC_TYPE_REPRESENTATION) { $galley = Repo::galley()->get($submissionFile->getData('assocId')); if (!$galley) { throw new Exception('Galley not found when adding submission file.'); } } $submissionFileId = parent::add($submissionFile); if ($galley) { Repo::galley()->edit($galley, ['submissionFileId' => $submissionFile->getId()]); } return $submissionFileId; } public function delete(SubmissionFile $submissionFile): void { $this->deleteRelatedSubmissionFileObjects($submissionFile); parent::delete($submissionFile); } /** * Delete related objects when a submission file is deleted */ public function deleteRelatedSubmissionFileObjects(SubmissionFile $submissionFile): void { // Remove galley associations and update search index if ($submissionFile->getData('assocType') === Application::ASSOC_TYPE_REPRESENTATION) { $galley = Repo::galley()->get((int)$submissionFile->getData('assocId')); if ($galley && $galley->getData('submissionFileId') == $submissionFile->getId()) { $galley->_data['submissionFileId'] = null; // Work around pkp/pkp-lib#5740 Repo::galley()->edit($galley, []); } event( new SubmissionFileDeleted( (int)$submissionFile->getData('submissionId'), (int)$submissionFile->getId() ) ); } } public function getFileStages(): array { $stages = [ SubmissionFile::SUBMISSION_FILE_SUBMISSION, SubmissionFile::SUBMISSION_FILE_NOTE, SubmissionFile::SUBMISSION_FILE_REVIEW_FILE, SubmissionFile::SUBMISSION_FILE_REVIEW_ATTACHMENT, SubmissionFile::SUBMISSION_FILE_FINAL, SubmissionFile::SUBMISSION_FILE_COPYEDIT, SubmissionFile::SUBMISSION_FILE_PROOF, SubmissionFile::SUBMISSION_FILE_PRODUCTION_READY, SubmissionFile::SUBMISSION_FILE_ATTACHMENT, SubmissionFile::SUBMISSION_FILE_REVIEW_REVISION, SubmissionFile::SUBMISSION_FILE_DEPENDENT, SubmissionFile::SUBMISSION_FILE_QUERY, ]; Hook::call('SubmissionFile::fileStages', [&$stages]); return $stages; } }