/**
* Set the approval status for a file.
* @param $args array
* @param $request PKPRequest
*/
function setProofFileCompletion($args, $request)
{
$submission = $this->getSubmission();
$submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
import('lib.pkp.classes.submission.SubmissionFile');
// Constants
$submissionFile = $submissionFileDao->getRevision($request->getUserVar('fileId'), $request->getUserVar('revision'), SUBMISSION_FILE_PROOF, $submission->getId());
$confirmationText = __('editor.submission.proofreading.confirmRemoveCompletion');
if ($request->getUserVar('approval')) {
$confirmationText = __('editor.submission.proofreading.confirmCompletion');
}
if ($submissionFile && $submissionFile->getAssocType() == ASSOC_TYPE_REPRESENTATION) {
import('lib.pkp.controllers.grid.pubIds.form.PKPAssignPublicIdentifiersForm');
$formTemplate = $this->getAssignPublicIdentifiersFormTemplate();
$assignPublicIdentifiersForm = new PKPAssignPublicIdentifiersForm($formTemplate, $submissionFile, $request->getUserVar('approval'), $confirmationText);
if (!$request->getUserVar('confirmed')) {
// Display assign pub ids modal
$assignPublicIdentifiersForm->initData($args, $request);
return new JSONMessage(true, $assignPublicIdentifiersForm->fetch($request));
}
if ($request->getUserVar('approval')) {
// Asign pub ids
$assignPublicIdentifiersForm->readInputData();
$assignPublicIdentifiersForm->execute($request);
}
// Update the approval flag
$submissionFile->setViewable($request->getUserVar('approval') ? 1 : 0);
$submissionFileDao->updateObject($submissionFile);
// Log the event
import('lib.pkp.classes.log.SubmissionFileLog');
import('lib.pkp.classes.log.SubmissionFileEventLogEntry');
// constants
$user = $request->getUser();
SubmissionFileLog::logEvent($request, $submissionFile, SUBMISSION_LOG_FILE_SIGNOFF_SIGNOFF, 'submission.event.signoffSignoff', array('file' => $submissionFile->getOriginalFileName(), 'name' => $user->getFullName(), 'username' => $user->getUsername()));
return DAO::getDataChangedEvent();
}
return new JSONMessage(false);
}