00001 <?php
00002
00015
00016
00017
00018 import('submission.sectionEditor.SectionEditorAction');
00019
00020 class EditorAction extends SectionEditorAction {
00030 function assignEditor($articleId, $sectionEditorId, $isEditor = false, $send = false) {
00031 $editorSubmissionDao = &DAORegistry::getDAO('EditorSubmissionDAO');
00032 $editAssignmentDao = &DAORegistry::getDAO('EditAssignmentDAO');
00033 $userDao = &DAORegistry::getDAO('UserDAO');
00034
00035 $user = &Request::getUser();
00036 $journal = &Request::getJournal();
00037
00038 $editorSubmission = &$editorSubmissionDao->getEditorSubmission($articleId);
00039 $sectionEditor = &$userDao->getUser($sectionEditorId);
00040 if (!isset($sectionEditor)) return true;
00041
00042 import('mail.ArticleMailTemplate');
00043 $email = &new ArticleMailTemplate($editorSubmission, 'EDITOR_ASSIGN');
00044
00045 if ($user->getUserId() === $sectionEditorId || !$email->isEnabled() || ($send && !$email->hasErrors())) {
00046 HookRegistry::call('EditorAction::assignEditor', array(&$editorSubmission, &$sectionEditor, &$isEditor, &$email));
00047 if ($email->isEnabled() && $user->getUserId() !== $sectionEditorId) {
00048 $email->setAssoc(ARTICLE_EMAIL_EDITOR_ASSIGN, ARTICLE_EMAIL_TYPE_EDITOR, $sectionEditor->getUserId());
00049 $email->send();
00050 }
00051
00052 $editAssignment = &new EditAssignment();
00053 $editAssignment->setArticleId($articleId);
00054 $editAssignment->setCanEdit(1);
00055 $editAssignment->setCanReview(1);
00056
00057
00058 $editAssignment->setEditorId($sectionEditorId);
00059 $editAssignment->setDateNotified(Core::getCurrentDate());
00060 $editAssignment->setDateUnderway(null);
00061
00062 $editAssignments =& $editorSubmission->getEditAssignments();
00063 array_push($editAssignments, $editAssignment);
00064 $editorSubmission->setEditAssignments($editAssignments);
00065
00066 $editorSubmissionDao->updateEditorSubmission($editorSubmission);
00067
00068
00069 import('article.log.ArticleLog');
00070 import('article.log.ArticleEventLogEntry');
00071 ArticleLog::logEvent($articleId, ARTICLE_LOG_EDITOR_ASSIGN, ARTICLE_LOG_TYPE_EDITOR, $sectionEditorId, 'log.editor.editorAssigned', array('editorName' => $sectionEditor->getFullName(), 'articleId' => $articleId));
00072 return true;
00073 } else {
00074 if (!Request::getUserVar('continued')) {
00075 $email->addRecipient($sectionEditor->getEmail(), $sectionEditor->getFullName());
00076 $paramArray = array(
00077 'editorialContactName' => $sectionEditor->getFullName(),
00078 'editorUsername' => $sectionEditor->getUsername(),
00079 'editorPassword' => $sectionEditor->getPassword(),
00080 'editorialContactSignature' => $user->getContactSignature(),
00081 'submissionUrl' => Request::url(null, $isEditor?'editor':'sectionEditor', 'submissionReview', $articleId),
00082 'submissionEditingUrl' => Request::url(null, $isEditor?'editor':'sectionEditor', 'submissionReview', $articleId)
00083 );
00084 $email->assignParams($paramArray);
00085 }
00086 $email->displayEditForm(Request::url(null, null, 'assignEditor', 'send'), array('articleId' => $articleId, 'editorId' => $sectionEditorId));
00087 return false;
00088 }
00089 }
00090
00095 function expediteSubmission($article) {
00096 $user =& Request::getUser();
00097
00098 import('submission.editor.EditorAction');
00099 import('submission.sectionEditor.SectionEditorAction');
00100 import('submission.proofreader.ProofreaderAction');
00101
00102 $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO');
00103 $sectionEditorSubmission =& $sectionEditorSubmissionDao->getSectionEditorSubmission($article->getArticleId());
00104
00105 $submissionFile = $sectionEditorSubmission->getSubmissionFile();
00106
00107
00108 import('article.log.ArticleLog');
00109 import('article.log.ArticleEventLogEntry');
00110 ArticleLog::logEvent($article->getArticleId(), ARTICLE_LOG_EDITOR_EXPEDITE, ARTICLE_LOG_TYPE_EDITOR, $user->getUserId(), 'log.editor.submissionExpedited', array('editorName' => $user->getFullName(), 'articleId' => $article->getArticleId()));
00111
00112
00113 $editAssignments =& $sectionEditorSubmission->getEditAssignments();
00114 if (empty($editAssignments)) {
00115
00116 EditorAction::assignEditor($article->getArticleId(), $user->getUserId(), true);
00117 }
00118
00119
00120 $sectionEditorSubmission =& $sectionEditorSubmissionDao->getSectionEditorSubmission($article->getArticleId());
00121 if (!$sectionEditorSubmission->getCopyeditFile()) {
00122 SectionEditorAction::recordDecision($sectionEditorSubmission, SUBMISSION_EDITOR_DECISION_ACCEPT);
00123 $reviewFile = $sectionEditorSubmission->getReviewFile();
00124 SectionEditorAction::setCopyeditFile($sectionEditorSubmission, $reviewFile->getFileId(), $reviewFile->getRevision());
00125 }
00126
00127
00128 $sectionEditorSubmission =& $sectionEditorSubmissionDao->getSectionEditorSubmission($article->getArticleId());
00129 $galleys =& $sectionEditorSubmission->getGalleys();
00130 if (empty($galleys)) {
00131
00132 import('file.ArticleFileManager');
00133 $copyeditFile =& $sectionEditorSubmission->getCopyeditFile();
00134 $fileType = $copyeditFile->getFileType();
00135 $articleFileManager =& new ArticleFileManager($article->getArticleId());
00136 $fileId = $articleFileManager->copyPublicFile($copyeditFile->getFilePath(), $fileType);
00137
00138 if (strstr($fileType, 'html')) {
00139 $galley =& new ArticleHTMLGalley();
00140 } else {
00141 $galley =& new ArticleGalley();
00142 }
00143 $galley->setArticleId($article->getArticleId());
00144 $galley->setFileId($fileId);
00145 $galley->setLocale(Locale::getLocale());
00146
00147 if ($galley->isHTMLGalley()) {
00148 $galley->setLabel('HTML');
00149 } else {
00150 if (strstr($fileType, 'pdf')) {
00151 $galley->setLabel('PDF');
00152 } else if (strstr($fileType, 'postscript')) {
00153 $galley->setLabel('Postscript');
00154 } else if (strstr($fileType, 'xml')) {
00155 $galley->setLabel('XML');
00156 } else {
00157 $galley->setLabel(Locale::translate('common.untitled'));
00158 }
00159 }
00160
00161 $galleyDao =& DAORegistry::getDAO('ArticleGalleyDAO');
00162 $galleyDao->insertGalley($galley);
00163 }
00164
00165 $sectionEditorSubmission->setStatus(STATUS_QUEUED);
00166 $sectionEditorSubmissionDao->updateSectionEditorSubmission($sectionEditorSubmission);
00167 }
00168 }
00169
00170 ?>