17 import(
'lib.pkp.controllers.wizard.fileUpload.form.PKPSubmissionFilesUploadBaseForm');
37 function __construct($request, $submissionId, $stageId, $uploaderRoles, $fileStage,
38 $revisionOnly =
false, $reviewRound =
null, $revisedFileId =
null, $assocType =
null, $assocId =
null) {
41 assert(is_null($uploaderRoles) || (is_array($uploaderRoles) && count($uploaderRoles) >= 1));
42 $this->_uploaderRoles = $uploaderRoles;
47 $request,
'controllers/wizard/fileUpload/form/fileUploadForm.tpl',
48 $submissionId, $stageId, $fileStage, $revisionOnly, $reviewRound, $revisedFileId, $assocType, $assocId
52 if ($fileStage == SUBMISSION_FILE_REVIEW_ATTACHMENT) {
53 $this->
setData(
'isReviewAttachment',
true);
66 assert(!is_null($this->_uploaderRoles));
79 return parent::readInputData();
85 function validate($callHooks =
true) {
89 assert($revisedFileId > 0);
94 $router = $request->getRouter();
95 $context = $router->getContext($request);
97 $this->
getData(
'fileStage') != SUBMISSION_FILE_REVIEW_ATTACHMENT and
102 $this,
'genreId', FORM_VALIDATOR_REQUIRED_VALUE,
103 'submission.upload.noGenre',
104 function($genreId) use ($context) {
106 return is_a($genreDao->getById($genreId, $context->getId()),
'Genre');
111 return parent::validate($callHooks);
117 function fetch($request, $template =
null, $display =
false) {
120 $this->
setData(
'submissionFileGenres', $genreList);
122 return parent::fetch($request, $template, $display);
130 function execute(...$functionParams) {
133 if ($revisedFileId) {
138 $fileGenre = $this->
getData(
'genreId') ? (int)$this->
getData(
'genreId') :
null;
143 $user = $request->getUser();
144 assert(is_a($user,
'User'));
146 $assocType = $this->
getData(
'assocType') ? (int) $this->
getData(
'assocType') :
null;
147 $assocId = $this->
getData(
'assocId') ? (int) $this->
getData(
'assocId') :
null;
148 $fileStage = $this->
getData(
'fileStage');
151 import(
'lib.pkp.classes.file.SubmissionFileManager');
153 $request->getContext()->getId(),
154 $this->getData(
'submissionId')
156 $submissionFile = $submissionFileManager->uploadSubmissionFile(
157 'uploadedFile', $fileStage, $user->getId(),
158 $revisedFileId, $fileGenre, $assocType, $assocId
160 if (!$submissionFile)
return null;
163 import(
'lib.pkp.classes.log.SubmissionFileLog');
164 import(
'lib.pkp.classes.log.SubmissionFileEventLogEntry');
168 $revisedFileId?SUBMISSION_LOG_FILE_REVISION_UPLOAD:SUBMISSION_LOG_FILE_UPLOAD,
169 $revisedFileId?
'submission.event.revisionUploaded':
'submission.event.fileUploaded',
171 'fileStage' => $fileStage,
172 'revisedFileId' => $revisedFileId,
173 'fileId' => $submissionFile->getFileId(),
174 'fileRevision' => $submissionFile->getRevision(),
175 'originalFileName' => $submissionFile->getOriginalFileName(),
176 'submissionId' => $this->getData(
'submissionId'),
177 'username' => $user->getUsername()
181 $hookResult = parent::execute($submissionFile, ...$functionParams);
186 return $submissionFile;
199 $context = $request->getContext();
201 $dependentFilesOnly = $request->getUserVar(
'dependentFilesOnly') ? true :
false;
202 $genres = $genreDao->getByDependenceAndContextId($dependentFilesOnly, $context->getId());
206 $genreList = array();
207 while ($genre = $genres->next()) {
208 $genreList[$genre->getId()] = $genre->getLocalizedName();