/** * Section editor completes final copyedit (copyeditors disabled). * @param $sectionEditorSubmission object * @param $request object */ function completeFinalCopyedit($sectionEditorSubmission, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $journal =& $request->getJournal(); $user =& $request->getUser(); // This is only allowed if copyeditors are disabled. if ($journal->getSetting('useCopyeditors')) { return; } if (HookRegistry::call('SectionEditorAction::completeFinalCopyedit', array(&$sectionEditorSubmission))) { return; } $copyeditSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_FINAL', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getId()); $copyeditSignoff->setDateCompleted(Core::getCurrentDate()); $signoffDao->updateObject($copyeditSignoff); if ($copyEdFile = $sectionEditorSubmission->getFileBySignoffType('SIGNOFF_COPYEDITING_FINAL')) { // Set initial layout version to final copyedit version $layoutSignoff = $signoffDao->build('SIGNOFF_LAYOUT', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getId()); if (!$layoutSignoff->getFileId()) { import('classes.file.ArticleFileManager'); $articleFileManager = new ArticleFileManager($sectionEditorSubmission->getId()); if ($layoutFileId = $articleFileManager->copyToLayoutFile($copyEdFile->getFileId(), $copyEdFile->getRevision())) { $layoutSignoff->setFileId($layoutFileId); $signoffDao->updateObject($layoutSignoff); } } } // Add log entry import('classes.article.log.ArticleLog'); ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_COPYEDIT_FINAL, 'log.copyedit.finalEditComplete', array('copyeditorName' => $user->getFullName())); }
/** * Copyeditor completes final copyedit. * @param $copyeditorSubmission object * @param $send boolean * @param $request object */ function completeFinalCopyedit($copyeditorSubmission, $send, $request) { $copyeditorSubmissionDao =& DAORegistry::getDAO('CopyeditorSubmissionDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $journal =& $request->getJournal(); $finalSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_FINAL', ASSOC_TYPE_ARTICLE, $copyeditorSubmission->getId()); if ($finalSignoff->getDateCompleted() != null) { return true; } $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($copyeditorSubmission, 'COPYEDIT_FINAL_COMPLETE'); $editAssignments = $copyeditorSubmission->getEditAssignments(); if (!$email->isEnabled() || $send && !$email->hasErrors()) { HookRegistry::call('CopyeditorAction::completeFinalCopyedit', array(&$copyeditorSubmission, &$editAssignments, &$email)); if ($email->isEnabled()) { $email->send($request); } $finalSignoff->setDateCompleted(Core::getCurrentDate()); $signoffDao->updateObject($finalSignoff); if ($copyEdFile = $copyeditorSubmission->getFileBySignoffType('SIGNOFF_COPYEDITING_FINAL')) { // Set initial layout version to final copyedit version $layoutSignoff = $signoffDao->build('SIGNOFF_LAYOUT', ASSOC_TYPE_ARTICLE, $copyeditorSubmission->getId()); if (!$layoutSignoff->getFileId()) { import('classes.file.ArticleFileManager'); $articleFileManager = new ArticleFileManager($copyeditorSubmission->getId()); if ($layoutFileId = $articleFileManager->copyToLayoutFile($copyEdFile->getFileId(), $copyEdFile->getRevision())) { $layoutSignoff->setFileId($layoutFileId); $signoffDao->updateObject($layoutSignoff); } } } // Add log entry import('classes.article.log.ArticleLog'); import('classes.article.log.ArticleEventLogEntry'); ArticleLog::logEvent($request, $copyeditorSubmission, ARTICLE_LOG_COPYEDIT_FINAL, 'log.copyedit.finalEditComplete', array('copyeditorName' => $user->getFullName())); return true; } else { if (!$request->getUserVar('continued')) { $assignedSectionEditors = $email->toAssignedEditingSectionEditors($copyeditorSubmission->getId()); $assignedEditors = $email->ccAssignedEditors($copyeditorSubmission->getId()); if (empty($assignedSectionEditors) && empty($assignedEditors)) { $email->addRecipient($journal->getSetting('contactEmail'), $journal->getSetting('contactName')); $paramArray = array('editorialContactName' => $journal->getSetting('contactName'), 'copyeditorName' => $user->getFullName()); } else { $editorialContact = array_shift($assignedSectionEditors); if (!$editorialContact) { $editorialContact = array_shift($assignedEditors); } $paramArray = array('editorialContactName' => $editorialContact->getEditorFullName(), 'copyeditorName' => $user->getFullName()); } $email->assignParams($paramArray); } $email->displayEditForm($request->url(null, 'copyeditor', 'completeFinalCopyedit', 'send'), array('articleId' => $copyeditorSubmission->getId())); return false; } }