diff --git a/classes/article/ArticleDAO.inc.php b/classes/article/ArticleDAO.inc.php index 6869704517e..e22bf784927 100644 --- a/classes/article/ArticleDAO.inc.php +++ b/classes/article/ArticleDAO.inc.php @@ -356,14 +356,11 @@ function deleteArticleById($articleId) { $articleSearchDao->deleteArticleKeywords($articleId); $articleEventLogDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - $articleEventLogDao->deleteArticleLogEntries($articleId); + $articleEventLogDao->deleteByAssoc(ASSOC_TYPE_ARTICLE, $articleId); $articleEmailLogDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); $articleEmailLogDao->deleteArticleLogEntries($articleId); - $articleEventLogDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - $articleEventLogDao->deleteArticleLogEntries($articleId); - $suppFileDao =& DAORegistry::getDAO('SuppFileDAO'); $suppFileDao->deleteSuppFilesByArticle($articleId); diff --git a/classes/article/log/ArticleEmailLogDAO.inc.php b/classes/article/log/ArticleEmailLogDAO.inc.php index 0295687b30c..eebdf1d6f16 100644 --- a/classes/article/log/ArticleEmailLogDAO.inc.php +++ b/classes/article/log/ArticleEmailLogDAO.inc.php @@ -8,191 +8,22 @@ * * @class ArticleEmailLogDAO * @ingroup article_log - * @see ArticleEmailLogEntry, ArticleLog + * @see EmailLogDAO * - * @brief Class for inserting/accessing article email log entries. + * @brief Extension to EmailLogDAO for article-specific log entries. */ -// $Id$ +import('lib.pkp.classes.log.EmailLogDAO'); +import('classes.article.log.ArticleEmailLogEntry'); -import ('classes.article.log.ArticleEmailLogEntry'); - -class ArticleEmailLogDAO extends DAO { - /** - * Retrieve a log entry by ID. - * @param $logId int - * @param $articleId int optional - * @return ArticleEmailLogEntry - */ - function &getLogEntry($logId, $articleId = null) { - if (isset($articleId)) { - $result =& $this->retrieve( - 'SELECT * FROM article_email_log WHERE log_id = ? AND article_id = ?', - array($logId, $articleId) - ); - } else { - $result =& $this->retrieve( - 'SELECT * FROM article_email_log WHERE log_id = ?', $logId - ); - } - - $returner = null; - if ($result->RecordCount() != 0) { - $returner =& $this->_returnLogEntryFromRow($result->GetRowAssoc(false)); - } - - $result->Close(); - unset($result); - - return $returner; - } - - /** - * Retrieve all log entries for an article. - * @param $articleId int - * @return DAOResultFactory containing matching ArticleEmailLogEntry ordered by sequence - */ - function &getArticleLogEntries($articleId, $rangeInfo = null) { - $returner =& $this->getArticleLogEntriesByAssoc($articleId, null, null, $rangeInfo); - return $returner; - } - - /** - * Retrieve all log entries for an article matching the specified association. - * @param $articleId int - * @param $assocType int - * @param $assocId int - * @return DAOResultFactory containing matching ArticleEventLogEntry ordered by sequence - */ - function &getArticleLogEntriesByAssoc($articleId, $assocType = null, $assocId = null, $rangeInfo = null) { - $params = array($articleId); - if (isset($assocType)) { - array_push($params, $assocType); - if (isset($assocId)) { - array_push($params, $assocId); - } - } - - $result =& $this->retrieveRange( - 'SELECT * FROM article_email_log WHERE article_id = ?' . (isset($assocType) ? ' AND assoc_type = ?' . (isset($assocId) ? ' AND assoc_id = ?' : '') : '') . ' ORDER BY log_id DESC', - $params, $rangeInfo - ); - - $returner = new DAOResultFactory($result, $this, '_returnLogEntryFromRow'); - return $returner; - } - - /** - * Internal function to return an ArticleEmailLogEntry object from a row. - * @param $row array - * @return ArticleEmailLogEntry - */ - function &_returnLogEntryFromRow(&$row) { - $entry = new ArticleEmailLogEntry(); - $entry->setId($row['log_id']); - $entry->setArticleId($row['article_id']); - $entry->setSenderId($row['sender_id']); - $entry->setDateSent($this->datetimeFromDB($row['date_sent'])); - $entry->setIPAddress($row['ip_address']); - $entry->setEventType($row['event_type']); - $entry->setAssocType($row['assoc_type']); - $entry->setAssocId($row['assoc_id']); - $entry->setFrom($row['from_address']); - $entry->setRecipients($row['recipients']); - $entry->setCcs($row['cc_recipients']); - $entry->setBccs($row['bcc_recipients']); - $entry->setSubject($row['subject']); - $entry->setBody($row['body']); - - HookRegistry::call('ArticleEmailLogDAO::_returnLogEntryFromRow', array(&$entry, &$row)); - - return $entry; - } - - /** - * Insert a new log entry. - * @param $entry ArticleEmailLogEntry - */ - function insertLogEntry(&$entry) { - if ($entry->getDateSent() == null) { - $entry->setDateSent(Core::getCurrentDate()); - } - if ($entry->getIPAddress() == null) { - $entry->setIPAddress(Request::getRemoteAddr()); - } - $this->update( - sprintf('INSERT INTO article_email_log - (article_id, sender_id, date_sent, ip_address, event_type, assoc_type, assoc_id, from_address, recipients, cc_recipients, bcc_recipients, subject, body) - VALUES - (?, ?, %s, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', - $this->datetimeToDB($entry->getDateSent())), - array( - $entry->getArticleId(), - $entry->getSenderId(), - $entry->getIPAddress(), - $entry->getEventType(), - $entry->getAssocType(), - $entry->getAssocId(), - $entry->getFrom(), - $entry->getRecipients(), - $entry->getCcs(), - $entry->getBccs(), - $entry->getSubject(), - $entry->getBody() - ) - ); - - $entry->setId($this->getInsertLogId()); - return $entry->getId(); - } - - /** - * Delete a single log entry for an article. - * @param $logId int - * @param $articleId int optional - */ - function deleteLogEntry($logId, $articleId = null) { - if (isset($articleId)) { - return $this->update( - 'DELETE FROM article_email_log WHERE log_id = ? AND article_id = ?', - array($logId, $articleId) - ); - - } else { - return $this->update( - 'DELETE FROM article_email_log WHERE log_id = ?', $logId - ); - } - } - - /** - * Delete all log entries for an article. - * @param $articleId int - */ - function deleteArticleLogEntries($articleId) { - return $this->update( - 'DELETE FROM article_email_log WHERE article_id = ?', $articleId - ); - } - - /** - * Transfer all article log entries to another user. - * @param $articleId int - */ - function transferArticleLogEntries($oldUserId, $newUserId) { - return $this->update( - 'UPDATE article_email_log SET sender_id = ? WHERE sender_id = ?', - array($newUserId, $oldUserId) - ); +class ArticleEmailLogDAO extends EmailLogDAO { + function ArticleEmailLogDAO() { + parent::EmailLogDAO(); } - /** - * Get the ID of the last inserted log entry. - * @return int - */ - function getInsertLogId() { - return $this->getInsertId('article_email_log', 'log_id'); + function newDataObject() { + return new ArticleEmailLogEntry(); } } diff --git a/classes/article/log/ArticleEmailLogEntry.inc.php b/classes/article/log/ArticleEmailLogEntry.inc.php index 26413529e6b..c1792bcc746 100644 --- a/classes/article/log/ArticleEmailLogEntry.inc.php +++ b/classes/article/log/ArticleEmailLogEntry.inc.php @@ -10,339 +10,59 @@ * @ingroup article_log * @see ArticleEmailLogDAO * - * @brief Describes an entry in the article email log. + * @brief Extension to EmailLogEntry for article-specific log entries. */ -// $Id$ +import('lib.pkp.classes.log.EmailLogEntry'); -// Email associative types. All types must be defined here -define('ARTICLE_EMAIL_TYPE_DEFAULT', 0); -define('ARTICLE_EMAIL_TYPE_AUTHOR', 0x01); -define('ARTICLE_EMAIL_TYPE_EDITOR', 0x02); -define('ARTICLE_EMAIL_TYPE_REVIEW', 0x03); -define('ARTICLE_EMAIL_TYPE_COPYEDIT', 0x04); -define('ARTICLE_EMAIL_TYPE_LAYOUT', 0x05); -define('ARTICLE_EMAIL_TYPE_PROOFREAD', 0x06); +// Editor events 0x30000000 +define('ARTICLE_EMAIL_EDITOR_NOTIFY_AUTHOR', 0x30000001); +define('ARTICLE_EMAIL_EDITOR_ASSIGN', 0x30000002); +define('ARTICLE_EMAIL_EDITOR_NOTIFY_AUTHOR_UNSUITABLE', 0x30000003); -// General events 0x10000000 +// Reviewer events 0x40000000 +define('ARTICLE_EMAIL_REVIEW_NOTIFY_REVIEWER', 0x40000001); +define('ARTICLE_EMAIL_REVIEW_THANK_REVIEWER', 0x40000002); +define('ARTICLE_EMAIL_REVIEW_CANCEL', 0x40000003); +define('ARTICLE_EMAIL_REVIEW_REMIND', 0x40000004); +define('ARTICLE_EMAIL_REVIEW_CONFIRM', 0x40000005); +define('ARTICLE_EMAIL_REVIEW_DECLINE', 0x40000006); +define('ARTICLE_EMAIL_REVIEW_COMPLETE', 0x40000007); +define('ARTICLE_EMAIL_REVIEW_CONFIRM_ACK', 0x40000008); -// Author events 0x20000000 - -// Editor events 0x30000000 -define('ARTICLE_EMAIL_EDITOR_NOTIFY_AUTHOR', 0x30000001); -define('ARTICLE_EMAIL_EDITOR_ASSIGN', 0x30000002); -define('ARTICLE_EMAIL_EDITOR_NOTIFY_AUTHOR_UNSUITABLE', 0x30000003); - -// Reviewer events 0x40000000 -define('ARTICLE_EMAIL_REVIEW_NOTIFY_REVIEWER', 0x40000001); -define('ARTICLE_EMAIL_REVIEW_THANK_REVIEWER', 0x40000002); -define('ARTICLE_EMAIL_REVIEW_CANCEL', 0x40000003); -define('ARTICLE_EMAIL_REVIEW_REMIND', 0x40000004); -define('ARTICLE_EMAIL_REVIEW_CONFIRM', 0x40000005); -define('ARTICLE_EMAIL_REVIEW_DECLINE', 0x40000006); -define('ARTICLE_EMAIL_REVIEW_COMPLETE', 0x40000007); -define('ARTICLE_EMAIL_REVIEW_CONFIRM_ACK', 0x40000008); - -// Copyeditor events 0x50000000 -define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_COPYEDITOR', 0x50000001); -define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR', 0x50000002); -define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL', 0x50000003); +// Copyeditor events 0x50000000 +define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_COPYEDITOR', 0x50000001); +define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR', 0x50000002); +define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL', 0x50000003); define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_COMPLETE', 0x50000004); -define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR_COMPLETE', 0x50000005); -define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL_COMPLETE', 0x50000006); -define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_ACKNOWLEDGE', 0x50000007); +define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR_COMPLETE', 0x50000005); +define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL_COMPLETE', 0x50000006); +define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_ACKNOWLEDGE', 0x50000007); define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR_ACKNOWLEDGE', 0x50000008); define('ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL_ACKNOWLEDGE', 0x50000009); -// Proofreader events 0x60000000 -define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_AUTHOR', 0x60000001); -define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_AUTHOR_COMPLETE', 0x60000002); -define('ARTICLE_EMAIL_PROOFREAD_THANK_AUTHOR', 0x60000003); -define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_PROOFREADER', 0x60000004); +// Proofreader events 0x60000000 +define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_AUTHOR', 0x60000001); +define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_AUTHOR_COMPLETE', 0x60000002); +define('ARTICLE_EMAIL_PROOFREAD_THANK_AUTHOR', 0x60000003); +define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_PROOFREADER', 0x60000004); define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_PROOFREADER_COMPLETE', 0x60000005); -define('ARTICLE_EMAIL_PROOFREAD_THANK_PROOFREADER', 0x60000006); -define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_LAYOUTEDITOR', 0x60000007); +define('ARTICLE_EMAIL_PROOFREAD_THANK_PROOFREADER', 0x60000006); +define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_LAYOUTEDITOR', 0x60000007); define('ARTICLE_EMAIL_PROOFREAD_NOTIFY_LAYOUTEDITOR_COMPLETE', 0x60000008); -define('ARTICLE_EMAIL_PROOFREAD_THANK_LAYOUTEDITOR', 0x60000009); - -// Layout events 0x70000000 -define('ARTICLE_EMAIL_LAYOUT_NOTIFY_EDITOR', 0x70000001); -define('ARTICLE_EMAIL_LAYOUT_THANK_EDITOR', 0x70000002); -define('ARTICLE_EMAIL_LAYOUT_NOTIFY_COMPLETE', 0x70000003); +define('ARTICLE_EMAIL_PROOFREAD_THANK_LAYOUTEDITOR', 0x60000009); -class ArticleEmailLogEntry extends DataObject { +// Layout events 0x70000000 +define('ARTICLE_EMAIL_LAYOUT_NOTIFY_EDITOR', 0x70000001); +define('ARTICLE_EMAIL_LAYOUT_THANK_EDITOR', 0x70000002); +define('ARTICLE_EMAIL_LAYOUT_NOTIFY_COMPLETE', 0x70000003); +class ArticleEmailLogEntry extends EmailLogEntry { /** - * Constructor. + * Constructor */ function ArticleEmailLogEntry() { - parent::DataObject(); - } - - // - // Get/set methods - // - - /** - * Get ID of log entry. - * @return int - */ - function getLogId() { - if (Config::getVar('debug', 'deprecation_warnings')) trigger_error('Deprecated function.'); - return $this->getId(); - } - - /** - * Set ID of log entry. - * @param $logId int - */ - function setLogId($logId) { - if (Config::getVar('debug', 'deprecation_warnings')) trigger_error('Deprecated function.'); - return $this->setId($logId); - } - - /** - * Get ID of article. - * @return int - */ - function getArticleId() { - return $this->getData('articleId'); - } - - /** - * Set ID of article. - * @param $articleId int - */ - function setArticleId($articleId) { - return $this->setData('articleId', $articleId); + parent::EmailLogEntry(); } - - /** - * Get user ID of sender. - * @return int - */ - function getSenderId() { - return $this->getData('senderId'); - } - - /** - * Set user ID of sender. - * @param $senderId int - */ - function setSenderId($senderId) { - return $this->setData('senderId', $senderId); - } - - /** - * Get date email was sent. - * @return datestamp - */ - function getDateSent() { - return $this->getData('dateSent'); - } - - /** - * Set date email was sent. - * @param $dateSent datestamp - */ - function setDateSent($dateSent) { - return $this->setData('dateSent', $dateSent); - } - - /** - * Get IP address of sender. - * @return string - */ - function getIPAddress() { - return $this->getData('ipAddress'); - } - - /** - * Set IP address of sender. - * @param $ipAddress string - */ - function setIPAddress($ipAddress) { - return $this->setData('ipAddress', $ipAddress); - } - - /** - * Get event type. - * @return int - */ - function getEventType() { - return $this->getData('eventType'); - } - - /** - * Set event type. - * @param $eventType int - */ - function setEventType($eventType) { - return $this->setData('eventType', $eventType); - } - - /** - * Get associated type. - * @return int - */ - function getAssocType() { - return $this->getData('assocType'); - } - - /** - * Set associated type. - * @param $assocType int - */ - function setAssocType($assocType) { - return $this->setData('assocType', $assocType); - } - - /** - * Get associated ID. - * @return int - */ - function getAssocId() { - return $this->getData('assocId'); - } - - /** - * Set associated ID. - * @param $assocId int - */ - function setAssocId($assocId) { - return $this->setData('assocId', $assocId); - } - - /** - * Return the full name of the sender (not necessarily the same as the from address). - * @return string - */ - function getSenderFullName() { - $senderFullName =& $this->getData('senderFullName'); - - if(!isset($senderFullName)) { - $userDao =& DAORegistry::getDAO('UserDAO'); - $senderFullName = $userDao->getUserFullName($this->getSenderId(), true); - } - - return $senderFullName ? $senderFullName : ''; - } - - /** - * Return the email address of sender. - * @return string - */ - function getSenderEmail() { - $senderEmail =& $this->getData('senderEmail'); - - if(!isset($senderEmail)) { - $userDao =& DAORegistry::getDAO('UserDAO'); - $senderEmail = $userDao->getUserEmail($this->getSenderId(), true); - } - - return $senderEmail ? $senderEmail : ''; - } - - /** - * Return string representation of the associated type. - * @return string - */ - function getAssocTypeString() { - switch ($this->getData('assocType')) { - case ARTICLE_LOG_TYPE_AUTHOR: - return 'AUT'; - case ARTICLE_LOG_TYPE_EDITOR: - return 'EDR'; - case ARTICLE_LOG_TYPE_REVIEW: - return 'REV'; - case ARTICLE_LOG_TYPE_COPYEDIT: - return 'CPY'; - case ARTICLE_LOG_TYPE_LAYOUT: - return 'LYT'; - case ARTICLE_LOG_TYPE_PROOFREAD: - return 'PRF'; - default: - return 'ART'; - } - } - - /** - * Return locale message key for the long format of the associated type. - * @return string - */ - function getAssocTypeLongString() { - switch ($this->getData('assocType')) { - case ARTICLE_LOG_TYPE_AUTHOR: - return 'submission.logType.author'; - case ARTICLE_LOG_TYPE_EDITOR: - return 'submission.logType.editor'; - case ARTICLE_LOG_TYPE_REVIEW: - return 'submission.logType.review'; - case ARTICLE_LOG_TYPE_COPYEDIT: - return 'submission.logType.copyedit'; - case ARTICLE_LOG_TYPE_LAYOUT: - return 'submission.logType.layout'; - case ARTICLE_LOG_TYPE_PROOFREAD: - return 'submission.logType.proofread'; - default: - return 'submission.logType.article'; - } - } - - - // - // Email data - // - - function getFrom() { - return $this->getData('from'); - } - - function setFrom($from) { - return $this->setData('from', $from); - } - - function getRecipients() { - return $this->getData('recipients'); - } - - function setRecipients($recipients) { - return $this->setData('recipients', $recipients); - } - - function getCcs() { - return $this->getData('ccs'); - } - - function setCcs($ccs) { - return $this->setData('ccs', $ccs); - } - - function getBccs() { - return $this->getData('bccs'); - } - - function setBccs($bccs) { - return $this->setData('bccs', $bccs); - } - - function getSubject() { - return $this->getData('subject'); - } - - function setSubject($subject) { - return $this->setData('subject', $subject); - } - - function getBody() { - return $this->getData('body'); - } - - function setBody($body) { - return $this->setData('body', $body); - } - } - -?> diff --git a/classes/article/log/ArticleEventLogDAO.inc.php b/classes/article/log/ArticleEventLogDAO.inc.php index f22f81bdde9..7e43ad7bc33 100644 --- a/classes/article/log/ArticleEventLogDAO.inc.php +++ b/classes/article/log/ArticleEventLogDAO.inc.php @@ -8,185 +8,22 @@ * * @class ArticleEventLogDAO * @ingroup article_log - * @see ArticleEventLogEntry + * @see EventLogDAO * - * @brief Class for inserting/accessing article history log entries. + * @brief Extension to EventLogDAO for article-specific log entries. */ -// $Id$ +import('lib.pkp.classes.log.EventLogDAO'); +import('classes.article.log.ArticleEventLogEntry'); -import ('classes.article.log.ArticleEventLogEntry'); - -class ArticleEventLogDAO extends DAO { - /** - * Retrieve a log entry by ID. - * @param $logId int - * @param $articleId int optional - * @return ArticleEventLogEntry - */ - function &getLogEntry($logId, $articleId = null) { - if (isset($articleId)) { - $result =& $this->retrieve( - 'SELECT * FROM article_event_log WHERE log_id = ? AND article_id = ?', - array($logId, $articleId) - ); - } else { - $result =& $this->retrieve( - 'SELECT * FROM article_event_log WHERE log_id = ?', $logId - ); - } - - $returner = null; - if ($result->RecordCount() != 0) { - $returner =& $this->_returnLogEntryFromRow($result->GetRowAssoc(false)); - } - - $result->Close(); - unset($result); - - return $returner; - } - - /** - * Retrieve all log entries for an article. - * @param $articleId int - * @return DAOResultFactory containing matching ArticleEventLogEntry ArticleEventLogEntry ordered by sequence - */ - function &getArticleLogEntries($articleId, $rangeInfo = null) { - $returner =& $this->getArticleLogEntriesByAssoc($articleId, null, null, $rangeInfo); - return $returner; - } - - /** - * Retrieve all log entries for an article matching the specified association. - * @param $articleId int - * @param $assocType int - * @param $assocId int - * @param $limit int limit the number of entries retrieved (default false) - * @param $recentFirst boolean order with most recent entries first (default true) - * @return DAOResultFactory containing matching ArticleEventLogEntry ordered by sequence - */ - function &getArticleLogEntriesByAssoc($articleId, $assocType = null, $assocId = null, $rangeInfo = null) { - $params = array($articleId); - if (isset($assocType)) { - array_push($params, $assocType); - if (isset($assocId)) { - array_push($params, $assocId); - } - } - - $result =& $this->retrieveRange( - 'SELECT * FROM article_event_log WHERE article_id = ?' . (isset($assocType) ? ' AND assoc_type = ?' . (isset($assocId) ? ' AND assoc_id = ?' : '') : '') . ' ORDER BY log_id DESC', - $params, $rangeInfo - ); - - $returner = new DAOResultFactory($result, $this, '_returnLogEntryFromRow'); - return $returner; - } - - /** - * Internal function to return an ArticleEventLogEntry object from a row. - * @param $row array - * @return ArticleEventLogEntry - */ - function &_returnLogEntryFromRow(&$row) { - $entry = new ArticleEventLogEntry(); - $entry->setId($row['log_id']); - $entry->setArticleId($row['article_id']); - $entry->setUserId($row['user_id']); - $entry->setDateLogged($this->datetimeFromDB($row['date_logged'])); - $entry->setIPAddress($row['ip_address']); - $entry->setLogLevel($row['log_level']); - $entry->setEventType($row['event_type']); - $entry->setAssocType($row['assoc_type']); - $entry->setAssocId($row['assoc_id']); - $entry->setMessage($row['message']); - - HookRegistry::call('ArticleEventLogDAO::_returnLogEntryFromRow', array(&$entry, &$row)); - - return $entry; - } - - /** - * Insert a new log entry. - * @param $entry ArticleEventLogEntry - */ - function insertLogEntry(&$entry) { - if ($entry->getDateLogged() == null) { - $entry->setDateLogged(Core::getCurrentDate()); - } - if ($entry->getIPAddress() == null) { - $entry->setIPAddress(Request::getRemoteAddr()); - } - $this->update( - sprintf('INSERT INTO article_event_log - (article_id, user_id, date_logged, ip_address, log_level, event_type, assoc_type, assoc_id, message) - VALUES - (?, ?, %s, ?, ?, ?, ?, ?, ?)', - $this->datetimeToDB($entry->getDateLogged())), - array( - $entry->getArticleId(), - $entry->getUserId(), - $entry->getIPAddress(), - $entry->getLogLevel(), - $entry->getEventType(), - $entry->getAssocType(), - $entry->getAssocId(), - $entry->getMessage() - ) - ); - - $entry->setId($this->getInsertLogId()); - return $entry->getId(); - } - - /** - * Delete a single log entry for an article. - * @param $logId int - * @param $articleId int optional - */ - function deleteLogEntry($logId, $articleId = null) { - if (isset($articleId)) { - return $this->update( - 'DELETE FROM article_event_log WHERE log_id = ? AND article_id = ?', - array($logId, $articleId) - ); - - } else { - return $this->update( - 'DELETE FROM article_event_log WHERE log_id = ?', $logId - ); - } - } - - /** - * Delete all log entries for an article. - * @param $articleId int - */ - function deleteArticleLogEntries($articleId) { - return $this->update( - 'DELETE FROM article_event_log WHERE article_id = ?', $articleId - ); - } - - /** - * Transfer all article log entries to another user. - * @param $articleId int - */ - function transferArticleLogEntries($oldUserId, $newUserId) { - return $this->update( - 'UPDATE article_event_log SET user_id = ? WHERE user_id = ?', - array($newUserId, $oldUserId) - ); +class ArticleEventLogDAO extends EventLogDAO { + function ArticleEventLogDAO() { + parent::EventLogDAO(); } - /** - * Get the ID of the last inserted log entry. - * @return int - */ - function getInsertLogId() { - return $this->getInsertId('article_event_log', 'log_id'); + function newDataObject() { + return new ArticleEventLogEntry(); } } diff --git a/classes/article/log/ArticleEventLogEntry.inc.php b/classes/article/log/ArticleEventLogEntry.inc.php index f1ae88aa52d..43b1cebc239 100644 --- a/classes/article/log/ArticleEventLogEntry.inc.php +++ b/classes/article/log/ArticleEventLogEntry.inc.php @@ -10,17 +10,11 @@ * @ingroup article_log * @see ArticleEventLogDAO * - * @brief Describes an entry in the article history log. + * @brief Extension to EventLogEntry for article-specific log entries. */ -// $Id$ - -// Log levels -define('ARTICLE_LOG_LEVEL_INFO', 'I'); -define('ARTICLE_LOG_LEVEL_NOTICE', 'N'); -define('ARTICLE_LOG_LEVEL_WARNING', 'W'); -define('ARTICLE_LOG_LEVEL_ERROR', 'E'); +import('lib.pkp.classes.log.EventLogEntry'); // Log entry associative types. All types must be defined here define('ARTICLE_LOG_TYPE_DEFAULT', 0); @@ -34,273 +28,78 @@ // Log entry event types. All types must be defined here define('ARTICLE_LOG_DEFAULT', 0); -// General events 0x10000000 -define('ARTICLE_LOG_ARTICLE_SUBMIT', 0x10000001); -define('ARTICLE_LOG_METADATA_UPDATE', 0x10000002); -define('ARTICLE_LOG_SUPPFILE_UPDATE', 0x10000003); -define('ARTICLE_LOG_ISSUE_SCHEDULE', 0x10000004); -define('ARTICLE_LOG_ISSUE_ASSIGN', 0x10000005); -define('ARTICLE_LOG_ARTICLE_PUBLISH', 0x10000006); -define('ARTICLE_LOG_ARTICLE_IMPORT', 0x10000007); - -// Author events 0x20000000 -define('ARTICLE_LOG_AUTHOR_REVISION', 0x20000001); - -// Editor events 0x30000000 -define('ARTICLE_LOG_EDITOR_ASSIGN', 0x30000001); -define('ARTICLE_LOG_EDITOR_UNASSIGN', 0x30000002); -define('ARTICLE_LOG_EDITOR_DECISION', 0x30000003); -define('ARTICLE_LOG_EDITOR_FILE', 0x30000004); -define('ARTICLE_LOG_EDITOR_ARCHIVE', 0x30000005); -define('ARTICLE_LOG_EDITOR_RESTORE', 0x30000006); -define('ARTICLE_LOG_EDITOR_EXPEDITE', 0x30000007); - -// Reviewer events 0x40000000 -define('ARTICLE_LOG_REVIEW_ASSIGN', 0x40000001); -define('ARTICLE_LOG_REVIEW_UNASSIGN', 0x40000002); -define('ARTICLE_LOG_REVIEW_INITIATE', 0x40000003); -define('ARTICLE_LOG_REVIEW_CANCEL', 0x40000004); -define('ARTICLE_LOG_REVIEW_REINITIATE', 0x40000005); -define('ARTICLE_LOG_REVIEW_ACCEPT', 0x40000006); -define('ARTICLE_LOG_REVIEW_DECLINE', 0x40000007); -define('ARTICLE_LOG_REVIEW_REVISION', 0x40000008); -define('ARTICLE_LOG_REVIEW_RECOMMENDATION', 0x40000009); -define('ARTICLE_LOG_REVIEW_RATE', 0x40000010); -define('ARTICLE_LOG_REVIEW_SET_DUE_DATE', 0x40000011); -define('ARTICLE_LOG_REVIEW_RESUBMIT', 0x40000012); -define('ARTICLE_LOG_REVIEW_FILE', 0x40000013); -define('ARTICLE_LOG_REVIEW_CLEAR', 0x40000014); -define('ARTICLE_LOG_REVIEW_CONFIRM_BY_PROXY', 0x40000015); +// General events 0x10000000 +define('ARTICLE_LOG_ARTICLE_SUBMIT', 0x10000001); +define('ARTICLE_LOG_METADATA_UPDATE', 0x10000002); +define('ARTICLE_LOG_SUPPFILE_UPDATE', 0x10000003); +define('ARTICLE_LOG_ISSUE_SCHEDULE', 0x10000004); +define('ARTICLE_LOG_ISSUE_ASSIGN', 0x10000005); +define('ARTICLE_LOG_ARTICLE_PUBLISH', 0x10000006); +define('ARTICLE_LOG_ARTICLE_IMPORT', 0x10000007); + +// Author events 0x20000000 +define('ARTICLE_LOG_AUTHOR_REVISION', 0x20000001); + +// Editor events 0x30000000 +define('ARTICLE_LOG_EDITOR_ASSIGN', 0x30000001); +define('ARTICLE_LOG_EDITOR_UNASSIGN', 0x30000002); +define('ARTICLE_LOG_EDITOR_DECISION', 0x30000003); +define('ARTICLE_LOG_EDITOR_FILE', 0x30000004); +define('ARTICLE_LOG_EDITOR_ARCHIVE', 0x30000005); +define('ARTICLE_LOG_EDITOR_RESTORE', 0x30000006); +define('ARTICLE_LOG_EDITOR_EXPEDITE', 0x30000007); + +// Reviewer events 0x40000000 +define('ARTICLE_LOG_REVIEW_ASSIGN', 0x40000001); +define('ARTICLE_LOG_REVIEW_UNASSIGN', 0x40000002); +define('ARTICLE_LOG_REVIEW_INITIATE', 0x40000003); +define('ARTICLE_LOG_REVIEW_CANCEL', 0x40000004); +define('ARTICLE_LOG_REVIEW_REINITIATE', 0x40000005); +define('ARTICLE_LOG_REVIEW_ACCEPT', 0x40000006); +define('ARTICLE_LOG_REVIEW_DECLINE', 0x40000007); +define('ARTICLE_LOG_REVIEW_REVISION', 0x40000008); +define('ARTICLE_LOG_REVIEW_RECOMMENDATION', 0x40000009); +define('ARTICLE_LOG_REVIEW_RATE', 0x40000010); +define('ARTICLE_LOG_REVIEW_SET_DUE_DATE', 0x40000011); +define('ARTICLE_LOG_REVIEW_RESUBMIT', 0x40000012); +define('ARTICLE_LOG_REVIEW_FILE', 0x40000013); +define('ARTICLE_LOG_REVIEW_CLEAR', 0x40000014); +define('ARTICLE_LOG_REVIEW_CONFIRM_BY_PROXY', 0x40000015); define('ARTICLE_LOG_REVIEW_RECOMMENDATION_BY_PROXY', 0x40000016); -define('ARTICLE_LOG_REVIEW_FILE_BY_PROXY', 0x40000017); - -// Copyeditor events 0x50000000 -define('ARTICLE_LOG_COPYEDIT_ASSIGN', 0x50000001); -define('ARTICLE_LOG_COPYEDIT_UNASSIGN', 0x50000002); -define('ARTICLE_LOG_COPYEDIT_INITIATE', 0x50000003); -define('ARTICLE_LOG_COPYEDIT_REVISION', 0x50000004); -define('ARTICLE_LOG_COPYEDIT_INITIAL', 0x50000005); -define('ARTICLE_LOG_COPYEDIT_FINAL', 0x50000006); -define('ARTICLE_LOG_COPYEDIT_SET_FILE', 0x50000007); +define('ARTICLE_LOG_REVIEW_FILE_BY_PROXY', 0x40000017); + +// Copyeditor events 0x50000000 +define('ARTICLE_LOG_COPYEDIT_ASSIGN', 0x50000001); +define('ARTICLE_LOG_COPYEDIT_UNASSIGN', 0x50000002); +define('ARTICLE_LOG_COPYEDIT_INITIATE', 0x50000003); +define('ARTICLE_LOG_COPYEDIT_REVISION', 0x50000004); +define('ARTICLE_LOG_COPYEDIT_INITIAL', 0x50000005); +define('ARTICLE_LOG_COPYEDIT_FINAL', 0x50000006); +define('ARTICLE_LOG_COPYEDIT_SET_FILE', 0x50000007); define('ARTICLE_LOG_COPYEDIT_COPYEDIT_FILE', 0x50000008); define('ARTICLE_LOG_COPYEDIT_COPYEDITOR_FILE', 0x50000009); -// Proofreader events 0x60000000 -define('ARTICLE_LOG_PROOFREAD_ASSIGN', 0x60000001); -define('ARTICLE_LOG_PROOFREAD_UNASSIGN', 0x60000002); -define('ARTICLE_LOG_PROOFREAD_INITIATE', 0x60000003); -define('ARTICLE_LOG_PROOFREAD_REVISION', 0x60000004); -define('ARTICLE_LOG_PROOFREAD_COMPLETE', 0x60000005); +// Proofreader events 0x60000000 +define('ARTICLE_LOG_PROOFREAD_ASSIGN', 0x60000001); +define('ARTICLE_LOG_PROOFREAD_UNASSIGN', 0x60000002); +define('ARTICLE_LOG_PROOFREAD_INITIATE', 0x60000003); +define('ARTICLE_LOG_PROOFREAD_REVISION', 0x60000004); +define('ARTICLE_LOG_PROOFREAD_COMPLETE', 0x60000005); -// Layout events 0x70000000 -define('ARTICLE_LOG_LAYOUT_ASSIGN', 0x70000001); -define('ARTICLE_LOG_LAYOUT_UNASSIGN', 0x70000002); -define('ARTICLE_LOG_LAYOUT_INITIATE', 0x70000003); -define('ARTICLE_LOG_LAYOUT_GALLEY', 0x70000004); -define('ARTICLE_LOG_LAYOUT_COMPLETE', 0x70000005); +// Layout events 0x70000000 +define('ARTICLE_LOG_LAYOUT_ASSIGN', 0x70000001); +define('ARTICLE_LOG_LAYOUT_UNASSIGN', 0x70000002); +define('ARTICLE_LOG_LAYOUT_INITIATE', 0x70000003); +define('ARTICLE_LOG_LAYOUT_GALLEY', 0x70000004); +define('ARTICLE_LOG_LAYOUT_COMPLETE', 0x70000005); -class ArticleEventLogEntry extends DataObject { - +class ArticleEventLogEntry extends EventLogEntry { /** - * Constructor. + * Constructor */ function ArticleEventLogEntry() { - parent::DataObject(); - } - - /** - * Set localized log message (in the journal's primary locale) - * @param $key localization message key - * @param $params array optional array of parameters - */ - function setLogMessage($key, $params = array()) { - $this->setMessage(Locale::translate($key, $params, Locale::getPrimaryLocale())); - } - - // - // Get/set methods - // - - /** - * Get ID of log entry. - * @return int - */ - function getLogId() { - if (Config::getVar('debug', 'deprecation_warnings')) trigger_error('Deprecated function.'); - return $this->getId(); - } - - /** - * Set ID of log entry. - * @param $logId int - */ - function setLogId($logId) { - if (Config::getVar('debug', 'deprecation_warnings')) trigger_error('Deprecated function.'); - return $this->setId($logId); - } - - /** - * Get ID of article. - * @return int - */ - function getArticleId() { - return $this->getData('articleId'); - } - - /** - * Set ID of article. - * @param $articleId int - */ - function setArticleId($articleId) { - return $this->setData('articleId', $articleId); - } - - /** - * Get user ID of user that initiated the event. - * @return int - */ - function getUserId() { - return $this->getData('userId'); - } - - /** - * Set user ID of user that initiated the event. - * @param $userId int - */ - function setUserId($userId) { - return $this->setData('userId', $userId); - } - - /** - * Get date entry was logged. - * @return datestamp - */ - function getDateLogged() { - return $this->getData('dateLogged'); - } - - /** - * Set date entry was logged. - * @param $dateLogged datestamp - */ - function setDateLogged($dateLogged) { - return $this->setData('dateLogged', $dateLogged); - } - - /** - * Get IP address of user that initiated the event. - * @return string - */ - function getIPAddress() { - return $this->getData('ipAddress'); - } - - /** - * Set IP address of user that initiated the event. - * @param $ipAddress string - */ - function setIPAddress($ipAddress) { - return $this->setData('ipAddress', $ipAddress); - } - - /** - * Get the log level. - * @return int - */ - function getLogLevel() { - return $this->getData('logLevel'); - } - - /** - * Set the log level. - * @param $logLevel char - */ - function setLogLevel($logLevel) { - return $this->setData('logLevel', $logLevel); - } - - /** - * Get event type. - * @return int - */ - function getEventType() { - return $this->getData('eventType'); - } - - /** - * Set event type. - * @param $eventType int - */ - function setEventType($eventType) { - return $this->setData('eventType', $eventType); - } - - /** - * Get associated type. - * @return int - */ - function getAssocType() { - return $this->getData('assocType'); - } - - /** - * Set associated type. - * @param $assocType int - */ - function setAssocType($assocType) { - return $this->setData('assocType', $assocType); - } - - /** - * Get associated ID. - * @return int - */ - function getAssocId() { - return $this->getData('assocId'); - } - - /** - * Set associated ID. - * @param $assocId int - */ - function setAssocId($assocId) { - return $this->setData('assocId', $assocId); - } - - /** - * Get custom log message (non-localized). - * @return string - */ - function getMessage() { - return $this->getData('message'); - } - - /** - * Set custom log message (non-localized). - * @param $message string - */ - function setMessage($message) { - return $this->setData('message', $message); - } - - /** - * Return locale message key for the log level. - * @return string - */ - function getLogLevelString() { - switch ($this->getData('logLevel')) { - case ARTICLE_LOG_LEVEL_INFO: - return 'submission.event.logLevel.info'; - case ARTICLE_LOG_LEVEL_NOTICE: - return 'submission.event.logLevel.notice'; - case ARTICLE_LOG_LEVEL_WARNING: - return 'submission.event.logLevel.warning'; - case ARTICLE_LOG_LEVEL_ERROR: - return 'submission.event.logLevel.error'; - default: - return 'submission.event.logLevel.notice'; - } + parent::EventLogEntry(); } /** @@ -415,82 +214,4 @@ function getEventTitle() { return 'submission.event.general.defaultEvent'; } } - - /** - * Return the full name of the user. - * @return string - */ - function getUserFullName() { - $userFullName =& $this->getData('userFullName'); - if(!isset($userFullName)) { - $userDao =& DAORegistry::getDAO('UserDAO'); - $userFullName = $userDao->getUserFullName($this->getUserId(), true); - } - - return $userFullName ? $userFullName : ''; - } - - /** - * Return the email address of the user. - * @return string - */ - function getUserEmail() { - $userEmail =& $this->getData('userEmail'); - - if(!isset($userEmail)) { - $userDao =& DAORegistry::getDAO('UserDAO'); - $userEmail = $userDao->getUserEmail($this->getUserId(), true); - } - - return $userEmail ? $userEmail : ''; - } - - /** - * Return string representation of the associated type. - * @return string - */ - function getAssocTypeString() { - switch ($this->getData('assocType')) { - case ARTICLE_LOG_TYPE_AUTHOR: - return 'AUT'; - case ARTICLE_LOG_TYPE_EDITOR: - return 'EDR'; - case ARTICLE_LOG_TYPE_REVIEW: - return 'REV'; - case ARTICLE_LOG_TYPE_COPYEDIT: - return 'CPY'; - case ARTICLE_LOG_TYPE_LAYOUT: - return 'LYT'; - case ARTICLE_LOG_TYPE_PROOFREAD: - return 'PRF'; - default: - return 'ART'; - } - } - - /** - * Return locale message key for the long format of the associated type. - * @return string - */ - function getAssocTypeLongString() { - switch ($this->getData('assocType')) { - case ARTICLE_LOG_TYPE_AUTHOR: - return 'submission.logType.author'; - case ARTICLE_LOG_TYPE_EDITOR: - return 'submission.logType.editor'; - case ARTICLE_LOG_TYPE_REVIEW: - return 'submission.logType.review'; - case ARTICLE_LOG_TYPE_COPYEDIT: - return 'submission.logType.copyedit'; - case ARTICLE_LOG_TYPE_LAYOUT: - return 'submission.logType.layout'; - case ARTICLE_LOG_TYPE_PROOFREAD: - return 'submission.logType.proofread'; - default: - return 'submission.logType.article'; - } - } - } - -?> diff --git a/classes/article/log/ArticleLog.inc.php b/classes/article/log/ArticleLog.inc.php index c774f4e0547..43ed38d8342 100644 --- a/classes/article/log/ArticleLog.inc.php +++ b/classes/article/log/ArticleLog.inc.php @@ -19,94 +19,69 @@ // $Id$ -class ArticleLog { - - /** - * Add an event log entry to this article. - * @param $articleId int - * @param $entry ArticleEventLogEntry - */ - function logEventEntry($articleId, &$entry) { - $articleDao =& DAORegistry::getDAO('ArticleDAO'); - $journalId = $articleDao->getArticleJournalId($articleId); - - if (!$journalId) { - // Invalid article - return false; - } - - $settingsDao =& DAORegistry::getDAO('JournalSettingsDAO'); - if (!$settingsDao->getSetting($journalId, 'articleEventLog')) { - // Event logging is disabled - return false; - } - - // Add the entry - $entry->setArticleId($articleId); - - if ($entry->getUserId() == null) { - $user =& Request::getUser(); - $entry->setUserId($user == null ? 0 : $user->getId()); - } - - $logDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - return $logDao->insertLogEntry($entry); - } +import('classes.article.log.ArticleEventLogEntry'); +import('classes.article.log.ArticleEmailLogEntry'); +class ArticleLog { /** - * Add a new event log entry with the specified parameters, at the default log level - * @param $articleId int + * Add a new event log entry with the specified parameters + * @param $request object + * @param $article object * @param $eventType int - * @param $assocType int - * @param $assocId int * @param $messageKey string - * @param $messageParams array + * @param $params array optional + * @return object ArticleLogEntry iff the event was logged */ - function logEvent($articleId, $eventType, $assocType = 0, $assocId = 0, $messageKey = null, $messageParams = array()) { - return ArticleLog::logEventLevel($articleId, ARTICLE_LOG_LEVEL_NOTICE, $eventType, $assocType, $assocId, $messageKey, $messageParams); + function logEvent(&$request, &$article, $eventType, $messageKey, $params = array()) { + $journal =& $request->getJournal(); + $user =& $request->getUser(); + return ArticleLog::logEventHeadless($journal, $user->getId(), $article, $eventType, $messageKey, $params); } /** - * Add a new event log entry with the specified parameters, including log level. - * @param $articleId int - * @param $logLevel char + * Add a new event log entry with the specified parameters + * @param $request object + * @param $article object * @param $eventType int - * @param $assocType int - * @param $assocId int * @param $messageKey string - * @param $messageParams array + * @param $params array optional + * @return object ArticleLogEntry iff the event was logged */ - function logEventLevel($articleId, $logLevel, $eventType, $assocType = 0, $assocId = 0, $messageKey = null, $messageParams = array()) { - $entry = new ArticleEventLogEntry(); - $entry->setLogLevel($logLevel); - $entry->setEventType($eventType); - $entry->setAssocType($assocType); - $entry->setAssocId($assocId); + function logEventHeadless(&$journal, $userId, &$article, $eventType, $messageKey, $params = array()) { + // Check if logging is enabled for this journal + if (!$journal->getSetting('articleEventLog')) return null; - if (isset($messageKey)) { - $entry->setLogMessage($messageKey, $messageParams); - } - return ArticleLog::logEventEntry($articleId, $entry); - } + // Create a new entry object + $articleEventLogDao =& DAORegistry::getDAO('ArticleEventLogDAO'); + $entry = $articleEventLogDao->newDataObject(); - /** - * Get all event log entries for an article. - * @param $articleId int - * @return array ArticleEventLogEntry - */ - function &getEventLogEntries($articleId, $rangeInfo = null) { - $logDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - $returner =& $logDao->getArticleLogEntries($articleId, $rangeInfo); - return $returner; + // Set implicit parts of the log entry + $entry->setDateLogged(Core::getCurrentDate()); + $entry->setIPAddress(Request::getRemoteAddr()); + $entry->setUserId($userId); + $entry->setAssocType(ASSOC_TYPE_ARTICLE); + $entry->setAssocId($article->getId()); + + // Set explicit parts of the log entry + $entry->setEventType($eventType); + $entry->setMessage($messageKey); + $entry->setParams($params); + $entry->setIsTranslated(0); + $entry->setParams($params); + + // Insert the resulting object + $articleEventLogDao->insertObject($entry); + return $entry; } /** * Add an email log entry to this article. * @param $articleId int * @param $entry ArticleEmailLogEntry + * @param $request object */ - function logEmailEntry($articleId, &$entry) { + function logEmail($articleId, &$entry, $request = null) { $articleDao =& DAORegistry::getDAO('ArticleDAO'); $journalId = $articleDao->getArticleJournalId($articleId); @@ -122,28 +97,20 @@ function logEmailEntry($articleId, &$entry) { } // Add the entry - $entry->setArticleId($articleId); + $entry->setAssocType(ASSOC_TYPE_ARTICLE); + $entry->setAssocId($articleId); - if ($entry->getSenderId() == null) { - $user =& Request::getUser(); + if ($request) { + $user =& $request->getUser(); $entry->setSenderId($user == null ? 0 : $user->getId()); + $entry->setIPAddress($request->getRemoteAddr()); } - $logDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); - return $logDao->insertLogEntry($entry); - } + $entry->setDateSent(Core::getCurrentDate()); - /** - * Get all email log entries for an article. - * @param $articleId int - * @return array ArticleEmailLogEntry - */ - function &getEmailLogEntries($articleId, $rangeInfo = null) { $logDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); - $result =& $logDao->getArticleLogEntries($articleId, $rangeInfo); - return $result; + return $logDao->insertObject($entry); } - } ?> diff --git a/classes/author/form/submit/AuthorSubmitForm.inc.php b/classes/author/form/submit/AuthorSubmitForm.inc.php index 77ae7b5b6f4..a193392f4f8 100644 --- a/classes/author/form/submit/AuthorSubmitForm.inc.php +++ b/classes/author/form/submit/AuthorSubmitForm.inc.php @@ -22,6 +22,8 @@ import('lib.pkp.classes.form.Form'); class AuthorSubmitForm extends Form { + /** @var $request object */ + var $request; /** @var int the ID of the article */ var $articleId; @@ -37,7 +39,7 @@ class AuthorSubmitForm extends Form { * @param $article object * @param $step int */ - function AuthorSubmitForm(&$article, $step, &$journal) { + function AuthorSubmitForm(&$article, $step, &$journal, &$request) { // Provide available submission languages. (Convert the array // of locale symbolic names xx_XX into an associative array // of symbolic names => readable names.) @@ -56,6 +58,7 @@ function AuthorSubmitForm(&$article, $step, &$journal) { $this->step = (int) $step; $this->article = $article; $this->articleId = $article ? $article->getId() : null; + $this->request =& $request; } /** @@ -82,7 +85,7 @@ function display() { } $templateMgr->assign('helpTopicId', $helpTopicId); - $journal =& Request::getJournal(); + $journal =& $this->request->getJournal(); $settingsDao =& DAORegistry::getDAO('JournalSettingsDAO'); $templateMgr->assign_by_ref('journalSettings', $settingsDao->getJournalSettings($journal->getId())); @@ -105,7 +108,7 @@ function getDefaultFormLocale() { */ function assignEditors(&$article) { $sectionId = $article->getSectionId(); - $journal =& Request::getJournal(); + $journal =& $this->request->getJournal(); $sectionEditorsDao =& DAORegistry::getDAO('SectionEditorsDAO'); $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO'); diff --git a/classes/author/form/submit/AuthorSubmitStep1Form.inc.php b/classes/author/form/submit/AuthorSubmitStep1Form.inc.php index a8858edbeb5..62b4eefd88a 100644 --- a/classes/author/form/submit/AuthorSubmitStep1Form.inc.php +++ b/classes/author/form/submit/AuthorSubmitStep1Form.inc.php @@ -36,8 +36,8 @@ function AuthorSubmitStep1Form(&$article, &$journal) { * Display the form. */ function display() { - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $this->request->getJournal(); + $user =& $this->request->getUser(); $templateMgr =& TemplateManager::getManager(); @@ -96,7 +96,7 @@ function initData() { 'commentsToEditor' => $this->article->getCommentsToEditor() ); } else { - $journal =& Request::getJournal(); + $journal =& $this->request->getJournal(); $supportedSubmissionLocales = $journal->getSetting('supportedSubmissionLocales'); // Try these locales in order until we find one that's // supported to use as a default. @@ -144,8 +144,8 @@ function execute() { } else { // Insert new article - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $this->request->getJournal(); + $user =& $this->request->getUser(); $this->article = new Article(); $this->article->setLocale($this->getData('locale')); @@ -158,7 +158,7 @@ function execute() { $this->article->setCommentsToEditor($this->getData('commentsToEditor')); // Set user to initial author - $user =& Request::getUser(); + $user =& $this->request->getUser(); $author = new Author(); $author->setFirstName($user->getFirstName()); $author->setMiddleName($user->getMiddleName()); diff --git a/classes/author/form/submit/AuthorSubmitStep3Form.inc.php b/classes/author/form/submit/AuthorSubmitStep3Form.inc.php index ee20105a386..19a882477f9 100644 --- a/classes/author/form/submit/AuthorSubmitStep3Form.inc.php +++ b/classes/author/form/submit/AuthorSubmitStep3Form.inc.php @@ -142,7 +142,7 @@ function display() { $countries =& $countryDao->getCountries(); $templateMgr->assign_by_ref('countries', $countries); - if (Request::getUserVar('addAuthor') || Request::getUserVar('delAuthor') || Request::getUserVar('moveAuthor')) { + if ($this->request->getUserVar('addAuthor') || $this->request->getUserVar('delAuthor') || $this->request->getUserVar('moveAuthor')) { $templateMgr->assign('scrollToAuthor', true); } @@ -154,7 +154,7 @@ function display() { * @param $request Request * @return int the article ID */ - function execute(&$request) { + function execute() { $articleDao =& DAORegistry::getDAO('ArticleDAO'); $authorDao =& DAORegistry::getDAO('AuthorDAO'); $article =& $this->article; @@ -232,7 +232,7 @@ function execute(&$request) { $citationDao =& DAORegistry::getDAO('CitationDAO'); $rawCitationList = $article->getCitations(); if ($previousRawCitationList != $rawCitationList) { - $citationDao->importCitations($request, ASSOC_TYPE_ARTICLE, $article->getId(), $rawCitationList); + $citationDao->importCitations($this->request, ASSOC_TYPE_ARTICLE, $article->getId(), $rawCitationList); } return $this->articleId; diff --git a/classes/author/form/submit/AuthorSubmitStep5Form.inc.php b/classes/author/form/submit/AuthorSubmitStep5Form.inc.php index 21d578f7378..140795399c0 100644 --- a/classes/author/form/submit/AuthorSubmitStep5Form.inc.php +++ b/classes/author/form/submit/AuthorSubmitStep5Form.inc.php @@ -18,12 +18,11 @@ import('classes.author.form.submit.AuthorSubmitForm'); class AuthorSubmitStep5Form extends AuthorSubmitForm { - /** * Constructor. */ - function AuthorSubmitStep5Form(&$article, &$journal) { - parent::AuthorSubmitForm($article, 5, $journal); + function AuthorSubmitStep5Form(&$article, &$journal, $request) { + parent::AuthorSubmitForm($article, 5, $journal, $request); $this->addCheck(new FormValidatorCustom($this, 'qualifyForWaiver', 'optional', 'author.submit.mustEnterWaiverReason', array(&$this, 'checkWaiverReason'))); } @@ -32,16 +31,16 @@ function AuthorSubmitStep5Form(&$article, &$journal) { * Check that if the user choses a Waiver that they enter text in the comments to Editor */ function checkWaiverReason() { - if ( Request::getUserVar('qualifyForWaiver') == false ) return true; - else return (Request::getUserVar('commentsToEditor') != ''); + if ($this->request->getUserVar('qualifyForWaiver') == false ) return true; + else return ($this->request->getUserVar('commentsToEditor') != ''); } /** * Display the form. */ function display() { - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $this->request->getJournal(); + $user =& $this->request->getUser(); $templateMgr =& TemplateManager::getManager(); // Get article file for this article @@ -49,7 +48,7 @@ function display() { $articleFiles =& $articleFileDao->getArticleFilesByArticle($this->articleId); $templateMgr->assign_by_ref('files', $articleFiles); - $templateMgr->assign_by_ref('journal', Request::getJournal()); + $templateMgr->assign_by_ref('journal', $journal); // Set up required Payment Related Information import('classes.payment.ojs.OJSPaymentManager'); @@ -59,13 +58,13 @@ function display() { $completedPaymentDAO =& DAORegistry::getDAO('OJSCompletedPaymentDAO'); $articleId = $this->articleId; - if ( $paymentManager->submissionEnabled() ) { - $templateMgr->assign_by_ref('submissionPayment', $completedPaymentDAO->getSubmissionCompletedPayment ( $journal->getId(), $articleId )); + if ($paymentManager->submissionEnabled()) { + $templateMgr->assign_by_ref('submissionPayment', $completedPaymentDAO->getSubmissionCompletedPayment ($journal->getId(), $articleId)); $templateMgr->assign('manualPayment', $journal->getSetting('paymentMethodPluginName') == 'ManualPayment'); } - if ( $paymentManager->fastTrackEnabled() ) { - $templateMgr->assign_by_ref('fastTrackPayment', $completedPaymentDAO->getFastTrackCompletedPayment ( $journal->getId(), $articleId )); + if ($paymentManager->fastTrackEnabled()) { + $templateMgr->assign_by_ref('fastTrackPayment', $completedPaymentDAO->getFastTrackCompletedPayment ($journal->getId(), $articleId)); } } @@ -97,19 +96,19 @@ function validate() { import('classes.payment.ojs.OJSPaymentManager'); $paymentManager =& OJSPaymentManager::getManager(); if ( $paymentManager->submissionEnabled() ) { - if ( !parent::validate() ) return false; + if (!parent::validate()) return false; - $journal =& Request::getJournal(); + $journal =& $this->request->getJournal(); $journalId = $journal->getId(); $articleId = $this->articleId; - $user =& Request::getUser(); + $user =& $this->request->getUser(); $completedPaymentDAO =& DAORegistry::getDAO('OJSCompletedPaymentDAO'); - if ( $completedPaymentDAO->hasPaidSubmission ( $journalId, $articleId ) ) { + if ($completedPaymentDAO->hasPaidSubmission($journalId, $articleId)) { return parent::validate(); - } elseif ( Request::getUserVar('qualifyForWaiver') && Request::getUserVar('commentsToEditor') != '') { + } elseif ($this->request->getUserVar('qualifyForWaiver') && $this->request->getUserVar('commentsToEditor') != '') { return parent::validate(); - } elseif ( Request::getUserVar('paymentSent') ) { + } elseif ($this->request->getUserVar('paymentSent')) { return parent::validate(); } else { $queuedPayment =& $paymentManager->createQueuedPayment($journalId, PAYMENT_TYPE_SUBMISSION, $user->getId(), $articleId, $journal->getSetting('submissionFee')); @@ -130,8 +129,8 @@ function execute() { $articleDao =& DAORegistry::getDAO('ArticleDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); - $journal = Request::getJournal(); - $user = Request::getUser(); + $journal =& $this->request->getJournal(); + $user =& $this->request->getUser(); // Update article $article =& $this->article; @@ -177,8 +176,6 @@ function execute() { $sectionEditors = $this->assignEditors($article); - $user =& Request::getUser(); - // Update search index import('classes.search.ArticleSearchIndex'); ArticleSearchIndex::indexArticleMetadata($article); @@ -213,14 +210,13 @@ function execute() { 'authorName' => $user->getFullName(), 'authorUsername' => $user->getUsername(), 'editorialContactSignature' => $journal->getSetting('contactName') . "\n" . $journal->getLocalizedTitle(), - 'submissionUrl' => Request::url(null, 'author', 'submission', $article->getId()) + 'submissionUrl' => $this->request->url(null, 'author', 'submission', $article->getId()) )); - $mail->send(); + $mail->send($this->request); } import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($this->articleId, ARTICLE_LOG_ARTICLE_SUBMIT, ARTICLE_LOG_TYPE_AUTHOR, $user->getId(), 'log.author.submitted', array('submissionId' => $article->getId(), 'authorName' => $user->getFullName())); + ArticleLog::logEvent($this->request, $article, ARTICLE_LOG_ARTICLE_SUBMIT, 'log.author.submitted', array('authorName' => $user->getFullName())); return $this->articleId; } diff --git a/classes/mail/ArticleMailTemplate.inc.php b/classes/mail/ArticleMailTemplate.inc.php index 23d8313c599..f02b3dc4b2e 100644 --- a/classes/mail/ArticleMailTemplate.inc.php +++ b/classes/mail/ArticleMailTemplate.inc.php @@ -31,12 +31,6 @@ class ArticleMailTemplate extends MailTemplate { /** @var int Event type of this email */ var $eventType; - /** @var int Associated type of this email */ - var $assocType; - - /** @var int Associated ID of this email */ - var $assocId; - /** * Constructor. * @param $article object @@ -70,13 +64,14 @@ function assignParams($paramArray = array()) { /** * @see parent::send() */ - function send() { + function send($request = null) { if (parent::send(false)) { - if (!isset($this->skip) || !$this->skip) $this->log(); - $user =& Request::getUser(); - if ($this->attachmentsEnabled) $this->_clearAttachments($user->getId()); + if (!isset($this->skip) || !$this->skip) $this->log($request); + if ($request) { + $user =& $request->getUser(); + if ($user && $this->attachmentsEnabled) $this->_clearAttachments($user->getId()); + } return true; - } else { return false; } @@ -84,14 +79,16 @@ function send() { /** * @see parent::sendWithParams() + * @param $paramArray array + * @param $request object */ - function sendWithParams($paramArray) { + function sendWithParams($paramArray, $request) { $savedSubject = $this->getSubject(); $savedBody = $this->getBody(); $this->assignParams($paramArray); - $ret = $this->send(); + $ret = $this->send($request); $this->setSubject($savedSubject); $this->setBody($savedBody); @@ -99,18 +96,6 @@ function sendWithParams($paramArray) { return $ret; } - /** - * Add a generic association between this email and some event type / type / ID tuple. - * @param $eventType int - * @param $assocType int - * @param $assocId int - */ - function setAssoc($eventType, $assocType, $assocId) { - $this->eventType = $eventType; - $this->assocType = $assocType; - $this->assocId = $assocId; - } - /** * Set the journal this message is associated with. * @param $journal object @@ -121,19 +106,15 @@ function setJournal($journal) { /** * Save the email in the article email log. + * @param $request object */ - function log() { - import('classes.article.log.ArticleEmailLogEntry'); - import('classes.article.log.ArticleLog'); - $entry = new ArticleEmailLogEntry(); + function log($request = null) { + $articleEmailLogDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); + $entry = $articleEmailLogDao->newDataObject(); $article =& $this->article; // Log data $entry->setEventType($this->eventType); - $entry->setAssocType($this->assocType); - $entry->setAssocId($this->assocId); - - // Email data $entry->setSubject($this->getSubject()); $entry->setBody($this->getBody()); $entry->setFrom($this->getFromString(false)); @@ -142,7 +123,8 @@ function log() { $entry->setBccs($this->getBccString()); // Add log entry - $logEntryId = ArticleLog::logEmailEntry($article->getId(), $entry); + import('classes.article.log.ArticleLog'); + $logEntryId = ArticleLog::logEmail($article->getId(), $entry, $request); // Add attachments import('classes.file.ArticleFileManager'); diff --git a/classes/plugins/ImportExportPlugin.inc.php b/classes/plugins/ImportExportPlugin.inc.php index 2e221307bc7..e3950371bbd 100644 --- a/classes/plugins/ImportExportPlugin.inc.php +++ b/classes/plugins/ImportExportPlugin.inc.php @@ -84,7 +84,7 @@ function setBreadcrumbs($crumbs = array(), $isSubclass = false) { * Display the import/export plugin UI. * @param $args Array The array of arguments the user supplied. */ - function display(&$args) { + function display(&$args, $request) { $templateManager =& TemplateManager::getManager(); $templateManager->register_function('plugin_url', array(&$this, 'smartyPluginUrl')); } diff --git a/classes/submission/author/AuthorAction.inc.php b/classes/submission/author/AuthorAction.inc.php index 729b0061a5e..135e8a0b356 100644 --- a/classes/submission/author/AuthorAction.inc.php +++ b/classes/submission/author/AuthorAction.inc.php @@ -89,8 +89,9 @@ function deleteArticleFile($article, $fileId, $revisionId) { /** * Upload the revised version of an article. * @param $authorSubmission object + * @param $request object */ - function uploadRevisedVersion($authorSubmission) { + function uploadRevisedVersion($authorSubmission, $request) { import('classes.file.ArticleFileManager'); $articleFileManager = new ArticleFileManager($authorSubmission->getId()); $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO'); @@ -111,29 +112,30 @@ function uploadRevisedVersion($authorSubmission) { $authorSubmissionDao->updateAuthorSubmission($authorSubmission); // Add log entry - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($authorSubmission->getId(), ARTICLE_LOG_AUTHOR_REVISION, ARTICLE_LOG_TYPE_AUTHOR, $user->getId(), 'log.author.documentRevised', array('authorName' => $user->getFullName(), 'fileId' => $fileId, 'articleId' => $authorSubmission->getId())); + ArticleLog::logEvent($request, $authorSubmission, ARTICLE_LOG_AUTHOR_REVISION, 'log.author.documentRevised', array('authorName' => $user->getFullName(), 'fileId' => $fileId)); } } /** * Author completes editor / author review. * @param $authorSubmission object + * @param $send boolean + * @param $request object */ - function completeAuthorCopyedit($authorSubmission, $send = false) { + function completeAuthorCopyedit($authorSubmission, $send, $request) { $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $authorSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_AUTHOR', ASSOC_TYPE_ARTICLE, $authorSubmission->getId()); if ($authorSignoff->getDateCompleted() != null) { return true; } - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($authorSubmission, 'COPYEDIT_AUTHOR_COMPLETE'); @@ -144,8 +146,7 @@ function completeAuthorCopyedit($authorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('AuthorAction::completeAuthorCopyedit', array(&$authorSubmission, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR_COMPLETE, ARTICLE_EMAIL_TYPE_COPYEDIT, $authorSubmission->getId()); - $email->send(); + $email->send($request); } $authorSignoff->setDateCompleted(Core::getCurrentDate()); @@ -159,13 +160,11 @@ function completeAuthorCopyedit($authorSubmission, $send = false) { // Add log entry import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($authorSubmission->getId(), ARTICLE_LOG_COPYEDIT_REVISION, ARTICLE_LOG_TYPE_AUTHOR, $user->getId(), 'log.copyedit.authorFile'); + ArticleLog::logEvent($request, $authorSubmission, ARTICLE_LOG_COPYEDIT_REVISION, 'log.copyedit.authorFile'); return true; - } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { if (isset($copyeditor)) { $email->addRecipient($copyeditor->getEmail(), $copyeditor->getFullName()); $assignedSectionEditors = $email->ccAssignedEditingSectionEditors($authorSubmission->getId()); @@ -197,7 +196,7 @@ function completeAuthorCopyedit($authorSubmission, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, 'author', 'completeAuthorCopyedit', 'send'), array('articleId' => $authorSubmission->getId())); + $email->displayEditForm($request->url(null, 'author', 'completeAuthorCopyedit', 'send'), array('articleId' => $authorSubmission->getId())); return false; } @@ -276,7 +275,7 @@ function viewLayoutComments($article) { * @param $article object * @param $emailComment boolean */ - function postLayoutComment($article, $emailComment) { + function postLayoutComment($article, $emailComment, $request) { if (!HookRegistry::call('AuthorAction::postLayoutComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.LayoutCommentForm'); @@ -291,7 +290,7 @@ function postLayoutComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); $notificationManager->createNotification( $userRole['id'], 'notification.type.layoutComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_LAYOUT_COMMENT @@ -299,9 +298,8 @@ function postLayoutComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } - } else { $commentForm->display(); return false; @@ -328,12 +326,14 @@ function viewEditorDecisionComments($article) { * Email editor decision comment. * @param $authorSubmission object * @param $send boolean + * @param $request object */ - function emailEditorDecisionComment($authorSubmission, $send) { + function emailEditorDecisionComment($authorSubmission, $send, $request) { $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); + import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($authorSubmission); @@ -345,7 +345,7 @@ function emailEditorDecisionComment($authorSubmission, $send) { if ($send && !$email->hasErrors()) { HookRegistry::call('AuthorAction::emailEditorDecisionComment', array(&$authorSubmission, &$email)); - $email->send(); + $email->send($request); $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); $articleComment = new ArticleComment(); @@ -362,7 +362,7 @@ function emailEditorDecisionComment($authorSubmission, $send) { return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->setSubject($authorSubmission->getLocalizedTitle()); if (!empty($editors)) { foreach ($editors as $editor) { @@ -396,8 +396,10 @@ function viewCopyeditComments($article) { /** * Post copyedit comment. * @param $article object + * @param $emailComment boolean + * @param $request object */ - function postCopyeditComment($article, $emailComment) { + function postCopyeditComment($article, $emailComment, $request) { if (!HookRegistry::call('AuthorAction::postCopyeditComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.CopyeditCommentForm'); @@ -412,7 +414,7 @@ function postCopyeditComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'copyedit'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'copyedit'); $notificationManager->createNotification( $userRole['id'], 'notification.type.copyeditComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_COPYEDIT_COMMENT @@ -420,9 +422,8 @@ function postCopyeditComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } - } else { $commentForm->display(); return false; @@ -449,8 +450,9 @@ function viewProofreadComments($article) { * Post proofread comment. * @param $article object * @param $emailComment boolean + * @param $request object */ - function postProofreadComment($article, $emailComment) { + function postProofreadComment($article, $emailComment, $request) { if (!HookRegistry::call('AuthorAction::postProofreadComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.ProofreadCommentForm'); @@ -465,14 +467,14 @@ function postProofreadComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); $notificationManager->createNotification($userRole['id'], 'notification.type.proofreadComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_PROOFREAD_COMMENT ); } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { diff --git a/classes/submission/common/Action.inc.php b/classes/submission/common/Action.inc.php index 83fb7bdc0bc..7d0bef58370 100644 --- a/classes/submission/common/Action.inc.php +++ b/classes/submission/common/Action.inc.php @@ -162,8 +162,7 @@ function saveMetadata($article, &$request) { // Add log entry $user =& $request->getUser(); import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($article->getId(), ARTICLE_LOG_METADATA_UPDATE, ARTICLE_LOG_TYPE_DEFAULT, 0, 'log.editor.metadataModified', Array('editorName' => $user->getFullName())); + ArticleLog::logEvent($request, $article, ARTICLE_LOG_METADATA_UPDATE, 'log.editor.metadataModified', array('editorName' => $user->getFullName())); return true; } @@ -255,7 +254,7 @@ function editComment($article, $comment) { * Save comment. * @param $commentId int */ - function saveComment($article, &$comment, $emailComment) { + function saveComment($article, &$comment, $emailComment, $request) { if (!HookRegistry::call('Action::saveComment', array(&$article, &$comment, &$emailComment))) { import('classes.submission.form.comment.EditCommentForm'); @@ -270,7 +269,7 @@ function saveComment($article, &$comment, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'editorDecision'); + $url = $request->url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'editorDecision'); $notificationManager->createNotification( $userRole['id'], 'notification.type.submissionComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_SUBMISSION_COMMENT @@ -278,7 +277,7 @@ function saveComment($article, &$comment, $emailComment) { } if ($emailComment) { - $commentForm->email($commentForm->emailHelper()); + $commentForm->email($commentForm->emailHelper(), $request); } } else { diff --git a/classes/submission/copyeditor/CopyeditorAction.inc.php b/classes/submission/copyeditor/CopyeditorAction.inc.php index bd3a623f4d1..1fd70177c21 100644 --- a/classes/submission/copyeditor/CopyeditorAction.inc.php +++ b/classes/submission/copyeditor/CopyeditorAction.inc.php @@ -32,19 +32,21 @@ function CopyeditorAction() { /** * Copyeditor completes initial copyedit. * @param $copyeditorSubmission object + * @param $send boolean + * @param $request object */ - function completeCopyedit($copyeditorSubmission, $send = false) { + function completeCopyedit($copyeditorSubmission, $send, $request) { $copyeditorSubmissionDao =& DAORegistry::getDAO('CopyeditorSubmissionDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $initialSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $copyeditorSubmission->getArticleId()); if ($initialSignoff->getDateCompleted() != null) { return true; } - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($copyeditorSubmission, 'COPYEDIT_COMPLETE'); @@ -55,8 +57,7 @@ function completeCopyedit($copyeditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('CopyeditorAction::completeCopyedit', array(&$copyeditorSubmission, &$editAssignments, &$author, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_COMPLETE, ARTICLE_EMAIL_TYPE_COPYEDIT, $copyeditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $initialSignoff->setDateCompleted(Core::getCurrentDate()); @@ -70,13 +71,12 @@ function completeCopyedit($copyeditorSubmission, $send = false) { // Add log entry import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($copyeditorSubmission->getArticleId(), ARTICLE_LOG_COPYEDIT_INITIAL, ARTICLE_LOG_TYPE_COPYEDIT, $user->getId(), 'log.copyedit.initialEditComplete', Array('copyeditorName' => $user->getFullName(), 'articleId' => $copyeditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $copyeditorSubmission, ARTICLE_LOG_COPYEDIT_INITIAL, 'log.copyedit.initialEditComplete', array('copyeditorName' => $user->getFullName())); return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($author->getEmail(), $author->getFullName()); $email->ccAssignedEditingSectionEditors($copyeditorSubmission->getArticleId()); $email->ccAssignedEditors($copyeditorSubmission->getArticleId()); @@ -85,11 +85,11 @@ function completeCopyedit($copyeditorSubmission, $send = false) { 'editorialContactName' => $author->getFullName(), 'copyeditorName' => $user->getFullName(), 'authorUsername' => $author->getUsername(), - 'submissionEditingUrl' => Request::url(null, 'author', 'submissionEditing', array($copyeditorSubmission->getArticleId())) + 'submissionEditingUrl' => $request->url(null, 'author', 'submissionEditing', array($copyeditorSubmission->getArticleId())) ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, 'copyeditor', 'completeCopyedit', 'send'), array('articleId' => $copyeditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, 'copyeditor', 'completeCopyedit', 'send'), array('articleId' => $copyeditorSubmission->getArticleId())); return false; } @@ -98,19 +98,21 @@ function completeCopyedit($copyeditorSubmission, $send = false) { /** * Copyeditor completes final copyedit. * @param $copyeditorSubmission object + * @param $send boolean + * @param $request object */ - function completeFinalCopyedit($copyeditorSubmission, $send = false) { + function completeFinalCopyedit($copyeditorSubmission, $send, $request) { $copyeditorSubmissionDao =& DAORegistry::getDAO('CopyeditorSubmissionDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $finalSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_FINAL', ASSOC_TYPE_ARTICLE, $copyeditorSubmission->getArticleId()); if ($finalSignoff->getDateCompleted() != null) { return true; } - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($copyeditorSubmission, 'COPYEDIT_FINAL_COMPLETE'); @@ -119,8 +121,7 @@ function completeFinalCopyedit($copyeditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('CopyeditorAction::completeFinalCopyedit', array(&$copyeditorSubmission, &$editAssignments, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL_COMPLETE, ARTICLE_EMAIL_TYPE_COPYEDIT, $copyeditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $finalSignoff->setDateCompleted(Core::getCurrentDate()); @@ -143,12 +144,12 @@ function completeFinalCopyedit($copyeditorSubmission, $send = false) { // Add log entry import('classes.article.log.ArticleLog'); import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($copyeditorSubmission->getArticleId(), ARTICLE_LOG_COPYEDIT_FINAL, ARTICLE_LOG_TYPE_COPYEDIT, $user->getId(), 'log.copyedit.finalEditComplete', Array('copyeditorName' => $user->getFullName(), 'articleId' => $copyeditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $copyeditorSubmission, ARTICLE_LOG_COPYEDIT_FINAL, 'log.copyedit.finalEditComplete', Array('copyeditorName' => $user->getFullName())); return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $assignedSectionEditors = $email->toAssignedEditingSectionEditors($copyeditorSubmission->getArticleId()); $assignedEditors = $email->ccAssignedEditors($copyeditorSubmission->getArticleId()); if (empty($assignedSectionEditors) && empty($assignedEditors)) { @@ -168,7 +169,7 @@ function completeFinalCopyedit($copyeditorSubmission, $send = false) { } $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, 'copyeditor', 'completeFinalCopyedit', 'send'), array('articleId' => $copyeditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, 'copyeditor', 'completeFinalCopyedit', 'send'), array('articleId' => $copyeditorSubmission->getArticleId())); return false; } @@ -177,7 +178,7 @@ function completeFinalCopyedit($copyeditorSubmission, $send = false) { /** * Set that the copyedit is underway. */ - function copyeditUnderway(&$copyeditorSubmission) { + function copyeditUnderway(&$copyeditorSubmission, $request) { if (!HookRegistry::call('CopyeditorAction::copyeditUnderway', array(&$copyeditorSubmission))) { $copyeditorSubmissionDao =& DAORegistry::getDAO('CopyeditorSubmissionDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); @@ -198,10 +199,9 @@ function copyeditUnderway(&$copyeditorSubmission) { if (isset($update)) { // Add log entry - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($copyeditorSubmission->getArticleId(), ARTICLE_LOG_COPYEDIT_INITIATE, ARTICLE_LOG_TYPE_COPYEDIT, $user->getId(), 'log.copyedit.initiate', Array('copyeditorName' => $user->getFullName(), 'articleId' => $copyeditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $copyeditorSubmission, ARTICLE_LOG_COPYEDIT_INITIATE, 'log.copyedit.initiate', array('copyeditorName' => $user->getFullName())); } } } @@ -209,8 +209,10 @@ function copyeditUnderway(&$copyeditorSubmission) { /** * Upload the copyedited version of an article. * @param $copyeditorSubmission object + * @param $copyeditStage string + * @param $request object */ - function uploadCopyeditVersion($copyeditorSubmission, $copyeditStage) { + function uploadCopyeditVersion($copyeditorSubmission, $copyeditStage, $request) { import('classes.file.ArticleFileManager'); $articleFileDao =& DAORegistry::getDAO('ArticleFileDAO'); $copyeditorSubmissionDao =& DAORegistry::getDAO('CopyeditorSubmissionDAO'); @@ -229,7 +231,7 @@ function uploadCopyeditVersion($copyeditorSubmission, $copyeditStage) { else if ($copyeditStage != 'initial' && $copyeditStage != 'final') return; $articleFileManager = new ArticleFileManager($copyeditorSubmission->getArticleId()); - $user =& Request::getUser(); + $user =& $request->getUser(); $fileName = 'upload'; if ($articleFileManager->uploadedFileExists($fileName)) { @@ -248,21 +250,8 @@ function uploadCopyeditVersion($copyeditorSubmission, $copyeditStage) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - - $entry = new ArticleEventLogEntry(); - $entry->setArticleId($copyeditorSubmission->getArticleId()); - $entry->setUserId($user->getId()); - $entry->setDateLogged(Core::getCurrentDate()); - $entry->setEventType(ARTICLE_LOG_COPYEDIT_COPYEDITOR_FILE); - $entry->setLogMessage('log.copyedit.copyeditorFile'); - $entry->setAssocType(ARTICLE_LOG_TYPE_COPYEDIT); - $entry->setAssocId($fileId); - - ArticleLog::logEventEntry($copyeditorSubmission->getArticleId(), $entry); + ArticleLog::logEvent($request, $copyeditorSubmission, ARTICLE_LOG_COPYEDITOR_FILE, 'log.copyedit.copyeditorFile', array('copyeditorName' => $user->getFullName(), 'fileId' => $fileId)); } - - } // @@ -286,8 +275,10 @@ function viewLayoutComments($article) { /** * Post layout comment. * @param $article object + * @param $emailComment boolean + * @param $request object */ - function postLayoutComment($article, $emailComment) { + function postLayoutComment($article, $emailComment, $request) { if (!HookRegistry::call('CopyeditorAction::postLayoutComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.LayoutCommentForm'); @@ -302,7 +293,7 @@ function postLayoutComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); $notificationManager->createNotification( $userRole['id'], 'notification.type.layoutComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_LAYOUT_COMMENT @@ -310,7 +301,7 @@ function postLayoutComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { @@ -339,7 +330,7 @@ function viewCopyeditComments($article) { * Post copyedit comment. * @param $article object */ - function postCopyeditComment($article, $emailComment) { + function postCopyeditComment($article, $emailComment, $request) { if (!HookRegistry::call('CopyeditorAction::postCopyeditComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.CopyeditCommentForm'); @@ -354,7 +345,7 @@ function postCopyeditComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'coypedit'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'coypedit'); $notificationManager->createNotification( $userRole['id'], 'notification.type.copyeditComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_COPYEDIT_COMMENT @@ -362,7 +353,7 @@ function postCopyeditComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { diff --git a/classes/submission/editor/EditorAction.inc.php b/classes/submission/editor/EditorAction.inc.php index 7be1706eb6d..79f1ae2466f 100644 --- a/classes/submission/editor/EditorAction.inc.php +++ b/classes/submission/editor/EditorAction.inc.php @@ -25,15 +25,19 @@ class EditorAction extends SectionEditorAction { /** * Assigns a section editor to a submission. * @param $articleId int + * @param $sectionEditorId int + * @param $isEditor boolean + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function assignEditor($articleId, $sectionEditorId, $isEditor = false, $send = false) { + function assignEditor($articleId, $sectionEditorId, $isEditor, $send, $request) { $editorSubmissionDao =& DAORegistry::getDAO('EditorSubmissionDAO'); $editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); - $journal =& Request::getJournal(); + $user =& $request->getUser(); + $journal =& $request->getJournal(); $editorSubmission =& $editorSubmissionDao->getEditorSubmission($articleId); $sectionEditor =& $userDao->getUser($sectionEditorId); @@ -45,8 +49,7 @@ function assignEditor($articleId, $sectionEditorId, $isEditor = false, $send = f if ($user->getId() === $sectionEditorId || !$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('EditorAction::assignEditor', array(&$editorSubmission, &$sectionEditor, &$isEditor, &$email)); if ($email->isEnabled() && $user->getId() !== $sectionEditorId) { - $email->setAssoc(ARTICLE_EMAIL_EDITOR_ASSIGN, ARTICLE_EMAIL_TYPE_EDITOR, $sectionEditor->getId()); - $email->send(); + $email->send($request); } $editAssignment = new EditAssignment(); @@ -67,23 +70,22 @@ function assignEditor($articleId, $sectionEditorId, $isEditor = false, $send = f // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($articleId, ARTICLE_LOG_EDITOR_ASSIGN, ARTICLE_LOG_TYPE_EDITOR, $sectionEditorId, 'log.editor.editorAssigned', array('editorName' => $sectionEditor->getFullName(), 'articleId' => $articleId)); + ArticleLog::logEvent($request, $editorSubmission, ARTICLE_LOG_EDITOR_ASSIGN, 'log.editor.editorAssigned', array('editorName' => $sectionEditor->getFullName(), 'editorId' => $sectionEditorId)); return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($sectionEditor->getEmail(), $sectionEditor->getFullName()); $paramArray = array( 'editorialContactName' => $sectionEditor->getFullName(), 'editorUsername' => $sectionEditor->getUsername(), 'editorPassword' => $sectionEditor->getPassword(), 'editorialContactSignature' => $user->getContactSignature(), - 'submissionUrl' => Request::url(null, $isEditor?'editor':'sectionEditor', 'submissionReview', $articleId), - 'submissionEditingUrl' => Request::url(null, $isEditor?'editor':'sectionEditor', 'submissionReview', $articleId) + 'submissionUrl' => $request->url(null, $isEditor?'editor':'sectionEditor', 'submissionReview', $articleId), + 'submissionEditingUrl' => $request->url(null, $isEditor?'editor':'sectionEditor', 'submissionReview', $articleId) ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'assignEditor', 'send'), array('articleId' => $articleId, 'editorId' => $sectionEditorId)); + $email->displayEditForm($request->url(null, null, 'assignEditor', 'send'), array('articleId' => $articleId, 'editorId' => $sectionEditorId)); return false; } } @@ -92,8 +94,8 @@ function assignEditor($articleId, $sectionEditorId, $isEditor = false, $send = f * Rush a new submission into the end of the editing queue. * @param $article object */ - function expediteSubmission($article) { - $user =& Request::getUser(); + function expediteSubmission($article, $request) { + $user =& $request->getUser(); import('classes.submission.editor.EditorAction'); import('classes.submission.sectionEditor.SectionEditorAction'); @@ -107,19 +109,19 @@ function expediteSubmission($article) { // Add a long entry before doing anything. import('classes.article.log.ArticleLog'); import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($article->getId(), ARTICLE_LOG_EDITOR_EXPEDITE, ARTICLE_LOG_TYPE_EDITOR, $user->getId(), 'log.editor.submissionExpedited', array('editorName' => $user->getFullName(), 'articleId' => $article->getId())); + ArticleLog::logEvent($request, $article, ARTICLE_LOG_EDITOR_EXPEDITE, 'log.editor.submissionExpedited', array('editorName' => $user->getFullName())); // 1. Ensure that an editor is assigned. $editAssignments =& $sectionEditorSubmission->getEditAssignments(); if (empty($editAssignments)) { // No editors are currently assigned; assign self. - EditorAction::assignEditor($article->getId(), $user->getId(), true); + EditorAction::assignEditor($article->getId(), $user->getId(), true, false, $request); } // 2. Accept the submission and send to copyediting. $sectionEditorSubmission =& $sectionEditorSubmissionDao->getSectionEditorSubmission($article->getId()); if (!$sectionEditorSubmission->getFileBySignoffType('SIGNOFF_COPYEDITING_INITIAL', true)) { - SectionEditorAction::recordDecision($sectionEditorSubmission, SUBMISSION_EDITOR_DECISION_ACCEPT); + SectionEditorAction::recordDecision($sectionEditorSubmission, SUBMISSION_EDITOR_DECISION_ACCEPT, $request); $reviewFile = $sectionEditorSubmission->getReviewFile(); SectionEditorAction::setCopyeditFile($sectionEditorSubmission, $reviewFile->getFileId(), $reviewFile->getRevision()); } diff --git a/classes/submission/form/MetadataForm.inc.php b/classes/submission/form/MetadataForm.inc.php index 42a94ca7b8b..bedd415ab87 100644 --- a/classes/submission/form/MetadataForm.inc.php +++ b/classes/submission/form/MetadataForm.inc.php @@ -251,7 +251,7 @@ function readInputData() { $sectionDao =& DAORegistry::getDAO('SectionDAO'); $section =& $sectionDao->getSection($this->article->getSectionId()); if (!$section->getAbstractsNotRequired()) { - $this->addCheck(new FormValidatorLocale($this, 'abstract', 'required', 'author.submit.form.abstractRequired')); + $this->addCheck(new FormValidatorLocale($this, 'abstract', 'required', 'author.submit.form.abstractRequired', $this->getRequiredLocale())); } } diff --git a/classes/submission/form/comment/CommentForm.inc.php b/classes/submission/form/comment/CommentForm.inc.php index 656e1272b77..b19191e7b75 100644 --- a/classes/submission/form/comment/CommentForm.inc.php +++ b/classes/submission/form/comment/CommentForm.inc.php @@ -125,7 +125,7 @@ function execute() { * Email the comment. * @param $recipients array of recipients (email address => name) */ - function email($recipients) { + function email($recipients, $request) { $article = $this->article; $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); $journal =& Request::getJournal(); @@ -146,7 +146,7 @@ function email($recipients) { 'comments' => $commentText ); - $email->sendWithParams($paramArray); + $email->sendWithParams($paramArray, $request); $email->clearRecipients(); } } diff --git a/classes/submission/form/comment/EditCommentForm.inc.php b/classes/submission/form/comment/EditCommentForm.inc.php index 2c2a7215494..b8acc33b176 100644 --- a/classes/submission/form/comment/EditCommentForm.inc.php +++ b/classes/submission/form/comment/EditCommentForm.inc.php @@ -289,11 +289,12 @@ function emailHelper() { /** * Email the comment. * @param $recipients array of recipients (email address => name) + * @param $request object */ - function email($recipients) { + function email($recipients, $request) { import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($this->article, 'SUBMISSION_COMMENT'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); if ($journal) $email->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName')); foreach ($recipients as $emailAddress => $name) { @@ -307,7 +308,7 @@ function email($recipients) { ); $email->assignParams($paramArray); - $email->send(); + $email->send($request); $email->clearRecipients(); } } diff --git a/classes/submission/layoutEditor/LayoutEditorAction.inc.php b/classes/submission/layoutEditor/LayoutEditorAction.inc.php index ed262d8fbdf..24dcffb30dd 100644 --- a/classes/submission/layoutEditor/LayoutEditorAction.inc.php +++ b/classes/submission/layoutEditor/LayoutEditorAction.inc.php @@ -140,11 +140,12 @@ function deleteSuppFile($article, $suppFileId) { * Marks layout assignment as completed. * @param $submission object * @param $send boolean + * @param $request object */ - function completeLayoutEditing($submission, $send = false) { + function completeLayoutEditing($submission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $layoutSignoff = $signoffDao->getBySymbolic('SIGNOFF_LAYOUT', ASSOC_TYPE_ARTICLE, $submission->getArticleId()); if ($layoutSignoff->getDateCompleted() != null) { @@ -160,23 +161,21 @@ function completeLayoutEditing($submission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('LayoutEditorAction::completeLayoutEditing', array(&$submission, &$editAssignments, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_LAYOUT_NOTIFY_COMPLETE, ARTICLE_EMAIL_TYPE_LAYOUT, $layoutSignoff->getId()); - $email->send(); + $email->send($request); } $layoutSignoff->setDateCompleted(Core::getCurrentDate()); $signoffDao->updateObject($layoutSignoff); // Add log entry - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($submission->getArticleId(), ARTICLE_LOG_LAYOUT_COMPLETE, ARTICLE_LOG_TYPE_LAYOUT, $user->getId(), 'log.layout.layoutEditComplete', Array('editorName' => $user->getFullName(), 'articleId' => $submission->getArticleId())); + ArticleLog::logEvent($request, $submission, ARTICLE_LOG_LAYOUT_COMPLETE, 'log.layout.layoutEditComplete', array('editorName' => $user->getFullName())); return true; } else { - $user =& Request::getUser(); - if (!Request::getUserVar('continued')) { + $user =& $request->getUser(); + if (!$request->getUserVar('continued')) { $assignedSectionEditors = $email->toAssignedEditingSectionEditors($submission->getArticleId()); $assignedEditors = $email->ccAssignedEditors($submission->getArticleId()); if (empty($assignedSectionEditors) && empty($assignedEditors)) { @@ -193,7 +192,7 @@ function completeLayoutEditing($submission, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, 'layoutEditor', 'completeAssignment', 'send'), array('articleId' => $submission->getArticleId())); + $email->displayEditForm($request->url(null, 'layoutEditor', 'completeAssignment', 'send'), array('articleId' => $submission->getArticleId())); return false; } @@ -244,8 +243,10 @@ function viewLayoutComments($article) { /** * Post layout comment. * @param $article object + * @param $emailComment boolean + * @param $request object */ - function postLayoutComment($article, $emailComment) { + function postLayoutComment($article, $emailComment, $request) { if (!HookRegistry::call('LayoutEditorAction::postLayoutComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.LayoutCommentForm'); @@ -260,7 +261,7 @@ function postLayoutComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); $notificationManager->createNotification( $userRole['id'], 'notification.type.layoutComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_LAYOUT_COMMENT @@ -268,9 +269,8 @@ function postLayoutComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } - } else { $commentForm->display(); return false; @@ -296,8 +296,10 @@ function viewProofreadComments($article) { /** * Post proofread comment. * @param $article object + * @param $emailComment boolean + * @param $request object */ - function postProofreadComment($article, $emailComment) { + function postProofreadComment($article, $emailComment, $request) { if (!HookRegistry::call('LayoutEditorAction::postProofreadComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.ProofreadCommentForm'); @@ -312,7 +314,7 @@ function postProofreadComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); $notificationManager->createNotification( $userRole['id'], 'notification.type.proofreadComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_PROOFREAD_COMMENT @@ -320,7 +322,7 @@ function postProofreadComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { diff --git a/classes/submission/proofreader/ProofreaderAction.inc.php b/classes/submission/proofreader/ProofreaderAction.inc.php index f5cf1b1267f..ec3019b8a7b 100644 --- a/classes/submission/proofreader/ProofreaderAction.inc.php +++ b/classes/submission/proofreader/ProofreaderAction.inc.php @@ -25,7 +25,7 @@ class ProofreaderAction extends Action { /** * Select a proofreader for submission */ - function selectProofreader($userId, $article) { + function selectProofreader($userId, $article, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $proofSignoff = $signoffDao->build('SIGNOFF_PROOFREADING_PROOFREADER', ASSOC_TYPE_ARTICLE, $article->getId()); @@ -40,7 +40,7 @@ function selectProofreader($userId, $article) { if (!isset($proofreader)) return; import('classes.article.log.ArticleLog'); import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($article->getId(), ARTICLE_LOG_PROOFREAD_ASSIGN, ARTICLE_LOG_TYPE_PROOFREAD, $user->getId(), 'log.proofread.assign', Array('assignerName' => $user->getFullName(), 'proofreaderName' => $proofreader->getFullName(), 'articleId' => $article->getId())); + ArticleLog::logEvent($request, $article, ARTICLE_LOG_PROOFREAD_ASSIGN, 'log.proofread.assign', array('assignerName' => $user->getFullName(), 'proofreaderName' => $proofreader->getFullName())); } } @@ -48,10 +48,11 @@ function selectProofreader($userId, $article) { * Proofread Emails * @param $articleId int * @param $mailType defined string - type of proofread mail being sent + * @param $request object * @param $actionPath string - form action * @return true iff ready for a redirect */ - function proofreadEmail($articleId, $mailType, $actionPath = '') { + function proofreadEmail($articleId, $mailType, $request, $actionPath = '') { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $sectionEditorSubmission =& $sectionEditorSubmissionDao->getSectionEditorSubmission($articleId); @@ -66,7 +67,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { switch($mailType) { case 'PROOFREAD_AUTHOR_REQUEST': $eventType = ARTICLE_EMAIL_PROOFREAD_NOTIFY_AUTHOR; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_AUTHOR'; $setDateField = 'setDateNotified'; $nullifyDateFields = array('setDateUnderway', 'setDateCompleted', 'setDateAcknowledged'); @@ -88,7 +88,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_AUTHOR_ACK': $eventType = ARTICLE_EMAIL_PROOFREAD_THANK_AUTHOR; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_AUTHOR'; $setDateField = 'setDateAcknowledged'; $receiver =& $userDao->getUser($sectionEditorSubmission->getUserId()); @@ -104,7 +103,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_AUTHOR_COMPLETE': $eventType = ARTICLE_EMAIL_PROOFREAD_NOTIFY_AUTHOR_COMPLETE; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_AUTHOR'; $setDateField = 'setDateCompleted'; $getDateField = 'getDateCompleted'; @@ -155,7 +153,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_REQUEST': $eventType = ARTICLE_EMAIL_PROOFREAD_NOTIFY_PROOFREADER; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_PROOFREADER'; $setDateField = 'setDateNotified'; $nullifyDateFields = array('setDateUnderway', 'setDateCompleted', 'setDateAcknowledged'); @@ -177,7 +174,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_ACK': $eventType = ARTICLE_EMAIL_PROOFREAD_THANK_PROOFREADER; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_PROOFREADER'; $setDateField = 'setDateAcknowledged'; @@ -195,7 +191,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_COMPLETE': $eventType = ARTICLE_EMAIL_PROOFREAD_NOTIFY_PROOFREADER_COMPLETE; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_PROOFREADER'; $setDateField = 'setDateCompleted'; $getDateField = 'getDateCompleted'; @@ -237,7 +232,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_LAYOUT_REQUEST': $eventType = ARTICLE_EMAIL_PROOFREAD_NOTIFY_LAYOUTEDITOR; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_LAYOUT'; $setDateField = 'setDateNotified'; $nullifyDateFields = array('setDateUnderway', 'setDateCompleted', 'setDateAcknowledged'); @@ -267,7 +261,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_LAYOUT_ACK': $eventType = ARTICLE_EMAIL_PROOFREAD_THANK_LAYOUTEDITOR; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_LAYOUT'; $setDateField = 'setDateAcknowledged'; @@ -285,7 +278,6 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { case 'PROOFREAD_LAYOUT_COMPLETE': $eventType = ARTICLE_EMAIL_PROOFREAD_NOTIFY_LAYOUTEDITOR_COMPLETE; - $assocType = ARTICLE_EMAIL_TYPE_PROOFREAD; $signoffType = 'SIGNOFF_PROOFREADING_LAYOUT'; $setDateField = 'setDateCompleted'; $getDateField = 'getDateCompleted'; @@ -347,8 +339,7 @@ function proofreadEmail($articleId, $mailType, $actionPath = '') { } else { HookRegistry::call('ProofreaderAction::proofreadEmail', array(&$email, $mailType)); if ($email->isEnabled()) { - $email->setAssoc($eventType, $assocType, $articleId); - $email->send(); + $email->send($request); } $signoff->$setDateField(Core::getCurrentDate()); @@ -444,7 +435,7 @@ function viewProofreadComments($article) { * @param $article object * @param $emailComment boolean */ - function postProofreadComment($article, $emailComment) { + function postProofreadComment($article, $emailComment, $request) { if (!HookRegistry::call('ProofreaderAction::postProofreadComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.ProofreadCommentForm'); @@ -459,7 +450,7 @@ function postProofreadComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); $notificationManager->createNotification( $userRole['id'], 'notification.type.proofreadComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_PROOFREAD_COMMENT @@ -467,7 +458,7 @@ function postProofreadComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { @@ -496,8 +487,9 @@ function viewLayoutComments($article) { * Post layout comment. * @param $article object * @param $emailComment boolean + * @param $request object */ - function postLayoutComment($article, $emailComment) { + function postLayoutComment($article, $emailComment, $request) { if (!HookRegistry::call('ProofreaderAction::postLayoutComment', array(&$article, &$emailComment))) { import('classes.submission.form.comment.LayoutCommentForm'); @@ -512,7 +504,7 @@ function postLayoutComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); $notificationManager->createNotification( $userRole['id'], 'notification.type.layoutComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_LAYOUT_COMMENT @@ -520,9 +512,8 @@ function postLayoutComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } - } else { $commentForm->display(); return false; @@ -530,7 +521,6 @@ function postLayoutComment($article, $emailComment) { return true; } } - } ?> diff --git a/classes/submission/reviewer/ReviewerAction.inc.php b/classes/submission/reviewer/ReviewerAction.inc.php index dca6149134d..91d296bc6f9 100644 --- a/classes/submission/reviewer/ReviewerAction.inc.php +++ b/classes/submission/reviewer/ReviewerAction.inc.php @@ -36,8 +36,9 @@ function ReviewerAction() { * @param $reviewerSubmission object * @param $decline boolean * @param $send boolean + * @param $request object */ - function confirmReview($reviewerSubmission, $decline, $send) { + function confirmReview($reviewerSubmission, $decline, $send, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); @@ -58,8 +59,7 @@ function confirmReview($reviewerSubmission, $decline, $send) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('ReviewerAction::confirmReview', array(&$reviewerSubmission, &$email, $decline)); if ($email->isEnabled()) { - $email->setAssoc($decline?ARTICLE_EMAIL_REVIEW_DECLINE:ARTICLE_EMAIL_REVIEW_CONFIRM, ARTICLE_EMAIL_TYPE_REVIEW, $reviewId); - $email->send(); + $email->send($request); } $reviewAssignment->setDeclined($decline); @@ -69,26 +69,14 @@ function confirmReview($reviewerSubmission, $decline, $send) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - - $entry = new ArticleEventLogEntry(); - $entry->setArticleId($reviewAssignment->getSubmissionId()); - $entry->setUserId($reviewer->getId()); - $entry->setDateLogged(Core::getCurrentDate()); - $entry->setEventType($decline?ARTICLE_LOG_REVIEW_DECLINE:ARTICLE_LOG_REVIEW_ACCEPT); - $entry->setLogMessage($decline?'log.review.reviewDeclined':'log.review.reviewAccepted', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound())); - $entry->setAssocType(ARTICLE_LOG_TYPE_REVIEW); - $entry->setAssocId($reviewAssignment->getId()); - - ArticleLog::logEventEntry($reviewAssignment->getSubmissionId(), $entry); - + ArticleLog::logEvent($request, $reviewerSubmission, $decline?ARTICLE_LOG_REVIEW_DECLINE:ARTICLE_LOG_REVIEW_ACCEPT, $decline?'log.review.reviewDeclined':'log.review.reviewAccepted', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound(), 'reviewId' => $reviewAssignment->getId())); return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $assignedEditors = $email->ccAssignedEditors($reviewerSubmission->getArticleId()); $reviewingSectionEditors = $email->toAssignedReviewingSectionEditors($reviewerSubmission->getArticleId()); if (empty($assignedEditors) && empty($reviewingSectionEditors)) { - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $email->addRecipient($journal->getSetting('contactEmail'), $journal->getSetting('contactName')); $editorialContactName = $journal->getSetting('contactName'); } else { @@ -112,7 +100,7 @@ function confirmReview($reviewerSubmission, $decline, $send) { } $paramArray = array('reviewId' => $reviewId); if ($decline) $paramArray['declineReview'] = 1; - $email->displayEditForm(Request::url(null, 'reviewer', 'confirmReview'), $paramArray); + $email->displayEditForm($request->url(null, 'reviewer', 'confirmReview'), $paramArray); return false; } } @@ -124,8 +112,9 @@ function confirmReview($reviewerSubmission, $decline, $send) { * @param $reviewId int * @param $recommendation int * @param $send boolean + * @param $request object */ - function recordRecommendation(&$reviewerSubmission, $recommendation, $send) { + function recordRecommendation(&$reviewerSubmission, $recommendation, $send, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); @@ -149,8 +138,7 @@ function recordRecommendation(&$reviewerSubmission, $recommendation, $send) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('ReviewerAction::recordRecommendation', array(&$reviewerSubmission, &$email, $recommendation)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_REVIEW_COMPLETE, ARTICLE_EMAIL_TYPE_REVIEW, $reviewerSubmission->getReviewId()); - $email->send(); + $email->send($request); } $reviewAssignment->setRecommendation($recommendation); @@ -160,20 +148,9 @@ function recordRecommendation(&$reviewerSubmission, $recommendation, $send) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - - $entry = new ArticleEventLogEntry(); - $entry->setArticleId($reviewAssignment->getSubmissionId()); - $entry->setUserId($reviewer->getId()); - $entry->setDateLogged(Core::getCurrentDate()); - $entry->setEventType(ARTICLE_LOG_REVIEW_RECOMMENDATION); - $entry->setLogMessage('log.review.reviewRecommendationSet', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound())); - $entry->setAssocType(ARTICLE_LOG_TYPE_REVIEW); - $entry->setAssocId($reviewAssignment->getId()); - - ArticleLog::logEventEntry($reviewAssignment->getSubmissionId(), $entry); + ArticleLog::logEvent($request, $reviewerSubmission, ARTICLE_LOG_REVIEW_RECOMMENDATION, 'log.review.reviewRecommendationSet', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound(), 'reviewId' => $reviewAssignment->getId())); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $assignedEditors = $email->ccAssignedEditors($reviewerSubmission->getArticleId()); $reviewingSectionEditors = $email->toAssignedReviewingSectionEditors($reviewerSubmission->getArticleId()); if (empty($assignedEditors) && empty($reviewingSectionEditors)) { @@ -196,7 +173,7 @@ function recordRecommendation(&$reviewerSubmission, $recommendation, $send) { )); } - $email->displayEditForm(Request::url(null, 'reviewer', 'recordRecommendation'), + $email->displayEditForm($request->url(null, 'reviewer', 'recordRecommendation'), array('reviewId' => $reviewerSubmission->getReviewId(), 'recommendation' => $recommendation) ); return false; @@ -208,8 +185,10 @@ function recordRecommendation(&$reviewerSubmission, $recommendation, $send) { /** * Upload the annotated version of an article. * @param $reviewId int + * @param $reviewerSubmission object + * @param $request object */ - function uploadReviewerVersion($reviewId) { + function uploadReviewerVersion($reviewId, $reviewerSubmission, $request) { import('classes.file.ArticleFileManager'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); @@ -235,23 +214,12 @@ function uploadReviewerVersion($reviewId) { $reviewAssignment->stampModified(); $reviewAssignmentDao->updateReviewAssignment($reviewAssignment); - // Add log - import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - $userDao =& DAORegistry::getDAO('UserDAO'); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); - $entry = new ArticleEventLogEntry(); - $entry->setArticleId($reviewAssignment->getSubmissionId()); - $entry->setUserId($reviewer->getId()); - $entry->setDateLogged(Core::getCurrentDate()); - $entry->setEventType(ARTICLE_LOG_REVIEW_FILE); - $entry->setLogMessage('log.review.reviewerFile'); - $entry->setAssocType(ARTICLE_LOG_TYPE_REVIEW); - $entry->setAssocId($reviewAssignment->getId()); - - ArticleLog::logEventEntry($reviewAssignment->getSubmissionId(), $entry); + // Add log + import('classes.article.log.ArticleLog'); + ArticleLog::logEvent($request, $reviewerSubmission, ARTICLE_LOG_REVIEW_FILE, 'log.review.reviewerFile', array('reviewId' => $reviewAssignment->getId())); } } @@ -298,8 +266,9 @@ function viewPeerReviewComments(&$user, &$article, $reviewId) { * @param $article object * @param $reviewId int * @param $emailComment boolean + * @param $request object */ - function postPeerReviewComment(&$user, &$article, $reviewId, $emailComment) { + function postPeerReviewComment(&$user, &$article, $reviewId, $emailComment, $request) { if (!HookRegistry::call('ReviewerAction::postPeerReviewComment', array(&$user, &$article, &$reviewId, &$emailComment))) { import('classes.submission.form.comment.PeerReviewCommentForm'); @@ -315,7 +284,7 @@ function postPeerReviewComment(&$user, &$article, $reviewId, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'peerReview'); + $url = $request->url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'peerReview'); $notificationManager->createNotification( $userRole['id'], 'notification.type.reviewerComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_REVIEWER_COMMENT @@ -323,7 +292,7 @@ function postPeerReviewComment(&$user, &$article, $reviewId, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { diff --git a/classes/submission/sectionEditor/SectionEditorAction.inc.php b/classes/submission/sectionEditor/SectionEditorAction.inc.php index 6546f55cad6..2d26b7d99ea 100644 --- a/classes/submission/sectionEditor/SectionEditorAction.inc.php +++ b/classes/submission/sectionEditor/SectionEditorAction.inc.php @@ -47,13 +47,14 @@ function changeSection($sectionEditorSubmission, $sectionId) { * Records an editor's submission decision. * @param $sectionEditorSubmission object * @param $decision int + * @param $request object */ - function recordDecision($sectionEditorSubmission, $decision) { + function recordDecision($sectionEditorSubmission, $decision, $request) { $editAssignments =& $sectionEditorSubmission->getEditAssignments(); if (empty($editAssignments)) return; $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $editorDecision = array( 'editDecisionId' => null, 'editorId' => $user->getId(), @@ -70,9 +71,8 @@ function recordDecision($sectionEditorSubmission, $decision) { $decisions = SectionEditorSubmission::getEditorDecisionOptions(); // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); Locale::requireComponents(array(LOCALE_COMPONENT_APPLICATION_COMMON, LOCALE_COMPONENT_OJS_EDITOR)); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_EDITOR_DECISION, ARTICLE_LOG_TYPE_EDITOR, $user->getId(), 'log.editor.decision', array('editorName' => $user->getFullName(), 'articleId' => $sectionEditorSubmission->getArticleId(), 'decision' => Locale::translate($decisions[$decision]))); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_EDITOR_DECISION, 'log.editor.decision', array('editorName' => $user->getFullName(), 'decision' => Locale::translate($decisions[$decision]))); } } @@ -80,12 +80,14 @@ function recordDecision($sectionEditorSubmission, $decision) { * Assigns a reviewer to a submission. * @param $sectionEditorSubmission object * @param $reviewerId int + * @param $round int or null to use current round + * @param $request object */ - function addReviewer($sectionEditorSubmission, $reviewerId, $round = null) { + function addReviewer($sectionEditorSubmission, $reviewerId, $round, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewer =& $userDao->getUser($reviewerId); @@ -123,15 +125,14 @@ function addReviewer($sectionEditorSubmission, $reviewerId, $round = null) { $reviewAssignment = $reviewAssignmentDao->getReviewAssignment($sectionEditorSubmission->getArticleId(), $reviewerId, $round); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $settingsDao =& DAORegistry::getDAO('JournalSettingsDAO'); $settings =& $settingsDao->getJournalSettings($journal->getId()); - if (isset($settings['numWeeksPerReview'])) SectionEditorAction::setDueDate($sectionEditorSubmission->getArticleId(), $reviewAssignment->getId(), null, $settings['numWeeksPerReview'], false); + if (isset($settings['numWeeksPerReview'])) SectionEditorAction::setDueDate($sectionEditorSubmission->getArticleId(), $reviewAssignment->getId(), null, $settings['numWeeksPerReview'], false, $request); // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_REVIEW_ASSIGN, ARTICLE_LOG_TYPE_REVIEW, $reviewAssignment->getId(), 'log.review.reviewerAssigned', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $sectionEditorSubmission->getArticleId(), 'round' => $round)); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_REVIEW_ASSIGN, 'log.review.reviewerAssigned', array('reviewerName' => $reviewer->getFullName(), 'round' => $round, 'reviewId' => $reviewAssignment->getId())); } } @@ -139,12 +140,13 @@ function addReviewer($sectionEditorSubmission, $reviewerId, $round = null) { * Clears a review assignment from a submission. * @param $sectionEditorSubmission object * @param $reviewId int + * @param $request object */ - function clearReview($sectionEditorSubmission, $reviewId) { + function clearReview($sectionEditorSubmission, $reviewId, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); @@ -165,15 +167,17 @@ function clearReview($sectionEditorSubmission, $reviewId) { * Notifies a reviewer about a review assignment. * @param $sectionEditorSubmission object * @param $reviewId int + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { + function notifyReviewer($sectionEditorSubmission, $reviewId, $send, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); @@ -201,7 +205,6 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::notifyReviewer', array(&$sectionEditorSubmission, &$reviewAssignment, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_REVIEW_NOTIFY_REVIEWER, ARTICLE_EMAIL_TYPE_REVIEW, $reviewId); if ($reviewerAccessKeysEnabled) { import('lib.pkp.classes.security.AccessKeyManager'); import('pages.reviewer.ReviewerHandler'); @@ -218,7 +221,7 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { $email->clearAllRecipients(); $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); } - $email->send(); + $email->send($request); } $reviewAssignment->setDateNotified(Core::getCurrentDate()); @@ -227,11 +230,11 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { $reviewAssignmentDao->updateReviewAssignment($reviewAssignment); return true; } else { - if (!Request::getUserVar('continued') || $preventAddressChanges) { + if (!$request->getUserVar('continued') || $preventAddressChanges) { $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); } - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $weekLaterDate = strftime(Config::getVar('general', 'date_format_short'), strtotime('+1 week')); if ($reviewAssignment->getDateDue() != null) { @@ -241,7 +244,7 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { $reviewDueDate = strftime(Config::getVar('general', 'date_format_short'), strtotime('+' . $numWeeks . ' week')); } - $submissionUrl = Request::url(null, 'reviewer', 'submission', $reviewId, $reviewerAccessKeysEnabled?array('key' => 'ACCESS_KEY'):array()); + $submissionUrl = $request->url(null, 'reviewer', 'submission', $reviewId, $reviewerAccessKeysEnabled?array('key' => 'ACCESS_KEY'):array()); $paramArray = array( 'reviewerName' => $reviewer->getFullName(), @@ -253,7 +256,7 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { 'reviewGuidelines' => String::html2text($journal->getLocalizedSetting('reviewGuidelines')), 'submissionReviewUrl' => $submissionUrl, 'abstractTermIfEnabled' => ($sectionEditorSubmission->getLocalizedAbstract() == ''?'':Locale::translate('article.abstract')), - 'passwordResetUrl' => Request::url(null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))) + 'passwordResetUrl' => $request->url(null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))) ); $email->assignParams($paramArray); if ($isEmailBasedReview) { @@ -268,7 +271,7 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { } } } - $email->displayEditForm(Request::url(null, null, 'notifyReviewer'), array('reviewId' => $reviewId, 'articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'notifyReviewer'), array('reviewId' => $reviewId, 'articleId' => $sectionEditorSubmission->getArticleId())); return false; } } @@ -281,13 +284,13 @@ function notifyReviewer($sectionEditorSubmission, $reviewId, $send = false) { * @param $reviewId int * @return boolean true iff ready for redirect */ - function cancelReview($sectionEditorSubmission, $reviewId, $send = false) { + function cancelReview($sectionEditorSubmission, $reviewId, $send, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); @@ -303,8 +306,7 @@ function cancelReview($sectionEditorSubmission, $reviewId, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::cancelReview', array(&$sectionEditorSubmission, &$reviewAssignment, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_REVIEW_CANCEL, ARTICLE_EMAIL_TYPE_REVIEW, $reviewId); - $email->send(); + $email->send($request); } $reviewAssignment->setCancelled(1); @@ -318,7 +320,7 @@ function cancelReview($sectionEditorSubmission, $reviewId, $send = false) { import('classes.article.log.ArticleEventLogEntry'); ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_REVIEW_CANCEL, ARTICLE_LOG_TYPE_REVIEW, $reviewAssignment->getId(), 'log.review.reviewCancelled', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $sectionEditorSubmission->getArticleId(), 'round' => $reviewAssignment->getRound())); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); $paramArray = array( @@ -329,7 +331,7 @@ function cancelReview($sectionEditorSubmission, $reviewId, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'cancelReview', 'send'), array('reviewId' => $reviewId, 'articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'cancelReview', 'send'), array('reviewId' => $reviewId, 'articleId' => $sectionEditorSubmission->getArticleId())); return false; } } @@ -341,15 +343,17 @@ function cancelReview($sectionEditorSubmission, $reviewId, $send = false) { * Reminds a reviewer about a review assignment. * @param $sectionEditorSubmission object * @param $reviewId int + * @param $send boolean + * @param $request object * @return boolean true iff no error was encountered */ - function remindReviewer($sectionEditorSubmission, $reviewId, $send = false) { + function remindReviewer($sectionEditorSubmission, $reviewId, $send, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewerAccessKeysEnabled = $journal->getSetting('reviewerAccessKeysEnabled'); @@ -368,8 +372,6 @@ function remindReviewer($sectionEditorSubmission, $reviewId, $send = false) { if ($send && !$email->hasErrors()) { HookRegistry::call('SectionEditorAction::remindReviewer', array(&$sectionEditorSubmission, &$reviewAssignment, &$email)); - $email->setAssoc(ARTICLE_EMAIL_REVIEW_REMIND, ARTICLE_EMAIL_TYPE_REVIEW, $reviewId); - $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); if ($reviewerAccessKeysEnabled) { @@ -388,7 +390,7 @@ function remindReviewer($sectionEditorSubmission, $reviewId, $send = false) { $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); } - $email->send(); + $email->send($request); $reviewAssignment->setDateReminded(Core::getCurrentDate()); $reviewAssignment->setReminderWasAutomatic(0); @@ -397,11 +399,11 @@ function remindReviewer($sectionEditorSubmission, $reviewId, $send = false) { } elseif ($reviewAssignment->getSubmissionId() == $sectionEditorSubmission->getArticleId()) { $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { if (!isset($reviewer)) return true; $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); - $submissionUrl = Request::url(null, 'reviewer', 'submission', $reviewId, $reviewerAccessKeysEnabled?array('key' => 'ACCESS_KEY'):array()); + $submissionUrl = $request->url(null, 'reviewer', 'submission', $reviewId, $reviewerAccessKeysEnabled?array('key' => 'ACCESS_KEY'):array()); // Format the review due date $reviewDueDate = strtotime($reviewAssignment->getDateDue()); @@ -415,14 +417,14 @@ function remindReviewer($sectionEditorSubmission, $reviewId, $send = false) { 'reviewerPassword' => $reviewer->getPassword(), 'reviewDueDate' => $reviewDueDate, 'editorialContactSignature' => $user->getContactSignature(), - 'passwordResetUrl' => Request::url(null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))), + 'passwordResetUrl' => $request->url(null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))), 'submissionReviewUrl' => $submissionUrl ); $email->assignParams($paramArray); } $email->displayEditForm( - Request::url(null, null, 'remindReviewer', 'send'), + $request->url(null, null, 'remindReviewer', 'send'), array( 'reviewerId' => $reviewer->getId(), 'articleId' => $sectionEditorSubmission->getArticleId(), @@ -438,15 +440,17 @@ function remindReviewer($sectionEditorSubmission, $reviewId, $send = false) { * Thanks a reviewer for completing a review assignment. * @param $sectionEditorSubmission object * @param $reviewId int + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function thankReviewer($sectionEditorSubmission, $reviewId, $send = false) { + function thankReviewer($sectionEditorSubmission, $reviewId, $send, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); @@ -460,15 +464,14 @@ function thankReviewer($sectionEditorSubmission, $reviewId, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::thankReviewer', array(&$sectionEditorSubmission, &$reviewAssignment, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_REVIEW_THANK_REVIEWER, ARTICLE_EMAIL_TYPE_REVIEW, $reviewId); - $email->send(); + $email->send($request); } $reviewAssignment->setDateAcknowledged(Core::getCurrentDate()); $reviewAssignment->stampModified(); $reviewAssignmentDao->updateReviewAssignment($reviewAssignment); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); $paramArray = array( @@ -477,7 +480,7 @@ function thankReviewer($sectionEditorSubmission, $reviewId, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'thankReviewer', 'send'), array('reviewId' => $reviewId, 'articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'thankReviewer', 'send'), array('reviewId' => $reviewId, 'articleId' => $sectionEditorSubmission->getArticleId())); return false; } } @@ -489,11 +492,12 @@ function thankReviewer($sectionEditorSubmission, $reviewId, $send = false) { * @param $articleId int * @param $reviewId int * @param $quality int + * @param $request object */ - function rateReviewer($articleId, $reviewId, $quality = null) { + function rateReviewer($articleId, $reviewId, $quality, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); @@ -544,11 +548,12 @@ function makeReviewerFileViewable($articleId, $reviewId, $fileId, $revision, $vi * @param $dueDate string * @param $numWeeks int * @param $logEntry boolean + * @param $request object */ - function setDueDate($articleId, $reviewId, $dueDate = null, $numWeeks = null, $logEntry = false) { + function setDueDate($articleId, $reviewId, $dueDate, $numWeeks, $logEntry, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); @@ -601,14 +606,16 @@ function setDueDate($articleId, $reviewId, $dueDate = null, $numWeeks = null, $l /** * Notifies an author that a submission was unsuitable. * @param $sectionEditorSubmission object + * @param $send boolean true if an email should be sent + * @param $request object * @return boolean true iff ready for redirect */ - function unsuitableSubmission($sectionEditorSubmission, $send = false) { + function unsuitableSubmission($sectionEditorSubmission, $send, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); $author =& $userDao->getUser($sectionEditorSubmission->getUserId()); if (!isset($author)) return true; @@ -619,13 +626,12 @@ function unsuitableSubmission($sectionEditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::unsuitableSubmission', array(&$sectionEditorSubmission, &$author, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_EDITOR_NOTIFY_AUTHOR_UNSUITABLE, ARTICLE_EMAIL_TYPE_EDITOR, $user->getId()); - $email->send(); + $email->send($request); } - SectionEditorAction::archiveSubmission($sectionEditorSubmission); + SectionEditorAction::archiveSubmission($sectionEditorSubmission, $request); return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $paramArray = array( 'editorialContactSignature' => $user->getContactSignature(), 'authorName' => $author->getFullName() @@ -633,7 +639,7 @@ function unsuitableSubmission($sectionEditorSubmission, $send = false) { $email->assignParams($paramArray); $email->addRecipient($author->getEmail(), $author->getFullName()); } - $email->displayEditForm(Request::url(null, null, 'unsuitableSubmission'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'unsuitableSubmission'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } } @@ -641,19 +647,20 @@ function unsuitableSubmission($sectionEditorSubmission, $send = false) { /** * Sets the reviewer recommendation for a review assignment. * Also concatenates the reviewer and editor comments from Peer Review and adds them to Editor Review. - * @param $articleId int + * @param $article object * @param $reviewId int - * @param $recommendation int + * @param $acceptOption int + * @param $request object */ - function setReviewerRecommendation($articleId, $reviewId, $recommendation, $acceptOption) { + function setReviewerRecommendation($article, $reviewId, $recommendation, $acceptOption, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId(), true); - if ($reviewAssignment->getSubmissionId() == $articleId && !HookRegistry::call('SectionEditorAction::setReviewerRecommendation', array(&$reviewAssignment, &$reviewer, &$recommendation, &$acceptOption))) { + if ($reviewAssignment->getSubmissionId() == $article->getId() && !HookRegistry::call('SectionEditorAction::setReviewerRecommendation', array(&$reviewAssignment, &$reviewer, &$recommendation, &$acceptOption))) { $reviewAssignment->setRecommendation($recommendation); $nowDate = Core::getCurrentDate(); @@ -667,8 +674,7 @@ function setReviewerRecommendation($articleId, $reviewId, $recommendation, $acce // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($articleId, ARTICLE_LOG_REVIEW_RECOMMENDATION_BY_PROXY, ARTICLE_LOG_TYPE_REVIEW, $reviewAssignment->getId(), 'log.review.reviewRecommendationSetByProxy', array('editorName' => $user->getFullName(), 'reviewerName' => $reviewer->getFullName(), 'articleId' => $articleId, 'round' => $reviewAssignment->getRound())); + ArticleLog::logEvent($request, $article, ARTICLE_LOG_REVIEW_RECOMMENDATION_BY_PROXY, 'log.review.reviewRecommendationSetByProxy', array('editorName' => $user->getFullName(), 'reviewerName' => $reviewer->getFullName(), 'reviewId' => $reviewAssignment->getId(), 'round' => $reviewAssignment->getRound())); } } @@ -750,13 +756,13 @@ function viewReviewFormResponse($sectionEditorSubmission, $reviewId) { * @param $revision int * TODO: SECURITY! */ - function setCopyeditFile($sectionEditorSubmission, $fileId, $revision) { + function setCopyeditFile($sectionEditorSubmission, $fileId, $revision, $request) { import('classes.file.ArticleFileManager'); $articleFileManager = new ArticleFileManager($sectionEditorSubmission->getArticleId()); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $articleFileDao =& DAORegistry::getDAO('ArticleFileDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); if (!HookRegistry::call('SectionEditorAction::setCopyeditFile', array(&$sectionEditorSubmission, &$fileId, &$revision))) { // Copy the file from the editor decision file folder to the copyedit file folder @@ -783,12 +789,12 @@ function setCopyeditFile($sectionEditorSubmission, $fileId, $revision) { * @param $revision int * TODO: SECURITY! */ - function resubmitFile($sectionEditorSubmission, $fileId, $revision) { + function resubmitFile($sectionEditorSubmission, $fileId, $revision, $request) { import('classes.file.ArticleFileManager'); $articleFileManager = new ArticleFileManager($sectionEditorSubmission->getArticleId()); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $articleFileDao =& DAORegistry::getDAO('ArticleFileDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); if (!HookRegistry::call('SectionEditorAction::resubmitFile', array(&$sectionEditorSubmission, &$fileId, &$revision))) { // Increment the round @@ -823,15 +829,14 @@ function resubmitFile($sectionEditorSubmission, $fileId, $revision) { foreach ($sectionEditorSubmission->getReviewAssignments($previousRound) as $reviewAssignment) { if ($reviewAssignment->getRecommendation() !== null && $reviewAssignment->getRecommendation() !== '') { // Then this reviewer submitted a review. - SectionEditorAction::addReviewer($sectionEditorSubmission, $reviewAssignment->getReviewerId(), $sectionEditorSubmission->getCurrentRound()); + SectionEditorAction::addReviewer($sectionEditorSubmission, $reviewAssignment->getReviewerId(), $sectionEditorSubmission->getCurrentRound(), $request); } } // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_REVIEW_RESUBMIT, ARTICLE_LOG_TYPE_EDITOR, $user->getId(), 'log.review.resubmit', array('articleId' => $sectionEditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_REVIEW_RESUBMIT, 'log.review.resubmit'); } } @@ -840,11 +845,11 @@ function resubmitFile($sectionEditorSubmission, $fileId, $revision) { * @param $sectionEditorSubmission object * @param $copyeditorId int */ - function selectCopyeditor($sectionEditorSubmission, $copyeditorId) { + function selectCopyeditor($sectionEditorSubmission, $copyeditorId, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); // Check to see if the requested copyeditor is not already // assigned to copyedit this article. @@ -861,21 +866,22 @@ function selectCopyeditor($sectionEditorSubmission, $copyeditorId) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_COPYEDIT_ASSIGN, ARTICLE_LOG_TYPE_COPYEDIT, $copyeditorId, 'log.copyedit.copyeditorAssigned', array('copyeditorName' => $copyeditor->getFullName(), 'articleId' => $sectionEditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_COPYEDIT_ASSIGN, 'log.copyedit.copyeditorAssigned', array('copyeditorName' => $copyeditor->getFullName())); } } /** * Notifies a copyeditor about a copyedit assignment. * @param $sectionEditorSubmission object + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function notifyCopyeditor($sectionEditorSubmission, $send = false) { + function notifyCopyeditor($sectionEditorSubmission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($sectionEditorSubmission, 'COPYEDIT_REQUEST'); @@ -886,8 +892,7 @@ function notifyCopyeditor($sectionEditorSubmission, $send = false) { if ($sectionEditorSubmission->getFileBySignoffType('SIGNOFF_COPYEDITING_INITIAL') && (!$email->isEnabled() || ($send && !$email->hasErrors()))) { HookRegistry::call('SectionEditorAction::notifyCopyeditor', array(&$sectionEditorSubmission, &$copyeditor, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_COPYEDITOR, ARTICLE_EMAIL_TYPE_COPYEDIT, $sectionEditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $copyeditInitialSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); @@ -897,18 +902,18 @@ function notifyCopyeditor($sectionEditorSubmission, $send = false) { $copyeditInitialSignoff->setDateAcknowledged(null); $signoffDao->updateObject($copyeditInitialSignoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($copyeditor->getEmail(), $copyeditor->getFullName()); $paramArray = array( 'copyeditorName' => $copyeditor->getFullName(), 'copyeditorUsername' => $copyeditor->getUsername(), 'copyeditorPassword' => $copyeditor->getPassword(), 'editorialContactSignature' => $user->getContactSignature(), - 'submissionCopyeditingUrl' => Request::url(null, 'copyeditor', 'submission', $sectionEditorSubmission->getArticleId()) + 'submissionCopyeditingUrl' => $request->url(null, 'copyeditor', 'submission', $sectionEditorSubmission->getArticleId()) ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'notifyCopyeditor', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'notifyCopyeditor', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } return true; @@ -917,10 +922,11 @@ function notifyCopyeditor($sectionEditorSubmission, $send = false) { /** * Initiates the initial copyedit stage when the editor does the copyediting. * @param $sectionEditorSubmission object + * @param $request object */ - function initiateCopyedit($sectionEditorSubmission) { + function initiateCopyedit($sectionEditorSubmission, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); // Only allow copyediting to be initiated if a copyedit file exists. if ($sectionEditorSubmission->getFileBySignoffType('SIGNOFF_COPYEDITING_INITIAL') && !HookRegistry::call('SectionEditorAction::initiateCopyedit', array(&$sectionEditorSubmission))) { @@ -939,13 +945,15 @@ function initiateCopyedit($sectionEditorSubmission) { /** * Thanks a copyeditor about a copyedit assignment. * @param $sectionEditorSubmission object + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function thankCopyeditor($sectionEditorSubmission, $send = false) { + function thankCopyeditor($sectionEditorSubmission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($sectionEditorSubmission, 'COPYEDIT_ACK'); @@ -956,15 +964,14 @@ function thankCopyeditor($sectionEditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::thankCopyeditor', array(&$sectionEditorSubmission, &$copyeditor, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_ACKNOWLEDGE, ARTICLE_EMAIL_TYPE_COPYEDIT, $sectionEditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $initialSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); $initialSignoff->setDateAcknowledged(Core::getCurrentDate()); $signoffDao->updateObject($initialSignoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($copyeditor->getEmail(), $copyeditor->getFullName()); $paramArray = array( 'copyeditorName' => $copyeditor->getFullName(), @@ -972,7 +979,7 @@ function thankCopyeditor($sectionEditorSubmission, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'thankCopyeditor', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'thankCopyeditor', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } return true; @@ -981,13 +988,15 @@ function thankCopyeditor($sectionEditorSubmission, $send = false) { /** * Notifies the author that the copyedit is complete. * @param $sectionEditorSubmission object + * @param $send boolean + * @param $request object * @return true iff ready for redirect */ - function notifyAuthorCopyedit($sectionEditorSubmission, $send = false) { + function notifyAuthorCopyedit($sectionEditorSubmission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($sectionEditorSubmission, 'COPYEDIT_AUTHOR_REQUEST'); @@ -998,8 +1007,7 @@ function notifyAuthorCopyedit($sectionEditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::notifyAuthorCopyedit', array(&$sectionEditorSubmission, &$author, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR, ARTICLE_EMAIL_TYPE_COPYEDIT, $sectionEditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $authorSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_AUTHOR', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); @@ -1010,19 +1018,19 @@ function notifyAuthorCopyedit($sectionEditorSubmission, $send = false) { $authorSignoff->setDateAcknowledged(null); $signoffDao->updateObject($authorSignoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($author->getEmail(), $author->getFullName()); $paramArray = array( 'authorName' => $author->getFullName(), 'authorUsername' => $author->getUsername(), 'authorPassword' => $author->getPassword(), 'editorialContactSignature' => $user->getContactSignature(), - 'submissionCopyeditingUrl' => Request::url(null, 'author', 'submission', $sectionEditorSubmission->getArticleId()) + 'submissionCopyeditingUrl' => $request->url(null, 'author', 'submission', $sectionEditorSubmission->getArticleId()) ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'notifyAuthorCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'notifyAuthorCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } return true; @@ -1031,13 +1039,15 @@ function notifyAuthorCopyedit($sectionEditorSubmission, $send = false) { /** * Thanks an author for completing editor / author review. * @param $sectionEditorSubmission object + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function thankAuthorCopyedit($sectionEditorSubmission, $send = false) { + function thankAuthorCopyedit($sectionEditorSubmission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($sectionEditorSubmission, 'COPYEDIT_AUTHOR_ACK'); @@ -1048,15 +1058,14 @@ function thankAuthorCopyedit($sectionEditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::thankAuthorCopyedit', array(&$sectionEditorSubmission, &$author, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_AUTHOR_ACKNOWLEDGE, ARTICLE_EMAIL_TYPE_COPYEDIT, $sectionEditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $signoff = $signoffDao->build('SIGNOFF_COPYEDITING_AUTHOR', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); $signoff->setDateAcknowledged(Core::getCurrentDate()); $signoffDao->updateObject($signoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($author->getEmail(), $author->getFullName()); $paramArray = array( 'authorName' => $author->getFullName(), @@ -1064,7 +1073,7 @@ function thankAuthorCopyedit($sectionEditorSubmission, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'thankAuthorCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'thankAuthorCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } return true; @@ -1074,13 +1083,14 @@ function thankAuthorCopyedit($sectionEditorSubmission, $send = false) { * Notify copyeditor about final copyedit. * @param $sectionEditorSubmission object * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function notifyFinalCopyedit($sectionEditorSubmission, $send = false) { + function notifyFinalCopyedit($sectionEditorSubmission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($sectionEditorSubmission, 'COPYEDIT_FINAL_REQUEST'); @@ -1091,8 +1101,7 @@ function notifyFinalCopyedit($sectionEditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::notifyFinalCopyedit', array(&$sectionEditorSubmission, &$copyeditor, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL, ARTICLE_EMAIL_TYPE_COPYEDIT, $sectionEditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $signoff = $signoffDao->build('SIGNOFF_COPYEDITING_FINAL', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); @@ -1104,18 +1113,18 @@ function notifyFinalCopyedit($sectionEditorSubmission, $send = false) { $signoffDao->updateObject($signoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($copyeditor->getEmail(), $copyeditor->getFullName()); $paramArray = array( 'copyeditorName' => $copyeditor->getFullName(), 'copyeditorUsername' => $copyeditor->getUsername(), 'copyeditorPassword' => $copyeditor->getPassword(), 'editorialContactSignature' => $user->getContactSignature(), - 'submissionCopyeditingUrl' => Request::url(null, 'copyeditor', 'submission', $sectionEditorSubmission->getArticleId()) + 'submissionCopyeditingUrl' => $request->url(null, 'copyeditor', 'submission', $sectionEditorSubmission->getArticleId()) ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'notifyFinalCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'notifyFinalCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } return true; @@ -1124,13 +1133,15 @@ function notifyFinalCopyedit($sectionEditorSubmission, $send = false) { /** * Thank copyeditor for completing final copyedit. * @param $sectionEditorSubmission object + * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function thankFinalCopyedit($sectionEditorSubmission, $send = false) { + function thankFinalCopyedit($sectionEditorSubmission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($sectionEditorSubmission, 'COPYEDIT_FINAL_ACK'); @@ -1141,15 +1152,14 @@ function thankFinalCopyedit($sectionEditorSubmission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::thankFinalCopyedit', array(&$sectionEditorSubmission, &$copyeditor, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_COPYEDIT_NOTIFY_FINAL_ACKNOWLEDGE, ARTICLE_EMAIL_TYPE_COPYEDIT, $sectionEditorSubmission->getArticleId()); - $email->send(); + $email->send($request); } $signoff = $signoffDao->build('SIGNOFF_COPYEDITING_FINAL', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); $signoff->setDateAcknowledged(Core::getCurrentDate()); $signoffDao->updateObject($signoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($copyeditor->getEmail(), $copyeditor->getFullName()); $paramArray = array( 'copyeditorName' => $copyeditor->getFullName(), @@ -1157,7 +1167,7 @@ function thankFinalCopyedit($sectionEditorSubmission, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'thankFinalCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'thankFinalCopyedit', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId())); return false; } return true; @@ -1196,12 +1206,13 @@ function uploadReviewVersion($sectionEditorSubmission) { /** * Upload the post-review version of an article. * @param $sectionEditorSubmission object + * @param $request object */ - function uploadEditorVersion($sectionEditorSubmission) { + function uploadEditorVersion($sectionEditorSubmission, $request) { import('classes.file.ArticleFileManager'); $articleFileManager = new ArticleFileManager($sectionEditorSubmission->getArticleId()); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $fileName = 'upload'; if ($articleFileManager->uploadedFileExists($fileName) && !HookRegistry::call('SectionEditorAction::uploadEditorVersion', array(&$sectionEditorSubmission))) { @@ -1219,8 +1230,7 @@ function uploadEditorVersion($sectionEditorSubmission) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_EDITOR_FILE, ARTICLE_LOG_TYPE_EDITOR, $sectionEditorSubmission->getEditorFileId(), 'log.editor.editorFile'); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_EDITOR_FILE, 'log.editor.editorFile', array('fileId' => $sectionEditorSubmission->getEditorFileId())); } } @@ -1274,12 +1284,13 @@ function uploadCopyeditVersion($sectionEditorSubmission, $copyeditStage) { /** * Editor completes initial copyedit (copyeditors disabled). * @param $sectionEditorSubmission object + * @param $request object */ - function completeCopyedit($sectionEditorSubmission) { + function completeCopyedit($sectionEditorSubmission, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); // This is only allowed if copyeditors are disabled. if ($journal->getSetting('useCopyeditors')) return; @@ -1289,21 +1300,22 @@ function completeCopyedit($sectionEditorSubmission) { $signoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $sectionEditorSubmission->getArticleId()); $signoff->setDateCompleted(Core::getCurrentDate()); $signoffDao->updateObject($signoff); + // Add log entry import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_COPYEDIT_INITIAL, ARTICLE_LOG_TYPE_COPYEDIT, $user->getId(), 'log.copyedit.initialEditComplete', Array('copyeditorName' => $user->getFullName(), 'articleId' => $sectionEditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_COPYEDIT_INITIAL, 'log.copyedit.initialEditComplete', array('copyeditorName' => $user->getFullName())); } /** * Section editor completes final copyedit (copyeditors disabled). * @param $sectionEditorSubmission object + * @param $request object */ - function completeFinalCopyedit($sectionEditorSubmission) { + function completeFinalCopyedit($sectionEditorSubmission, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); // This is only allowed if copyeditors are disabled. if ($journal->getSetting('useCopyeditors')) return; @@ -1327,19 +1339,19 @@ function completeFinalCopyedit($sectionEditorSubmission) { } } } + // Add log entry import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_COPYEDIT_FINAL, ARTICLE_LOG_TYPE_COPYEDIT, $user->getId(), 'log.copyedit.finalEditComplete', Array('copyeditorName' => $user->getFullName(), 'articleId' => $sectionEditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_COPYEDIT_FINAL, 'log.copyedit.finalEditComplete', array('copyeditorName' => $user->getFullName())); } /** * Archive a submission. * @param $sectionEditorSubmission object */ - function archiveSubmission($sectionEditorSubmission) { + function archiveSubmission($sectionEditorSubmission, $request) { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); if (HookRegistry::call('SectionEditorAction::archiveSubmission', array(&$sectionEditorSubmission))) return; @@ -1350,15 +1362,14 @@ function archiveSubmission($sectionEditorSubmission) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_EDITOR_ARCHIVE, ARTICLE_LOG_TYPE_EDITOR, $sectionEditorSubmission->getArticleId(), 'log.editor.archived', array('articleId' => $sectionEditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_EDITOR_ARCHIVE, 'log.editor.archived'); } /** * Restores a submission to the queue. * @param $sectionEditorSubmission object */ - function restoreToQueue($sectionEditorSubmission) { + function restoreToQueue($sectionEditorSubmission, $request) { if (HookRegistry::call('SectionEditorAction::restoreToQueue', array(&$sectionEditorSubmission))) return; $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); @@ -1380,8 +1391,7 @@ function restoreToQueue($sectionEditorSubmission) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent($sectionEditorSubmission->getArticleId(), ARTICLE_LOG_EDITOR_RESTORE, ARTICLE_LOG_TYPE_EDITOR, $sectionEditorSubmission->getArticleId(), 'log.editor.restored', array('articleId' => $sectionEditorSubmission->getArticleId())); + ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_EDITOR_RESTORE, 'log.editor.restored'); } /** @@ -1441,20 +1451,22 @@ function uploadLayoutVersion($submission) { * Assign a layout editor to a submission. * @param $submission object * @param $editorId int user ID of the new layout editor + * @param $request object */ - function assignLayoutEditor($submission, $editorId) { + function assignLayoutEditor($submission, $editorId, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); if (HookRegistry::call('SectionEditorAction::assignLayoutEditor', array(&$submission, &$editorId))) return; import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); $layoutSignoff = $signoffDao->build('SIGNOFF_LAYOUT', ASSOC_TYPE_ARTICLE, $submission->getArticleId()); $layoutProofSignoff = $signoffDao->build('SIGNOFF_PROOFREADING_LAYOUT', ASSOC_TYPE_ARTICLE, $submission->getArticleId()); if ($layoutSignoff->getUserId()) { $layoutEditor =& $userDao->getUser($layoutSignoff->getUserId()); - ArticleLog::logEvent($submission->getArticleId(), ARTICLE_LOG_LAYOUT_UNASSIGN, ARTICLE_LOG_TYPE_LAYOUT, $layoutSignoff->getId(), 'log.layout.layoutEditorUnassigned', array('editorName' => $layoutEditor->getFullName(), 'articleId' => $submission->getArticleId())); + + // Add log entry + ArticleLog::logEvent($request, $submission, ARTICLE_LOG_LAYOUT_UNASSIGN, 'log.layout.layoutEditorUnassigned', array('layoutSignoffId' => $layoutSignoff->getId(), 'editorName' => $layoutEditor->getFullName())); } $layoutSignoff->setUserId($editorId); @@ -1471,21 +1483,24 @@ function assignLayoutEditor($submission, $editorId) { $signoffDao->updateObject($layoutProofSignoff); $layoutEditor =& $userDao->getUser($layoutSignoff->getUserId()); - ArticleLog::logEvent($submission->getArticleId(), ARTICLE_LOG_LAYOUT_ASSIGN, ARTICLE_LOG_TYPE_LAYOUT, $layoutSignoff->getId(), 'log.layout.layoutEditorAssigned', array('editorName' => $layoutEditor->getFullName(), 'articleId' => $submission->getArticleId())); + + // Add log entry + ArticleLog::logEvent($request, $submission, ARTICLE_LOG_LAYOUT_ASSIGN, 'log.layout.layoutEditorAssigned', array('layoutSignoffId' => $layoutSignoff->getId(), 'editorName' => $layoutEditor->getFullName())); } /** * Notifies the current layout editor about an assignment. * @param $submission object * @param $send boolean + * @param $reque object * @return boolean true iff ready for redirect */ - function notifyLayoutEditor($submission, $send = false) { + function notifyLayoutEditor($submission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $submissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($submission, 'LAYOUT_REQUEST'); @@ -1496,8 +1511,7 @@ function notifyLayoutEditor($submission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::notifyLayoutEditor', array(&$submission, &$layoutEditor, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_LAYOUT_NOTIFY_EDITOR, ARTICLE_EMAIL_TYPE_LAYOUT, $layoutSignoff->getId()); - $email->send(); + $email->send($request); } $layoutSignoff->setDateNotified(Core::getCurrentDate()); @@ -1506,17 +1520,17 @@ function notifyLayoutEditor($submission, $send = false) { $layoutSignoff->setDateAcknowledged(null); $signoffDao->updateObject($layoutSignoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($layoutEditor->getEmail(), $layoutEditor->getFullName()); $paramArray = array( 'layoutEditorName' => $layoutEditor->getFullName(), 'layoutEditorUsername' => $layoutEditor->getUsername(), 'editorialContactSignature' => $user->getContactSignature(), - 'submissionLayoutUrl' => Request::url(null, 'layoutEditor', 'submission', $submission->getArticleId()) + 'submissionLayoutUrl' => $request->url(null, 'layoutEditor', 'submission', $submission->getArticleId()) ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'notifyLayoutEditor', 'send'), array('articleId' => $submission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'notifyLayoutEditor', 'send'), array('articleId' => $submission->getArticleId())); return false; } return true; @@ -1526,14 +1540,15 @@ function notifyLayoutEditor($submission, $send = false) { * Sends acknowledgement email to the current layout editor. * @param $submission object * @param $send boolean + * @param $request object * @return boolean true iff ready for redirect */ - function thankLayoutEditor($submission, $send = false) { + function thankLayoutEditor($submission, $send, $request) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $submissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($submission, 'LAYOUT_ACK'); @@ -1545,15 +1560,14 @@ function thankLayoutEditor($submission, $send = false) { if (!$email->isEnabled() || ($send && !$email->hasErrors())) { HookRegistry::call('SectionEditorAction::thankLayoutEditor', array(&$submission, &$layoutEditor, &$email)); if ($email->isEnabled()) { - $email->setAssoc(ARTICLE_EMAIL_LAYOUT_THANK_EDITOR, ARTICLE_EMAIL_TYPE_LAYOUT, $layoutSignoff->getId()); - $email->send(); + $email->send($request); } $layoutSignoff->setDateAcknowledged(Core::getCurrentDate()); $signoffDao->updateObject($layoutSignoff); } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $email->addRecipient($layoutEditor->getEmail(), $layoutEditor->getFullName()); $paramArray = array( 'layoutEditorName' => $layoutEditor->getFullName(), @@ -1561,7 +1575,7 @@ function thankLayoutEditor($submission, $send = false) { ); $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'thankLayoutEditor', 'send'), array('articleId' => $submission->getArticleId())); + $email->displayEditForm($request->url(null, null, 'thankLayoutEditor', 'send'), array('articleId' => $submission->getArticleId())); return false; } return true; @@ -1650,13 +1664,14 @@ function deleteArticleImage($submission, $fileId, $revision) { /** * Add Submission Note * @param $articleId int + * @param $request object */ - function addSubmissionNote($articleId) { + function addSubmissionNote($articleId, $request) { import('classes.file.ArticleFileManager'); $noteDao =& DAORegistry::getDAO('NoteDAO'); - $user =& Request::getUser(); - $journal =& Request::getJournal(); + $user =& $request->getUser(); + $journal =& $request->getJournal(); $note = $noteDao->newDataObject(); $note->setAssocType(ASSOC_TYPE_ARTICLE); @@ -1665,8 +1680,8 @@ function addSubmissionNote($articleId) { $note->setContextId($journal->getId()); $note->setDateCreated(Core::getCurrentDate()); $note->setDateModified(Core::getCurrentDate()); - $note->setTitle(Request::getUserVar('title')); - $note->setContents(Request::getUserVar('note')); + $note->setTitle($request->getUserVar('title')); + $note->setContents($request->getUserVar('note')); if (!HookRegistry::call('SectionEditorAction::addSubmissionNote', array(&$articleId, &$note))) { $articleFileManager = new ArticleFileManager($articleId); @@ -1685,11 +1700,9 @@ function addSubmissionNote($articleId) { /** * Remove Submission Note * @param $articleId int + * @param $request object */ - function removeSubmissionNote($articleId) { - $noteId = Request::getUserVar('noteId'); - $fileId = Request::getUserVar('fileId'); - + function removeSubmissionNote($articleId, $noteId, $fileId) { if (HookRegistry::call('SectionEditorAction::removeSubmissionNote', array(&$articleId, &$noteId, &$fileId))) return; // if there is an attached file, remove it as well @@ -1707,24 +1720,24 @@ function removeSubmissionNote($articleId) { * Updates Submission Note * @param $articleId int */ - function updateSubmissionNote($articleId) { + function updateSubmissionNote($articleId, $request) { import('classes.file.ArticleFileManager'); $noteDao =& DAORegistry::getDAO('NoteDAO'); - $user =& Request::getUser(); - $journal =& Request::getJournal(); + $user =& $request->getUser(); + $journal =& $request->getJournal(); $note = new Note(); - $note->setId(Request::getUserVar('noteId')); + $note->setId($request->getUserVar('noteId')); $note->setAssocType(ASSOC_TYPE_ARTICLE); $note->setAssocId($articleId); $note->setUserId($user->getId()); $note->setDateModified(Core::getCurrentDate()); $note->setContextId($journal->getId()); - $note->setTitle(Request::getUserVar('title')); - $note->setContents(Request::getUserVar('note')); - $note->setFileId(Request::getUserVar('fileId')); + $note->setTitle($request->getUserVar('title')); + $note->setContents($request->getUserVar('note')); + $note->setFileId($request->getUserVar('fileId')); if (HookRegistry::call('SectionEditorAction::updateSubmissionNote', array(&$articleId, &$note))) return; @@ -1737,7 +1750,7 @@ function updateSubmissionNote($articleId) { $note->setFileId($fileId); } else { - if (Request::getUserVar('removeUploadedFile')) { + if ($request->getUserVar('removeUploadedFile')) { $articleFileManager = new ArticleFileManager($articleId); $articleFileManager->deleteFile($note->getFileId()); $note->setFileId(0); @@ -1797,8 +1810,9 @@ function viewPeerReviewComments(&$article, $reviewId) { * @param $article object * @param $reviewId int * @param $emailComment boolean + * @param $request object */ - function postPeerReviewComment(&$article, $reviewId, $emailComment) { + function postPeerReviewComment(&$article, $reviewId, $emailComment, $request) { if (HookRegistry::call('SectionEditorAction::postPeerReviewComment', array(&$article, &$reviewId, &$emailComment))) return; import('classes.submission.form.comment.PeerReviewCommentForm'); @@ -1814,7 +1828,7 @@ function postPeerReviewComment(&$article, $reviewId, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'peerReview'); + $url = $request->url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'peerReview'); $notificationManager->createNotification( $userRole['id'], 'notification.type.reviewerComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_REVIEWER_COMMENT @@ -1822,7 +1836,7 @@ function postPeerReviewComment(&$article, $reviewId, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { @@ -1850,8 +1864,9 @@ function viewEditorDecisionComments($article) { * Post editor decision comment. * @param $article int * @param $emailComment boolean + * @param $request object */ - function postEditorDecisionComment($article, $emailComment) { + function postEditorDecisionComment($article, $emailComment, $request) { if (HookRegistry::call('SectionEditorAction::postEditorDecisionComment', array(&$article, &$emailComment))) return; import('classes.submission.form.comment.EditorDecisionCommentForm'); @@ -1867,7 +1882,7 @@ function postEditorDecisionComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'editorDecision'); + $url = $request->url(null, $userRole['role'], 'submissionReview', $article->getId(), null, 'editorDecision'); $notificationManager->createNotification( $userRole['id'], 'notification.type.editorDecisionComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_EDITOR_DECISION_COMMENT @@ -1875,7 +1890,7 @@ function postEditorDecisionComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { $commentForm->display(); @@ -1888,15 +1903,16 @@ function postEditorDecisionComment($article, $emailComment) { * Email editor decision comment. * @param $sectionEditorSubmission object * @param $send boolean + * @param $request object */ - function emailEditorDecisionComment($sectionEditorSubmission, $send) { + function emailEditorDecisionComment($sectionEditorSubmission, $send, $request) { $userDao =& DAORegistry::getDAO('UserDAO'); $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); - $user =& Request::getUser(); import('classes.mail.ArticleMailTemplate'); $decisionTemplateMap = array( @@ -1919,8 +1935,8 @@ function emailEditorDecisionComment($sectionEditorSubmission, $send) { $copyeditor = $sectionEditorSubmission->getUserBySignoffType('SIGNOFF_COPYEDITING_INITIAL'); if ($send && !$email->hasErrors()) { - HookRegistry::call('SectionEditorAction::emailEditorDecisionComment', array(&$sectionEditorSubmission, &$send)); - $email->send(); + HookRegistry::call('SectionEditorAction::emailEditorDecisionComment', array(&$sectionEditorSubmission, &$send, &$request)); + $email->send($request); if ($decisionConst == SUBMISSION_EDITOR_DECISION_DECLINE) { // If the most recent decision was a decline, @@ -1944,7 +1960,7 @@ function emailEditorDecisionComment($sectionEditorSubmission, $send) { return true; } else { - if (!Request::getUserVar('continued')) { + if (!$request->getUserVar('continued')) { $authorUser =& $userDao->getUser($sectionEditorSubmission->getUserId()); $authorEmail = $authorUser->getEmail(); $email->assignParams(array( @@ -1958,7 +1974,7 @@ function emailEditorDecisionComment($sectionEditorSubmission, $send) { $email->addCc ($author->getEmail(), $author->getFullName()); } } - } elseif (Request::getUserVar('importPeerReviews')) { + } elseif ($request->getUserVar('importPeerReviews')) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignments =& $reviewAssignmentDao->getBySubmissionId($sectionEditorSubmission->getArticleId(), $sectionEditorSubmission->getCurrentRound()); $reviewIndexes =& $reviewAssignmentDao->getReviewIndexesForRound($sectionEditorSubmission->getArticleId(), $sectionEditorSubmission->getCurrentRound()); @@ -2018,7 +2034,7 @@ function emailEditorDecisionComment($sectionEditorSubmission, $send) { $email->setBody($oldBody . $body); } - $email->displayEditForm(Request::url(null, null, 'emailEditorDecisionComment', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId()), 'submission/comment/editorDecisionEmail.tpl', array('isAnEditor' => true)); + $email->displayEditForm($request->url(null, null, 'emailEditorDecisionComment', 'send'), array('articleId' => $sectionEditorSubmission->getArticleId()), 'submission/comment/editorDecisionEmail.tpl', array('isAnEditor' => true)); return false; } @@ -2031,11 +2047,11 @@ function emailEditorDecisionComment($sectionEditorSubmission, $send) { * @param $inhibitExistingEmail boolean * @return boolean true iff ready for redirect */ - function blindCcReviewsToReviewers($article, $send = false, $inhibitExistingEmail = false) { + function blindCcReviewsToReviewers($article, $send, $inhibitExistingEmail, $request) { $commentDao =& DAORegistry::getDAO('ArticleCommentDAO'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $comments =& $commentDao->getArticleComments($article->getId(), COMMENT_TYPE_EDITOR_DECISION); $reviewAssignments =& $reviewAssignmentDao->getBySubmissionId($article->getId(), $article->getCurrentRound()); @@ -2045,16 +2061,16 @@ function blindCcReviewsToReviewers($article, $send = false, $inhibitExistingEmai $commentsText .= String::html2text($comment->getComments()) . "\n\n"; } - $user =& Request::getUser(); + $user =& $request->getUser(); import('classes.mail.ArticleMailTemplate'); $email = new ArticleMailTemplate($article, 'SUBMISSION_DECISION_REVIEWERS'); if ($send && !$email->hasErrors() && !$inhibitExistingEmail) { HookRegistry::call('SectionEditorAction::blindCcReviewsToReviewers', array(&$article, &$reviewAssignments, &$email)); - $email->send(); + $email->send($request); return true; } else { - if ($inhibitExistingEmail || !Request::getUserVar('continued')) { + if ($inhibitExistingEmail || !$request->getUserVar('continued')) { $email->clearRecipients(); foreach ($reviewAssignments as $reviewAssignment) { if ($reviewAssignment->getDateCompleted() != null && !$reviewAssignment->getCancelled()) { @@ -2071,7 +2087,7 @@ function blindCcReviewsToReviewers($article, $send = false, $inhibitExistingEmai $email->assignParams($paramArray); } - $email->displayEditForm(Request::url(null, null, 'blindCcReviewsToReviewers'), array('articleId' => $article->getId())); + $email->displayEditForm($request->url(null, null, 'blindCcReviewsToReviewers'), array('articleId' => $article->getId())); return false; } } @@ -2094,8 +2110,9 @@ function viewCopyeditComments($article) { * Post copyedit comment. * @param $article object * @param $emailComment boolean + * @param $request object */ - function postCopyeditComment($article, $emailComment) { + function postCopyeditComment($article, $emailComment, $request) { if (HookRegistry::call('SectionEditorAction::postCopyeditComment', array(&$article, &$emailComment))) return; import('classes.submission.form.comment.CopyeditCommentForm'); @@ -2111,7 +2128,7 @@ function postCopyeditComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'copyedit'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'copyedit'); $notificationManager->createNotification( $userRole['id'], 'notification.type.copyeditComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_COPYEDIT_COMMENT @@ -2119,9 +2136,8 @@ function postCopyeditComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } - } else { $commentForm->display(); return false; @@ -2148,7 +2164,7 @@ function viewLayoutComments($article) { * @param $article object * @param $emailComment boolean */ - function postLayoutComment($article, $emailComment) { + function postLayoutComment($article, $emailComment, $request) { if (HookRegistry::call('SectionEditorAction::postLayoutComment', array(&$article, &$emailComment))) return; import('classes.submission.form.comment.LayoutCommentForm'); @@ -2164,7 +2180,7 @@ function postLayoutComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'layout'); $notificationManager->createNotification( $userRole['id'], 'notification.type.layoutComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_LAYOUT_COMMENT @@ -2172,9 +2188,8 @@ function postLayoutComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } - } else { $commentForm->display(); return false; @@ -2200,8 +2215,9 @@ function viewProofreadComments($article) { * Post proofread comment. * @param $article object * @param $emailComment boolean + * @param $request object */ - function postProofreadComment($article, $emailComment) { + function postProofreadComment($article, $emailComment, $request) { if (HookRegistry::call('SectionEditorAction::postProofreadComment', array(&$article, &$emailComment))) return; import('classes.submission.form.comment.ProofreadCommentForm'); @@ -2217,7 +2233,7 @@ function postProofreadComment($article, $emailComment) { $notificationManager = new NotificationManager(); $notificationUsers = $article->getAssociatedUserIds(true, false); foreach ($notificationUsers as $userRole) { - $url = Request::url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); + $url = $request->url(null, $userRole['role'], 'submissionEditing', $article->getId(), null, 'proofread'); $notificationManager->createNotification( $userRole['id'], 'notification.type.proofreadComment', $article->getLocalizedTitle(), $url, 1, NOTIFICATION_TYPE_PROOFREAD_COMMENT @@ -2225,7 +2241,7 @@ function postProofreadComment($article, $emailComment) { } if ($emailComment) { - $commentForm->email(); + $commentForm->email($request); } } else { @@ -2240,10 +2256,10 @@ function postProofreadComment($article, $emailComment) { * @param $reviewId int * @param $accept boolean True === accept; false === decline */ - function confirmReviewForReviewer($reviewId, $accept) { + function confirmReviewForReviewer($reviewId, $accept, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId(), true); @@ -2260,18 +2276,7 @@ function confirmReviewForReviewer($reviewId, $accept) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - - $entry = new ArticleEventLogEntry(); - $entry->setArticleId($reviewAssignment->getSubmissionId()); - $entry->setUserId($user->getId()); - $entry->setDateLogged(Core::getCurrentDate()); - $entry->setEventType(ARTICLE_LOG_REVIEW_CONFIRM_BY_PROXY); - $entry->setLogMessage($accept?'log.review.reviewAcceptedByProxy':'log.review.reviewDeclinedByProxy', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound(), 'userName' => $user->getFullName())); - $entry->setAssocType(ARTICLE_LOG_TYPE_REVIEW); - $entry->setAssocId($reviewAssignment->getId()); - - ArticleLog::logEventEntry($reviewAssignment->getSubmissionId(), $entry); + ArticleLog::logEvent($request, $article, ARTICLE_LOG_REVIEW_CONFIRM_BY_PROXY, $accept?'log.review.reviewAcceptedByProxy':'log.review.reviewDeclinedByProxy', array('reviewerName' => $reviewer->getFullName(), 'round' => $reviewAssignment->getRound(), 'userName' => $user->getFullName(), 'reviewId' => $reviewAssignment->getId())); } } @@ -2279,10 +2284,10 @@ function confirmReviewForReviewer($reviewId, $accept) { * Upload a review on behalf of its reviewer. * @param $reviewId int */ - function uploadReviewForReviewer($reviewId) { + function uploadReviewForReviewer($reviewId, $article, $request) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $user =& Request::getUser(); + $user =& $request->getUser(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId(), true); @@ -2318,18 +2323,7 @@ function uploadReviewForReviewer($reviewId) { // Add log import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - - $entry = new ArticleEventLogEntry(); - $entry->setArticleId($reviewAssignment->getSubmissionId()); - $entry->setUserId($user->getId()); - $entry->setDateLogged(Core::getCurrentDate()); - $entry->setEventType(ARTICLE_LOG_REVIEW_FILE_BY_PROXY); - $entry->setLogMessage('log.review.reviewFileByProxy', array('reviewerName' => $reviewer->getFullName(), 'articleId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound(), 'userName' => $user->getFullName())); - $entry->setAssocType(ARTICLE_LOG_TYPE_REVIEW); - $entry->setAssocId($reviewAssignment->getId()); - - ArticleLog::logEventEntry($reviewAssignment->getSubmissionId(), $entry); + ArticleLog::logEvent($request, $article, ARTICLE_LOG_REVIEW_FILE_BY_PROXY, 'log.review.reviewFileByProxy', array('reviewerName' => $reviewer->getFullName(), 'round' => $reviewAssignment->getRound(), 'userName' => $user->getFullName(), 'reviewId' => $reviewAssignment->getId())); } } diff --git a/classes/tasks/ReviewReminder.inc.php b/classes/tasks/ReviewReminder.inc.php index 418c33906e8..c8264830008 100644 --- a/classes/tasks/ReviewReminder.inc.php +++ b/classes/tasks/ReviewReminder.inc.php @@ -42,8 +42,6 @@ function sendReminder ($reviewAssignment, $article, $journal) { $email->setJournal($journal); $email->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName')); $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName()); - $email->setAssoc(ARTICLE_EMAIL_REVIEW_REMIND, ARTICLE_EMAIL_TYPE_REVIEW, $reviewId); - $email->setSubject($email->getSubject($journal->getPrimaryLocale())); $email->setBody($email->getBody($journal->getPrimaryLocale())); diff --git a/classes/user/UserAction.inc.php b/classes/user/UserAction.inc.php index 0e41744d9ba..74033467874 100644 --- a/classes/user/UserAction.inc.php +++ b/classes/user/UserAction.inc.php @@ -118,9 +118,9 @@ function mergeUsers($oldUserId, $newUserId) { } $articleEmailLogDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); - $articleEmailLogDao->transferArticleLogEntries($oldUserId, $newUserId); + $articleEmailLogDao->changeUser($oldUserId, $newUserId); $articleEventLogDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - $articleEventLogDao->transferArticleLogEntries($oldUserId, $newUserId); + $articleEventLogDao->changeUser($oldUserId, $newUserId); $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); foreach ($articleCommentDao->getArticleCommentsByUserId($oldUserId) as $articleComment) { diff --git a/dbscripts/xml/upgrade.xml b/dbscripts/xml/upgrade.xml index 6a080baed3b..64aef9494bf 100644 --- a/dbscripts/xml/upgrade.xml +++ b/dbscripts/xml/upgrade.xml @@ -108,6 +108,11 @@ + + + + + @@ -220,8 +225,10 @@ - - - - + + + + + + diff --git a/dbscripts/xml/upgrade/2.3.3_preupdate.xml b/dbscripts/xml/upgrade/2.3.3_preupdate.xml index 332a26110cb..e472e810817 100644 --- a/dbscripts/xml/upgrade/2.3.3_preupdate.xml +++ b/dbscripts/xml/upgrade/2.3.3_preupdate.xml @@ -2,12 +2,12 @@ diff --git a/dbscripts/xml/upgrade/2.3.4_preupdate.xml b/dbscripts/xml/upgrade/2.3.4_preupdate.xml new file mode 100644 index 00000000000..5fad6a7c403 --- /dev/null +++ b/dbscripts/xml/upgrade/2.3.4_preupdate.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/dbscripts/xml/upgrade/2.3.4_update.xml b/dbscripts/xml/upgrade/2.3.4_update.xml index 6fd78c80946..f99bf60b792 100644 --- a/dbscripts/xml/upgrade/2.3.4_update.xml +++ b/dbscripts/xml/upgrade/2.3.4_update.xml @@ -2,12 +2,12 @@ @@ -27,4 +27,14 @@ ALTER TABLE article_files MODIFY type BIGINT(20) + + + + UPDATE event_log SET assoc_type = 257 + INSERT INTO event_log_settings (log_id, setting_name, setting_value, setting_type) SELECT log_id, 'assoc_type', assoc_type_old, 'string' FROM event_log WHERE assoc_id IS NOT NULL AND assoc_id <> 0 + INSERT INTO event_log_settings (log_id, setting_name, setting_value, setting_type) SELECT log_id, 'assoc_type', assoc_type_old, 'string' FROM event_log WHERE assoc_type IS NOT NULL AND assoc_type <> 0 + + + UPDATE email_log SET assoc_type = 257 + diff --git a/lib/pkp b/lib/pkp index 43ac1ab4000..4eb3c6c8b66 160000 --- a/lib/pkp +++ b/lib/pkp @@ -1 +1 @@ -Subproject commit 43ac1ab40003e4353cb10963fb723d9525ff52fd +Subproject commit 4eb3c6c8b66087f6866ae0e47129739ea693c234 diff --git a/locale/en_US/locale.xml b/locale/en_US/locale.xml index 37bed9f5653..5dabc578b56 100644 --- a/locale/en_US/locale.xml +++ b/locale/en_US/locale.xml @@ -275,12 +275,6 @@ * LOG - This section contains entries related to log entries. * --> - Level - Info - Notice - Warning - Error - Submission event Article submitted Submission sent to issue scheduling queue diff --git a/pages/author/SubmissionCommentsHandler.inc.php b/pages/author/SubmissionCommentsHandler.inc.php index a8d5e784185..2643f9cc552 100644 --- a/pages/author/SubmissionCommentsHandler.inc.php +++ b/pages/author/SubmissionCommentsHandler.inc.php @@ -63,24 +63,25 @@ function viewCopyeditComments($args) { /** * Post copyedit comment. + * @param $args array + * @param $request object */ - function postCopyeditComment() { + function postCopyeditComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $trackSubmissionHandler = new TrackSubmissionHandler(); $trackSubmissionHandler->validate($articleId); $authorSubmission =& $trackSubmissionHandler->submission; - if (AuthorAction::postCopyeditComment($authorSubmission, $emailComment)) { + if (AuthorAction::postCopyeditComment($authorSubmission, $emailComment, $request)) { AuthorAction::viewCopyeditComments($authorSubmission); } - } /** @@ -100,21 +101,23 @@ function viewProofreadComments($args) { /** * Post proofread comment. + * @param $args array + * @param $request object */ - function postProofreadComment() { + function postProofreadComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $trackSubmissionHandler = new TrackSubmissionHandler(); $trackSubmissionHandler->validate($articleId); $authorSubmission =& $trackSubmissionHandler->submission; - if (AuthorAction::postProofreadComment($authorSubmission, $emailComment)) { + if (AuthorAction::postProofreadComment($authorSubmission, $emailComment, $request)) { AuthorAction::viewProofreadComments($authorSubmission); } } @@ -138,19 +141,19 @@ function viewLayoutComments($args) { /** * Post layout comment. */ - function postLayoutComment() { + function postLayoutComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $trackSubmissionHandler = new TrackSubmissionHandler(); $trackSubmissionHandler->validate($articleId); $authorSubmission =& $trackSubmissionHandler->submission; - if (AuthorAction::postLayoutComment($authorSubmission, $emailComment)) { + if (AuthorAction::postLayoutComment($authorSubmission, $emailComment, $request)) { AuthorAction::viewLayoutComments($authorSubmission); } @@ -159,16 +162,16 @@ function postLayoutComment() { /** * Email an editor decision comment. */ - function emailEditorDecisionComment() { + function emailEditorDecisionComment($args, $request) { $this->setupTemplate(true); - $articleId = (int) Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); $trackSubmissionHandler = new TrackSubmissionHandler(); $trackSubmissionHandler->validate($articleId); $authorSubmission =& $trackSubmissionHandler->submission; - if (AuthorAction::emailEditorDecisionComment($authorSubmission, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submissionReview', array($articleId)); + if (AuthorAction::emailEditorDecisionComment($authorSubmission, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submissionReview', array($articleId)); } } @@ -200,10 +203,12 @@ function editComment($args) { /** * Save comment. + * @param $args array + * @param $request object */ - function saveComment() { - $articleId = Request::getUserVar('articleId'); - $commentId = Request::getUserVar('commentId'); + function saveComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $commentId = (int) $request->getUserVar('commentId'); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -212,7 +217,7 @@ function saveComment() { $this->setupTemplate(true); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $trackSubmissionHandler = new TrackSubmissionHandler(); $trackSubmissionHandler->validate($articleId); @@ -220,10 +225,10 @@ function saveComment() { if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) { // Cannot edit an editor decision comment. - Request::redirect(null, Request::getRequestedPage()); + $request->redirect(null, $request->getRequestedPage()); } - AuthorAction::saveComment($authorSubmission, $comment, $emailComment); + AuthorAction::saveComment($authorSubmission, $comment, $emailComment, $request); // refresh the comment $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); @@ -231,13 +236,13 @@ function saveComment() { // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) { - Request::redirect(null, null, 'viewEditorDecisionComments', $articleId); + $request->redirect(null, null, 'viewEditorDecisionComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_COPYEDIT) { - Request::redirect(null, null, 'viewCopyeditComments', $articleId); + $request->redirect(null, null, 'viewCopyeditComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) { - Request::redirect(null, null, 'viewLayoutComments', $articleId); + $request->redirect(null, null, 'viewLayoutComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) { - Request::redirect(null, null, 'viewProofreadComments', $articleId); + $request->redirect(null, null, 'viewProofreadComments', $articleId); } } diff --git a/pages/author/SubmitHandler.inc.php b/pages/author/SubmitHandler.inc.php index 2e3f424061c..98a75b34616 100644 --- a/pages/author/SubmitHandler.inc.php +++ b/pages/author/SubmitHandler.inc.php @@ -33,7 +33,7 @@ function SubmitHandler() { * @param $args array optional, if set the first parameter is the step to display */ function submit($args, $request) { - $step = isset($args[0]) ? (int) $args[0] : 0; + $step = (int) array_shift($args); $articleId = $request->getUserVar('articleId'); $journal =& $request->getJournal(); @@ -44,7 +44,7 @@ function submit($args, $request) { $formClass = "AuthorSubmitStep{$step}Form"; import("classes.author.form.submit.$formClass"); - $submitForm = new $formClass($article, $journal); + $submitForm = new $formClass($article, $journal, $request); if ($submitForm->isLocaleResubmit()) { $submitForm->readInputData(); } else { @@ -59,7 +59,7 @@ function submit($args, $request) { * @param $request Request */ function saveSubmit($args, &$request) { - $step = isset($args[0]) ? (int) $args[0] : 0; + $step = (int) array_shift($args); $articleId = $request->getUserVar('articleId'); $journal =& $request->getJournal(); @@ -70,7 +70,7 @@ function saveSubmit($args, &$request) { $formClass = "AuthorSubmitStep{$step}Form"; import("classes.author.form.submit.$formClass"); - $submitForm = new $formClass($article, $journal); + $submitForm = new $formClass($article, $journal, $request); $submitForm->readInputData(); if (!HookRegistry::call('SubmitHandler::saveSubmit', array($step, &$article, &$submitForm))) { @@ -152,7 +152,7 @@ function saveSubmit($args, &$request) { } if (!isset($editData) && $submitForm->validate()) { - $articleId = $submitForm->execute($request); + $articleId = $submitForm->execute(); HookRegistry::call('Author::SubmitHandler::saveSubmit', array(&$step, &$article, &$submitForm)); if ($step == 5) { @@ -293,20 +293,20 @@ function deleteSubmitSuppFile($args) { Request::redirect(null, null, 'submit', '4', array('articleId' => $articleId)); } - function expediteSubmission() { - $articleId = (int) Request::getUserVar('articleId'); + function expediteSubmission($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $article =& $this->article; // The author must also be an editor to perform this task. if (Validation::isEditor($journal->getId()) && $article->getSubmissionFileId()) { import('classes.submission.editor.EditorAction'); - EditorAction::expediteSubmission($article); - Request::redirect(null, 'editor', 'submissionEditing', array($article->getId())); + EditorAction::expediteSubmission($article, $request); + $request->redirect(null, 'editor', 'submissionEditing', array($article->getId())); } - Request::redirect(null, null, 'track'); + $request->redirect(null, null, 'track'); } /** diff --git a/pages/author/TrackSubmissionHandler.inc.php b/pages/author/TrackSubmissionHandler.inc.php index 4f981a7aaf4..e1d8f64aaa4 100644 --- a/pages/author/TrackSubmissionHandler.inc.php +++ b/pages/author/TrackSubmissionHandler.inc.php @@ -331,15 +331,15 @@ function submissionEditing($args) { /** * Upload the author's revised version of an article. */ - function uploadRevisedVersion() { - $articleId = Request::getUserVar('articleId'); + function uploadRevisedVersion($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; $this->setupTemplate(true); - AuthorAction::uploadRevisedVersion($submission); + AuthorAction::uploadRevisedVersion($submission, $request); - Request::redirect(null, null, 'submissionReview', $articleId); + $request->redirect(null, null, 'submissionReview', $articleId); } function viewMetadata($args, $request) { @@ -391,9 +391,9 @@ function removeCoverPage($args) { Request::redirect(null, null, 'viewMetadata', $articleId); } - function uploadCopyeditVersion() { - $copyeditStage = Request::getUserVar('copyeditStage'); - $articleId = Request::getUserVar('articleId'); + function uploadCopyeditVersion($args, $request) { + $copyeditStage = $request->getUserVar('copyeditStage'); + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; @@ -401,17 +401,17 @@ function uploadCopyeditVersion() { AuthorAction::uploadCopyeditVersion($submission, $copyeditStage); - Request::redirect(null, null, 'submissionEditing', $articleId); + $request->redirect(null, null, 'submissionEditing', $articleId); } - function completeAuthorCopyedit($args) { - $articleId = Request::getUserVar('articleId'); + function completeAuthorCopyedit($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; $this->setupTemplate(true); - if (AuthorAction::completeAuthorCopyedit($submission, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (AuthorAction::completeAuthorCopyedit($submission, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } @@ -494,17 +494,17 @@ function validate($articleId) { /** * Set the author proofreading date completion */ - function authorProofreadingComplete($args) { - $articleId = Request::getUserVar('articleId'); + function authorProofreadingComplete($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId); $this->setupTemplate(true); - $send = isset($args[0]) && $args[0] == 'send' ? true : false; + $send = (int) array_shift($args); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId,'PROOFREAD_AUTHOR_COMPLETE', $send?'':Request::url(null, 'author', 'authorProofreadingComplete', 'send'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_AUTHOR_COMPLETE', $request, $send?'':$request->url(null, 'author', 'authorProofreadingComplete', 'send'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } diff --git a/pages/copyeditor/SubmissionCommentsHandler.inc.php b/pages/copyeditor/SubmissionCommentsHandler.inc.php index 2a43cbefc87..382765ccf2c 100644 --- a/pages/copyeditor/SubmissionCommentsHandler.inc.php +++ b/pages/copyeditor/SubmissionCommentsHandler.inc.php @@ -46,23 +46,24 @@ function viewLayoutComments($args) { /** * Post layout comment. + * @param $args array + * @param $request object */ - function postLayoutComment() { + function postLayoutComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionCopyeditHandler = new SubmissionCopyeditHandler(); $submissionCopyeditHandler->validate($articleId); $submission =& $submissionCopyeditHandler->submission; - if (CopyeditorAction::postLayoutComment($submission, $emailComment)) { + if (CopyeditorAction::postLayoutComment($submission, $emailComment, $request)) { CopyeditorAction::viewLayoutComments($submission); } - } /** @@ -83,23 +84,24 @@ function viewCopyeditComments($args) { /** * Post copyedit comment. + * @param $args array + * @param $request object */ - function postCopyeditComment() { + function postCopyeditComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionCopyeditHandler = new SubmissionCopyeditHandler(); $submissionCopyeditHandler->validate($articleId); $submission =& $submissionCopyeditHandler->submission; - if (CopyeditorAction::postCopyeditComment($submission, $emailComment)) { + if (CopyeditorAction::postCopyeditComment($submission, $emailComment, $request)) { CopyeditorAction::viewCopyeditComments($submission); } - } /** @@ -125,10 +127,12 @@ function editComment($args) { /** * Save comment. + * @param $args array + * @param $request object */ - function saveComment() { - $articleId = Request::getUserVar('articleId'); - $commentId = Request::getUserVar('commentId'); + function saveComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $commentId = (int) $request->getUserVar('commentId'); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -137,12 +141,12 @@ function saveComment() { $this->setupTemplate(true); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionCopyeditHandler = new SubmissionCopyeditHandler(); $submissionCopyeditHandler->validate($articleId); $submission =& $submissionCopyeditHandler->submission; - CopyeditorAction::saveComment($submission, $comment, $emailComment); + CopyeditorAction::saveComment($submission, $comment, $emailComment, $request); // refresh the comment $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); @@ -150,11 +154,11 @@ function saveComment() { // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_COPYEDIT) { - Request::redirect(null, null, 'viewCopyeditComments', $articleId); + $request->redirect(null, null, 'viewCopyeditComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) { - Request::redirect(null, null, 'viewLayoutComments', $articleId); + $request->redirect(null, null, 'viewLayoutComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) { - Request::redirect(null, null, 'viewProofreadComments', $articleId); + $request->redirect(null, null, 'viewProofreadComments', $articleId); } } diff --git a/pages/copyeditor/SubmissionCopyeditHandler.inc.php b/pages/copyeditor/SubmissionCopyeditHandler.inc.php index c686e97cef5..7266b6301e8 100644 --- a/pages/copyeditor/SubmissionCopyeditHandler.inc.php +++ b/pages/copyeditor/SubmissionCopyeditHandler.inc.php @@ -34,7 +34,7 @@ function submission($args, &$request) { $submission =& $this->submission; $this->setupTemplate(true, $articleId); - CopyeditorAction::copyeditUnderway($submission); + CopyeditorAction::copyeditUnderway($submission, $request); $journal =& $router->getContext($request); $useLayoutEditors = $journal->getSetting('useLayoutEditors'); @@ -53,37 +53,42 @@ function submission($args, &$request) { $templateMgr->display('copyeditor/submission.tpl'); } - function completeCopyedit($args) { - $articleId = Request::getUserVar('articleId'); + function completeCopyedit($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; $this->setupTemplate(true, $articleId); - if (CopyeditorAction::completeCopyedit($submission, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submission', $articleId); + if (CopyeditorAction::completeCopyedit($submission, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submission', $articleId); } } - function completeFinalCopyedit($args) { - $articleId = Request::getUserVar('articleId'); + function completeFinalCopyedit($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; $this->setupTemplate(true, $articleId);; - if (CopyeditorAction::completeFinalCopyedit($submission, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submission', $articleId); + if (CopyeditorAction::completeFinalCopyedit($submission, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submission', $articleId); } } - function uploadCopyeditVersion() { - $articleId = Request::getUserVar('articleId'); + /** + * Upload a copyedit version + * @param $args array + * @param $request object + */ + function uploadCopyeditVersion($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; - $copyeditStage = Request::getUserVar('copyeditStage'); - CopyeditorAction::uploadCopyeditVersion($submission, $copyeditStage); + $copyeditStage = $request->getUserVar('copyeditStage'); + CopyeditorAction::uploadCopyeditVersion($submission, $copyeditStage, $request); - Request::redirect(null, null, 'submission', $articleId); + $request->redirect(null, null, 'submission', $articleId); } // @@ -169,17 +174,17 @@ function validate($articleId) { /** * Set the author proofreading date completion */ - function authorProofreadingComplete($args) { - $articleId = Request::getUserVar('articleId'); + function authorProofreadingComplete($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId); $this->setupTemplate(true, $articleId); - $send = Request::getUserVar('send') ? true : false; + $send = $request->getUserVar('send') ? true : false; import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId,'PROOFREAD_AUTHOR_COMPLETE', $send?'':Request::url(null, 'copyeditor', 'authorProofreadingComplete', 'send'))) { - Request::redirect(null, null, 'submission', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_AUTHOR_COMPLETE', $request, $send?'':$request->url(null, 'copyeditor', 'authorProofreadingComplete', 'send'))) { + $request->redirect(null, null, 'submission', $articleId); } } diff --git a/pages/editor/EditorHandler.inc.php b/pages/editor/EditorHandler.inc.php index 649d81e5fa8..4ffdc333896 100644 --- a/pages/editor/EditorHandler.inc.php +++ b/pages/editor/EditorHandler.inc.php @@ -391,13 +391,13 @@ function deleteEditAssignment($args) { /** * Assigns the selected editor to the submission. */ - function assignEditor($args) { + function assignEditor($args, $request) { $this->validate(); Locale::requireComponents(array(LOCALE_COMPONENT_PKP_MANAGER)); // manager.people.noneEnrolled - $journal =& Request::getJournal(); - $articleId = Request::getUserVar('articleId'); - $editorId = Request::getUserVar('editorId'); + $journal =& $request->getJournal(); + $articleId = $request->getUserVar('articleId'); + $editorId = $request->getUserVar('editorId'); $roleDao =& DAORegistry::getDAO('RoleDAO'); $isSectionEditor = $roleDao->roleExists($journal->getId(), $editorId, ROLE_ID_SECTION_EDITOR); @@ -412,7 +412,7 @@ function assignEditor($args) { $this->setupTemplate(EDITOR_SECTION_SUBMISSIONS, $articleId, 'summary'); // FIXME: Prompt for due date. - if (EditorAction::assignEditor($articleId, $editorId, $isEditor, Request::getUserVar('send'))) { + if (EditorAction::assignEditor($articleId, $editorId, $isEditor, Request::getUserVar('send'), $request)) { Request::redirect(null, null, 'submission', $articleId); } } else { diff --git a/pages/editor/index.php b/pages/editor/index.php index 59a7973e4f8..f2b9a8cabdf 100644 --- a/pages/editor/index.php +++ b/pages/editor/index.php @@ -98,10 +98,8 @@ // Submission History // case 'submissionEventLog': - case 'submissionEventLogType': case 'clearSubmissionEventLog': case 'submissionEmailLog': - case 'submissionEmailLogType': case 'clearSubmissionEmailLog': case 'addSubmissionNote': case 'removeSubmissionNote': diff --git a/pages/layoutEditor/SubmissionCommentsHandler.inc.php b/pages/layoutEditor/SubmissionCommentsHandler.inc.php index 51ad81d0894..57b219712f7 100644 --- a/pages/layoutEditor/SubmissionCommentsHandler.inc.php +++ b/pages/layoutEditor/SubmissionCommentsHandler.inc.php @@ -47,22 +47,21 @@ function viewLayoutComments($args) { /** * Post layout comment. */ - function postLayoutComment() { + function postLayoutComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionLayoutHandler = new SubmissionLayoutHandler(); $submissionLayoutHandler->validate($articleId); $submission =& $submissionLayoutHandler->submission; - if (LayoutEditorAction::postLayoutComment($submission, $emailComment)) { + if (LayoutEditorAction::postLayoutComment($submission, $emailComment, $request)) { LayoutEditorAction::viewLayoutComments($submission); } - } /** @@ -84,19 +83,19 @@ function viewProofreadComments($args) { /** * Post proofread comment. */ - function postProofreadComment() { + function postProofreadComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionLayoutHandler = new SubmissionLayoutHandler(); $submissionLayoutHandler->validate($articleId); $submission =& $submissionLayoutHandler->submission; - if (LayoutEditorAction::postProofreadComment($submission, $emailComment)) { + if (LayoutEditorAction::postProofreadComment($submission, $emailComment, $request)) { LayoutEditorAction::viewProofreadComments($submission); } @@ -125,10 +124,12 @@ function editComment($args) { /** * Save comment. + * @param $args array + * @param $request object */ - function saveComment() { - $articleId = Request::getUserVar('articleId'); - $commentId = Request::getUserVar('commentId'); + function saveComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $commentId = (int) $request->getUserVar('commentId'); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -137,19 +138,19 @@ function saveComment() { $this->setupTemplate(true); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionLayoutHandler = new SubmissionLayoutHandler(); $submissionLayoutHandler->validate($articleId); $submission =& $submissionLayoutHandler->submission; - LayoutEditorAction::saveComment($submission, $comment, $emailComment); + LayoutEditorAction::saveComment($submission, $comment, $emailComment, $request); // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) { - Request::redirect(null, null, 'viewLayoutComments', $articleId); + $request->redirect(null, null, 'viewLayoutComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) { - Request::redirect(null, null, 'viewProofreadComments', $articleId); + $request->redirect(null, null, 'viewProofreadComments', $articleId); } } diff --git a/pages/layoutEditor/SubmissionLayoutHandler.inc.php b/pages/layoutEditor/SubmissionLayoutHandler.inc.php index 7a27b9571e1..e15d7fb98c0 100644 --- a/pages/layoutEditor/SubmissionLayoutHandler.inc.php +++ b/pages/layoutEditor/SubmissionLayoutHandler.inc.php @@ -95,15 +95,15 @@ function viewMetadata($args, $request) { /** * Mark assignment as complete. */ - function completeAssignment($args) { - $articleId = Request::getUserVar('articleId'); + function completeAssignment($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->setupTemplate(true, $articleId, 'editing'); $submissionLayoutHandler = new SubmissionLayoutHandler(); $submissionLayoutHandler->validate($articleId); $submission =& $submissionLayoutHandler->submission; - if (LayoutEditorAction::completeLayoutEditing($submission, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submission', $articleId); + if (LayoutEditorAction::completeLayoutEditing($submission, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submission', $articleId); } } @@ -518,20 +518,20 @@ function viewFile($args) { /** * Sets the date of layout editor proofreading completion */ - function layoutEditorProofreadingComplete($args) { - $articleId = Request::getUserVar('articleId'); + function layoutEditorProofreadingComplete($args, $request) { + $articleId = (int) $request::getUserVar('articleId'); list($journal, $submission) = $this->validate($articleId); $this->setupTemplate(true, $articleId); $send = false; if (isset($args[0])) { - $send = Request::getUserVar('send') ? true : false; + $send = $request->getUserVar('send') ? true : false; } import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId,'PROOFREAD_LAYOUT_COMPLETE', $send?'':Request::url(null, 'layoutEditor', 'layoutEditorProofreadingComplete', 'send'))) { - Request::redirect(null, null, 'submission', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_LAYOUT_COMPLETE', $request, $send?'':$request->url(null, 'layoutEditor', 'layoutEditorProofreadingComplete', 'send'))) { + $request->redirect(null, null, 'submission', $articleId); } } diff --git a/pages/manager/ImportExportHandler.inc.php b/pages/manager/ImportExportHandler.inc.php index 267cf327f9a..ba694b7cb19 100644 --- a/pages/manager/ImportExportHandler.inc.php +++ b/pages/manager/ImportExportHandler.inc.php @@ -25,7 +25,7 @@ class ImportExportHandler extends ManagerHandler { function ImportExportHandler() { parent::ManagerHandler(); } - function importexport($args) { + function importexport($args, $request) { $this->validate(); $this->setupTemplate(true); @@ -35,11 +35,12 @@ function importexport($args) { if (array_shift($args) === 'plugin') { $pluginName = array_shift($args); $plugin =& PluginRegistry::getPlugin(IMPORTEXPORT_PLUGIN_CATEGORY, $pluginName); - if ($plugin) return $plugin->display($args); + if ($plugin) return $plugin->display($args, $request); } $templateMgr->assign_by_ref('plugins', PluginRegistry::getPlugins(IMPORTEXPORT_PLUGIN_CATEGORY)); $templateMgr->assign('helpTopicId', 'journal.managementPages.importExport'); $templateMgr->display('manager/importexport/plugins.tpl'); } } + ?> diff --git a/pages/proofreader/SubmissionCommentsHandler.inc.php b/pages/proofreader/SubmissionCommentsHandler.inc.php index f9a99c74c5e..a3a67551605 100644 --- a/pages/proofreader/SubmissionCommentsHandler.inc.php +++ b/pages/proofreader/SubmissionCommentsHandler.inc.php @@ -45,21 +45,23 @@ function viewProofreadComments($args) { /** * Post proofread comment. + * @param $args array + * @param $request object */ - function postProofreadComment() { + function postProofreadComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionProofreadHandler = new SubmissionProofreadHandler(); $submissionProofreadHandler->validate($articleId); $submission =& $submissionProofreadHandler->submission; - if (ProofreaderAction::postProofreadComment($submission, $emailComment)) { + if (ProofreaderAction::postProofreadComment($submission, $emailComment, $request)) { ProofreaderAction::viewProofreadComments($submission); } } @@ -83,22 +85,21 @@ function viewLayoutComments($args) { /** * Post layout comment. */ - function postLayoutComment() { + function postLayoutComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionProofreadHandler = new SubmissionProofreadHandler(); $submissionProofreadHandler->validate($articleId); $submission =& $submissionProofreadHandler->submission; - if (ProofreaderAction::postLayoutComment($submission, $emailComment)) { + if (ProofreaderAction::postLayoutComment($submission, $emailComment, $request)) { ProofreaderAction::viewLayoutComments($submission); } - } /** @@ -123,23 +124,25 @@ function editComment($args) { /** * Save comment. + * @param $args array + * @param $request object */ - function saveComment() { - $articleId = Request::getUserVar('articleId'); - $commentId = Request::getUserVar('commentId'); + function saveComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $commentId = (int) $request->getUserVar('commentId'); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); $comment =& $this->comment; // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionProofreadHandler = new SubmissionProofreadHandler(); $submissionProofreadHandler->validate($articleId); $submission =& $submissionProofreadHandler->submission; - ProofreaderAction::saveComment($submission, $comment, $emailComment); + ProofreaderAction::saveComment($submission, $comment, $emailComment, $request); // Determine which page to redirect back to. $commentPageMap = array( @@ -148,7 +151,7 @@ function saveComment() { ); // Redirect back to initial comments page - Request::redirect(null, null, $commentPageMap[$comment->getCommentType()], $articleId); + $request->redirect(null, null, $commentPageMap[$comment->getCommentType()], $articleId); } /** diff --git a/pages/proofreader/SubmissionProofreadHandler.inc.php b/pages/proofreader/SubmissionProofreadHandler.inc.php index d08e7d9a6ab..b4c30bbdaf0 100644 --- a/pages/proofreader/SubmissionProofreadHandler.inc.php +++ b/pages/proofreader/SubmissionProofreadHandler.inc.php @@ -69,14 +69,14 @@ function submission($args) { /** * Sets proofreader completion date */ - function completeProofreader($args) { - $articleId = Request::getUserVar('articleId'); + function completeProofreader($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $this->setupTemplate(true); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_COMPLETE', Request::getUserVar('send')?'':Request::url(null, 'proofreader', 'completeProofreader'))) { - Request::redirect(null, null, 'submission', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_COMPLETE', $request, $request->getUserVar('send')?'':$request->url(null, 'proofreader', 'completeProofreader'))) { + $request->redirect(null, null, 'submission', $articleId); } } diff --git a/pages/reviewer/SubmissionCommentsHandler.inc.php b/pages/reviewer/SubmissionCommentsHandler.inc.php index fdfdb8fa6c2..9b49e26de5e 100644 --- a/pages/reviewer/SubmissionCommentsHandler.inc.php +++ b/pages/reviewer/SubmissionCommentsHandler.inc.php @@ -48,12 +48,12 @@ function viewPeerReviewComments($args) { /** * Post peer review comments. */ - function postPeerReviewComment() { - $articleId = Request::getUserVar('articleId'); - $reviewId = Request::getUserVar('reviewId'); + function postPeerReviewComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $reviewId = (int) $request->getUserVar('reviewId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionReviewHandler = new SubmissionReviewHandler(); $submissionReviewHandler->validate($reviewId); @@ -61,7 +61,7 @@ function postPeerReviewComment() { $user =& $submissionReviewHandler->user; $this->setupTemplate(true); - if (ReviewerAction::postPeerReviewComment($user, $submission, $reviewId, $emailComment)) { + if (ReviewerAction::postPeerReviewComment($user, $submission, $reviewId, $emailComment, $request)) { ReviewerAction::viewPeerReviewComments($user, $submission, $reviewId); } } @@ -93,11 +93,13 @@ function editComment($args) { /** * Save comment. + * @param $args array + * @param $request object */ - function saveComment() { - $articleId = Request::getUserVar('articleId'); - $commentId = Request::getUserVar('commentId'); - $reviewId = Request::getUserVar('reviewId'); + function saveComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $commentId = (int) $request->getUserVar('commentId'); + $reviewId = (int) $request->getUserVar('reviewId'); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -106,7 +108,7 @@ function saveComment() { $this->setupTemplate(true); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $articleDao =& DAORegistry::getDAO('ArticleDAO'); $article = $articleDao->getArticle($articleId); @@ -116,7 +118,7 @@ function saveComment() { $submission =& $submissionReviewHandler->submission; $user =& $submissionReviewHandler->user; - ReviewerAction::saveComment($article, $comment, $emailComment); + ReviewerAction::saveComment($article, $comment, $emailComment, $request); // Refresh the comment $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); @@ -124,7 +126,7 @@ function saveComment() { // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_PEER_REVIEW) { - Request::redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId())); + $request->redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId())); } } diff --git a/pages/reviewer/SubmissionReviewHandler.inc.php b/pages/reviewer/SubmissionReviewHandler.inc.php index 0d80e593223..03101b846df 100644 --- a/pages/reviewer/SubmissionReviewHandler.inc.php +++ b/pages/reviewer/SubmissionReviewHandler.inc.php @@ -80,9 +80,9 @@ function submission($args) { * Confirm whether the review has been accepted or not. * @param $args array optional */ - function confirmReview($args = null) { - $reviewId = Request::getUserVar('reviewId'); - $declineReview = Request::getUserVar('declineReview'); + function confirmReview($args, $request) { + $reviewId = (int) $request->getUserVar('reviewId'); + $declineReview = $request->getUserVar('declineReview'); $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO'); @@ -94,11 +94,11 @@ function confirmReview($args = null) { $decline = isset($declineReview) ? 1 : 0; if (!$reviewerSubmission->getCancelled()) { - if (ReviewerAction::confirmReview($reviewerSubmission, $decline, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submission', $reviewId); + if (ReviewerAction::confirmReview($reviewerSubmission, $decline, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submission', $reviewId); } } else { - Request::redirect(null, null, 'submission', $reviewId); + $request->redirect(null, null, 'submission', $reviewId); } } @@ -122,9 +122,9 @@ function saveCompetingInterests() { /** * Record the reviewer recommendation. */ - function recordRecommendation() { - $reviewId = Request::getUserVar('reviewId'); - $recommendation = Request::getUserVar('recommendation'); + function recordRecommendation($args, $request) { + $reviewId = (int) $request->getUserVar('reviewId'); + $recommendation = (int) $request->getUserVar('recommendation'); $this->validate($reviewId); $reviewerSubmission =& $this->submission; @@ -132,11 +132,11 @@ function recordRecommendation() { $this->setupTemplate(true); if (!$reviewerSubmission->getCancelled()) { - if (ReviewerAction::recordRecommendation($reviewerSubmission, $recommendation, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submission', $reviewId); + if (ReviewerAction::recordRecommendation($reviewerSubmission, $recommendation, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submission', $reviewId); } } else { - Request::redirect(null, null, 'submission', $reviewId); + $request->redirect(null, null, 'submission', $reviewId); } } @@ -159,15 +159,17 @@ function viewMetadata($args, $request) { /** * Upload the reviewer's annotated version of an article. + * @param $args array + * @param $request object */ - function uploadReviewerVersion() { - $reviewId = Request::getUserVar('reviewId'); + function uploadReviewerVersion($args, $request) { + $reviewId = $request->getUserVar('reviewId'); $this->validate($reviewId); $this->setupTemplate(true); - ReviewerAction::uploadReviewerVersion($reviewId); - Request::redirect(null, null, 'submission', $reviewId); + ReviewerAction::uploadReviewerVersion($reviewId, $this->submission, $request); + $request->redirect(null, null, 'submission', $reviewId); } /* diff --git a/pages/sectionEditor/SubmissionCommentsHandler.inc.php b/pages/sectionEditor/SubmissionCommentsHandler.inc.php index 87bed9884c1..08dbfc8ae84 100644 --- a/pages/sectionEditor/SubmissionCommentsHandler.inc.php +++ b/pages/sectionEditor/SubmissionCommentsHandler.inc.php @@ -48,206 +48,197 @@ function viewPeerReviewComments($args) { /** * Post peer review comments. */ - function postPeerReviewComment() { + function postPeerReviewComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); - $reviewId = Request::getUserVar('reviewId'); + $articleId = $request->getUserVar('articleId'); + $reviewId = $request->getUserVar('reviewId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - if (SectionEditorAction::postPeerReviewComment($submission, $reviewId, $emailComment)) { + if (SectionEditorAction::postPeerReviewComment($submission, $reviewId, $emailComment, $request)) { SectionEditorAction::viewPeerReviewComments($submission, $reviewId); } - } /** * View editor decision comments. */ - function viewEditorDecisionComments($args) { + function viewEditorDecisionComments($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = $args[0]; + $articleId = (int) array_shift($args); $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; SectionEditorAction::viewEditorDecisionComments($submission); - } /** * Post peer review comments. */ - function postEditorDecisionComment() { + function postEditorDecisionComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - if (SectionEditorAction::postEditorDecisionComment($submission, $emailComment)) { + if (SectionEditorAction::postEditorDecisionComment($submission, $emailComment, $request)) { SectionEditorAction::viewEditorDecisionComments($submission); } - } /** * Blind CC the reviews to reviewers. */ - function blindCcReviewsToReviewers($args = array()) { - $articleId = Request::getUserVar('articleId'); + function blindCcReviewsToReviewers($args, $request) { + $articleId = $request->getUserVar('articleId'); $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - $send = Request::getUserVar('send')?true:false; - $inhibitExistingEmail = Request::getUserVar('blindCcReviewers')?true:false; + $send = $request->getUserVar('send')?true:false; + $inhibitExistingEmail = $request->getUserVar('blindCcReviewers')?true:false; if (!$send) $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::blindCcReviewsToReviewers($submission, $send, $inhibitExistingEmail)) { - Request::redirect(null, null, 'submissionReview', $articleId); + if (SectionEditorAction::blindCcReviewsToReviewers($submission, $send, $inhibitExistingEmail, $request)) { + $request->redirect(null, null, 'submissionReview', $articleId); } } /** * View copyedit comments. */ - function viewCopyeditComments($args) { + function viewCopyeditComments($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = $args[0]; + $articleId = (int) array_shift($args); $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; SectionEditorAction::viewCopyeditComments($submission); - } /** * Post copyedit comment. */ - function postCopyeditComment() { + function postCopyeditComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - if (SectionEditorAction::postCopyeditComment($submission, $emailComment)) { + if (SectionEditorAction::postCopyeditComment($submission, $emailComment, $request)) { SectionEditorAction::viewCopyeditComments($submission); } - } /** * View layout comments. */ - function viewLayoutComments($args) { + function viewLayoutComments($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = $args[0]; + $articleId = (int) array_shift($args); $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - SectionEditorAction::viewLayoutComments($submission); - + SectionEditorAction::viewLayoutComments($submission, $request); } /** * Post layout comment. */ - function postLayoutComment() { + function postLayoutComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - if (SectionEditorAction::postLayoutComment($submission, $emailComment)) { + if (SectionEditorAction::postLayoutComment($submission, $emailComment, $request)) { SectionEditorAction::viewLayoutComments($submission); } - } /** * View proofread comments. */ - function viewProofreadComments($args) { + function viewProofreadComments($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = $args[0]; + $articleId = (int) array_shift($args); $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; SectionEditorAction::viewProofreadComments($submission); - } /** * Post proofread comment. */ - function postProofreadComment() { + function postProofreadComment($args, $request) { $this->validate(); $this->setupTemplate(true); - $articleId = Request::getUserVar('articleId'); + $articleId = (int) $request->getUserVar('articleId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; - if (SectionEditorAction::postProofreadComment($submission, $emailComment)) { + if (SectionEditorAction::postProofreadComment($submission, $emailComment, $request)) { SectionEditorAction::viewProofreadComments($submission); } - } /** * Email an editor decision comment. */ - function emailEditorDecisionComment() { - $articleId = (int) Request::getUserVar('articleId'); + function emailEditorDecisionComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($articleId); $submission =& $submissionEditHandler->submission; $this->setupTemplate(true); - if (SectionEditorAction::emailEditorDecisionComment($submission, Request::getUserVar('send'))) { - if (Request::getUserVar('blindCcReviewers')) { - SubmissionCommentsHandler::blindCcReviewsToReviewers(); + if (SectionEditorAction::emailEditorDecisionComment($submission, $request->getUserVar('send'), $request)) { + if ($request->getUserVar('blindCcReviewers')) { + SubmissionCommentsHandler::blindCcReviewsToReviewers($args, $request); } else { - Request::redirect(null, null, 'submissionReview', array($articleId)); + $request->redirect(null, null, 'submissionReview', array($articleId)); } } } @@ -255,9 +246,9 @@ function emailEditorDecisionComment() { /** * Edit comment. */ - function editComment($args) { - $articleId = $args[0]; - $commentId = $args[1]; + function editComment($args, $request) { + $articleId = (int) array_shift($args); + $commentId = (int) array_shift($args); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -271,7 +262,7 @@ function editComment($args) { if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) { // Cannot edit an editor decision comment. - Request::redirect(null, Request::getRequestedPage()); + $request->redirect(null, $request->getRequestedPage()); } SectionEditorAction::editComment($submission, $comment); @@ -280,12 +271,12 @@ function editComment($args) { /** * Save comment. */ - function saveComment() { - $articleId = Request::getUserVar('articleId'); - $commentId = Request::getUserVar('commentId'); + function saveComment($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $commentId = (int) $request->getUserVar('commentId'); // If the user pressed the "Save and email" button, then email the comment. - $emailComment = Request::getUserVar('saveAndEmail') != null ? true : false; + $emailComment = $request->getUserVar('saveAndEmail') != null ? true : false; $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -299,35 +290,35 @@ function saveComment() { if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) { // Cannot edit an editor decision comment. - Request::redirect(null, Request::getRequestedPage()); + $request->redirect(null, $request->getRequestedPage()); } // Save the comment. - SectionEditorAction::saveComment($submission, $comment, $emailComment); + SectionEditorAction::saveComment($submission, $comment, $emailComment, $request); $articleCommentDao =& DAORegistry::getDAO('ArticleCommentDAO'); $comment =& $articleCommentDao->getArticleCommentById($commentId); // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_PEER_REVIEW) { - Request::redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId())); + $request->redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId())); } else if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) { - Request::redirect(null, null, 'viewEditorDecisionComments', $articleId); + $request->redirect(null, null, 'viewEditorDecisionComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_COPYEDIT) { - Request::redirect(null, null, 'viewCopyeditComments', $articleId); + $request->redirect(null, null, 'viewCopyeditComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) { - Request::redirect(null, null, 'viewLayoutComments', $articleId); + $request->redirect(null, null, 'viewLayoutComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) { - Request::redirect(null, null, 'viewProofreadComments', $articleId); + $request->redirect(null, null, 'viewProofreadComments', $articleId); } } /** * Delete comment. */ - function deleteComment($args) { - $articleId = $args[0]; - $commentId = $args[1]; + function deleteComment($args, $request) { + $articleId = (int) array_shift($args); + $commentId = (int) array_shift($args); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate(); @@ -343,17 +334,16 @@ function deleteComment($args) { // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_PEER_REVIEW) { - Request::redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId())); + $request->redirect(null, null, 'viewPeerReviewComments', array($articleId, $comment->getAssocId())); } else if ($comment->getCommentType() == COMMENT_TYPE_EDITOR_DECISION) { - Request::redirect(null, null, 'viewEditorDecisionComments', $articleId); + $request->redirect(null, null, 'viewEditorDecisionComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_COPYEDIT) { - Request::redirect(null, null, 'viewCopyeditComments', $articleId); + $request->redirect(null, null, 'viewCopyeditComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_LAYOUT) { - Request::redirect(null, null, 'viewLayoutComments', $articleId); + $request->redirect(null, null, 'viewLayoutComments', $articleId); } else if ($comment->getCommentType() == COMMENT_TYPE_PROOFREAD) { - Request::redirect(null, null, 'viewProofreadComments', $articleId); + $request->redirect(null, null, 'viewProofreadComments', $articleId); } - } } diff --git a/pages/sectionEditor/SubmissionEditHandler.inc.php b/pages/sectionEditor/SubmissionEditHandler.inc.php index 103965ccfcc..e556698f265 100644 --- a/pages/sectionEditor/SubmissionEditHandler.inc.php +++ b/pages/sectionEditor/SubmissionEditHandler.inc.php @@ -197,8 +197,8 @@ function submissionReview($args) { } // Parse the list of email logs and populate the array. - import('classes.article.log.ArticleLog'); - $emailLogEntries =& ArticleLog::getEmailLogEntries($articleId); + $emailLogDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); + $emailLogEntries =& $emailLogDao->getByAssoc(ASSOC_TYPE_ARTICLE, $articleId); foreach ($emailLogEntries->toArray() as $emailLog) { if ($emailLog->getEventType() == ARTICLE_EMAIL_REVIEW_NOTIFY_REVIEWER) { if (isset($notifyReviewerLogs[$emailLog->getAssocId()]) && is_array($notifyReviewerLogs[$emailLog->getAssocId()])) { @@ -258,10 +258,10 @@ function submissionReview($args) { $templateMgr->display('sectionEditor/submissionReview.tpl'); } - function submissionEditing($args) { + function submissionEditing($args, $request) { $articleId = isset($args[0]) ? (int) $args[0] : 0; $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $submission =& $this->submission; $this->setupTemplate(true, $articleId); @@ -322,29 +322,32 @@ function submissionEditing($args) { function submissionHistory($args) { $articleId = isset($args[0]) ? (int) $args[0] : 0; $this->validate($articleId); - $submission =& $this->submission; - $this->setupTemplate(true, $articleId); - // submission notes - $noteDao =& DAORegistry::getDAO('NoteDAO'); + $templateMgr =& TemplateManager::getManager(); + $submission =& $this->submission; + $templateMgr->assign_by_ref('submission', $submission); + // Notes + $noteDao =& DAORegistry::getDAO('NoteDAO'); $submissionNotes =& $noteDao->getByAssoc(ASSOC_TYPE_ARTICLE, $articleId); + $templateMgr->assign_by_ref('submissionNotes', $submissionNotes); - import('classes.article.log.ArticleLog'); + // Event log + $eventLogDao =& DAORegistry::getDAO('ArticleEventLogDAO'); $rangeInfo =& Handler::getRangeInfo('eventLogEntries'); - $eventLogEntries =& ArticleLog::getEventLogEntries($articleId, $rangeInfo); - $rangeInfo =& Handler::getRangeInfo('emailLogEntries'); - $emailLogEntries =& ArticleLog::getEmailLogEntries($articleId, $rangeInfo); - - $templateMgr =& TemplateManager::getManager(); - - $templateMgr->assign('isEditor', Validation::isEditor()); - $templateMgr->assign_by_ref('submission', $submission); + $eventLogEntries =& $eventLogDao->getByAssoc(ASSOC_TYPE_ARTICLE, $articleId, $rangeInfo); $templateMgr->assign_by_ref('eventLogEntries', $eventLogEntries); + unset($rangeInfo); + + // Email log + $emailLogDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); + $rangeInfo =& Handler::getRangeInfo('emailLogEntries'); + $emailLogEntries =& $emailLogDao->getByAssoc(ASSOC_TYPE_ARTICLE, $articleId, $rangeInfo); $templateMgr->assign_by_ref('emailLogEntries', $emailLogEntries); - $templateMgr->assign_by_ref('submissionNotes', $submissionNotes); + unset($rangeInfo); + $templateMgr->assign('isEditor', Validation::isEditor()); $templateMgr->display('sectionEditor/submissionHistory.tpl'); } @@ -381,46 +384,52 @@ function changeSection() { Request::redirect(null, null, 'submission', $articleId); } - function recordDecision() { - $articleId = Request::getUserVar('articleId'); + /** + * Record an editor decision + * @param $args array + * @param $request object + */ + function recordDecision($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $decision = Request::getUserVar('decision'); + $decision = $request->getUserVar('decision'); switch ($decision) { case SUBMISSION_EDITOR_DECISION_ACCEPT: case SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS: case SUBMISSION_EDITOR_DECISION_RESUBMIT: case SUBMISSION_EDITOR_DECISION_DECLINE: - SectionEditorAction::recordDecision($submission, $decision); + SectionEditorAction::recordDecision($submission, $decision, $request); break; } - Request::redirect(null, null, 'submissionReview', $articleId); + $request->redirect(null, null, 'submissionReview', $articleId); } // // Peer Review // - function selectReviewer($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; + function selectReviewer($args, $request) { + $articleId = (int) array_shift($args); + $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $submission =& $this->submission; - $sort = Request::getUserVar('sort'); + $sort = $request->getUserVar('sort'); $sort = isset($sort) ? $sort : 'reviewerName'; - $sortDirection = Request::getUserVar('sortDirection'); + $sortDirection = $request->getUserVar('sortDirection'); $sortDirection = (isset($sortDirection) && ($sortDirection == SORT_DIRECTION_ASC || $sortDirection == SORT_DIRECTION_DESC)) ? $sortDirection : SORT_DIRECTION_ASC; $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); if (isset($args[1]) && $args[1] != null) { // Assign reviewer to article - SectionEditorAction::addReviewer($submission, $args[1]); - Request::redirect(null, null, 'submissionReview', $articleId); + SectionEditorAction::addReviewer($submission, $args[1], null, $request); + $request->redirect(null, null, 'submissionReview', $articleId); // FIXME: Prompt for due date. } else { @@ -430,11 +439,11 @@ function selectReviewer($args) { $searchType = null; $searchMatch = null; - $search = $searchQuery = Request::getUserVar('search'); - $searchInitial = Request::getUserVar('searchInitial'); + $search = $searchQuery = $request->getUserVar('search'); + $searchInitial = $request->getUserVar('searchInitial'); if (!empty($search)) { - $searchType = Request::getUserVar('searchField'); - $searchMatch = Request::getUserVar('searchMatch'); + $searchType = $request->getUserVar('searchField'); + $searchMatch = $request->getUserVar('searchMatch'); } elseif (!empty($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); @@ -453,7 +462,7 @@ function selectReviewer($args) { $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $searchQuery); - $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial')); + $templateMgr->assign('searchInitial', $request->getUserVar('searchInitial')); $templateMgr->assign_by_ref('reviewers', $reviewers); $templateMgr->assign('articleId', $articleId); @@ -606,110 +615,109 @@ function enroll($args) { Request::redirect(null, null, 'selectReviewer', $articleId); } - function notifyReviewer($args = array()) { - $articleId = Request::getUserVar('articleId'); + function notifyReviewer($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = Request::getUserVar('reviewId'); + $reviewId = (int) $request->getUserVar('reviewId'); - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'review'); - if (SectionEditorAction::notifyReviewer($submission, $reviewId, $send)) { - Request::redirect(null, null, 'submissionReview', $articleId); + if (SectionEditorAction::notifyReviewer($submission, $reviewId, $send, $request)) { + $request->redirect(null, null, 'submissionReview', $articleId); } } - function clearReview($args) { - $articleId = isset($args[0])?$args[0]:0; + function clearReview($args, $request) { + $articleId = (int) array_shift($args); + $reviewId = (int) array_shift($args); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = $args[1]; + SectionEditorAction::clearReview($submission, $reviewId, $request); - SectionEditorAction::clearReview($submission, $reviewId); - - Request::redirect(null, null, 'submissionReview', $articleId); + $request->redirect(null, null, 'submissionReview', $articleId); } - function cancelReview($args) { - $articleId = Request::getUserVar('articleId'); + function cancelReview($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = Request::getUserVar('reviewId'); + $reviewId = (int) $request->getUserVar('reviewId'); - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'review'); - if (SectionEditorAction::cancelReview($submission, $reviewId, $send)) { - Request::redirect(null, null, 'submissionReview', $articleId); + if (SectionEditorAction::cancelReview($submission, $reviewId, $send, $request)) { + $request->redirect(null, null, 'submissionReview', $articleId); } } - function remindReviewer($args = null) { - $articleId = Request::getUserVar('articleId'); + function remindReviewer($args, $params) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = Request::getUserVar('reviewId'); + $reviewId = (int) $request->getUserVar('reviewId'); $this->setupTemplate(true, $articleId, 'review'); - if (SectionEditorAction::remindReviewer($submission, $reviewId, Request::getUserVar('send'))) { - Request::redirect(null, null, 'submissionReview', $articleId); + if (SectionEditorAction::remindReviewer($submission, $reviewId, $request->getUserVar('send'), $request)) { + $request->redirect(null, null, 'submissionReview', $articleId); } } - function thankReviewer($args = array()) { - $articleId = Request::getUserVar('articleId'); + function thankReviewer($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = Request::getUserVar('reviewId'); + $reviewId = (int) $request->getUserVar('reviewId'); - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'review'); - if (SectionEditorAction::thankReviewer($submission, $reviewId, $send)) { - Request::redirect(null, null, 'submissionReview', $articleId); + if (SectionEditorAction::thankReviewer($submission, $reviewId, $send, $request)) { + $request->redirect(null, null, 'submissionReview', $articleId); } } - function rateReviewer() { - $articleId = Request::getUserVar('articleId'); + function rateReviewer($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $reviewId = (int) $request->getUserVar('reviewId'); + $quality = (int) $request->getUserVar('quality'); + $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $this->setupTemplate(true, $articleId, 'review'); - $reviewId = Request::getUserVar('reviewId'); - $quality = Request::getUserVar('quality'); - - SectionEditorAction::rateReviewer($articleId, $reviewId, $quality); + SectionEditorAction::rateReviewer($articleId, $reviewId, $quality, $request); - Request::redirect(null, null, 'submissionReview', $articleId); + $request->redirect(null, null, 'submissionReview', $articleId); } - function confirmReviewForReviewer($args) { - $articleId = (int) isset($args[0])?$args[0]:0; - $accept = Request::getUserVar('accept')?true:false; + function confirmReviewForReviewer($args, $request) { + $articleId = (int) array_shift($args); + $reviewId = (int) array_shift($args); + + $accept = $request->getUserVar('accept')?true:false; $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = (int) isset($args[1])?$args[1]:0; - - SectionEditorAction::confirmReviewForReviewer($reviewId, $accept); - Request::redirect(null, null, 'submissionReview', $articleId); + SectionEditorAction::confirmReviewForReviewer($reviewId, $accept, $request); + $request->redirect(null, null, 'submissionReview', $articleId); } - function uploadReviewForReviewer($args) { - $articleId = (int) Request::getUserVar('articleId'); + function uploadReviewForReviewer($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = (int) Request::getUserVar('reviewId'); + $reviewId = (int) $request->getUserVar('reviewId'); - SectionEditorAction::uploadReviewForReviewer($reviewId); - Request::redirect(null, null, 'submissionReview', $articleId); + SectionEditorAction::uploadReviewForReviewer($reviewId, $submission, $request); + $request->redirect(null, null, 'submissionReview', $articleId); } function makeReviewerFileViewable() { @@ -727,22 +735,22 @@ function makeReviewerFileViewable() { Request::redirect(null, null, 'submissionReview', $articleId); } - function setDueDate($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; + function setDueDate($args, $request) { + $articleId = (int) array_shift($args); + $reviewId = (int) array_shift($args); + $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = isset($args[1]) ? $args[1] : 0; - $dueDate = Request::getUserVar('dueDate'); - $numWeeks = Request::getUserVar('numWeeks'); + $dueDate = $request->getUserVar('dueDate'); + $numWeeks = $request->getUserVar('numWeeks'); if ($dueDate != null || $numWeeks != null) { - SectionEditorAction::setDueDate($articleId, $reviewId, $dueDate, $numWeeks); - Request::redirect(null, null, 'submissionReview', $articleId); - + SectionEditorAction::setDueDate($articleId, $reviewId, $dueDate, $numWeeks, false, $request); + $request->redirect(null, null, 'submissionReview', $articleId); } else { $this->setupTemplate(true, $articleId, 'review'); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment = $reviewAssignmentDao->getById($reviewId); @@ -768,18 +776,18 @@ function setDueDate($args) { } } - function enterReviewerRecommendation($args) { - $articleId = Request::getUserVar('articleId'); + function enterReviewerRecommendation($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; - $reviewId = Request::getUserVar('reviewId'); + $reviewId = $request->getUserVar('reviewId'); - $recommendation = Request::getUserVar('recommendation'); + $recommendation = $request->getUserVar('recommendation'); if ($recommendation != null) { - SectionEditorAction::setReviewerRecommendation($articleId, $reviewId, $recommendation, SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT); - Request::redirect(null, null, 'submissionReview', $articleId); + SectionEditorAction::setReviewerRecommendation($this->article, $reviewId, $recommendation, SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT, $request); + $request->redirect(null, null, 'submissionReview', $articleId); } else { $this->setupTemplate(true, $articleId, 'review'); @@ -989,8 +997,8 @@ function viewReviewFormResponse($args) { // Editor Review // - function editorReview() { - $articleId = Request::getUserVar('articleId'); + function editorReview($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; @@ -999,20 +1007,20 @@ function editorReview() { $redirectTarget = 'submissionReview'; // If the Upload button was pressed. - $submit = Request::getUserVar('submit'); + $submit = $request->getUserVar('submit'); if ($submit != null) { - SectionEditorAction::uploadEditorVersion($submission); + SectionEditorAction::uploadEditorVersion($submission, $request); } - if (Request::getUserVar('setCopyeditFile')) { + if ($request->getUserVar('setCopyeditFile')) { // If the Send To Copyedit button was pressed - $file = explode(',', Request::getUserVar('editorDecisionFile')); + $file = explode(',', $request->getUserVar('editorDecisionFile')); if (isset($file[0]) && isset($file[1])) { $round = $submission->getCurrentRound(); if ($submission->getMostRecentEditorDecisionComment()) { // The conditions are met for being able // to send a file to copyediting. - SectionEditorAction::setCopyeditFile($submission, $file[0], $file[1]); + SectionEditorAction::setCopyeditFile($submission, $file[0], $file[1], $request); $signoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $submission->getId()); $signoff->setFileId($file[0]); @@ -1022,11 +1030,11 @@ function editorReview() { $redirectTarget = 'submissionEditing'; } - } else if (Request::getUserVar('resubmit')) { + } else if ($request->getUserVar('resubmit')) { // If the Resubmit button was pressed - $file = explode(',', Request::getUserVar('editorDecisionFile')); + $file = explode(',', $request->getUserVar('editorDecisionFile')); if (isset($file[0]) && isset($file[1])) { - SectionEditorAction::resubmitFile($submission, $file[0], $file[1]); + SectionEditorAction::resubmitFile($submission, $file[0], $file[1], $request); $signoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $submission->getId()); $signoff->setFileId($file[0]); @@ -1035,24 +1043,26 @@ function editorReview() { } } - Request::redirect(null, null, $redirectTarget, $articleId); + $request->redirect(null, null, $redirectTarget, $articleId); } // // Copyedit // - function selectCopyeditor($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; + function selectCopyeditor($args, $request) { + $articleId = (int) array_shift($args); + $userId = (int) array_shift($args); + $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $submission =& $this->submission; $roleDao =& DAORegistry::getDAO('RoleDAO'); - if (isset($args[1]) && $args[1] != null && $roleDao->roleExists($journal->getId(), $args[1], ROLE_ID_COPYEDITOR)) { - SectionEditorAction::selectCopyeditor($submission, $args[1]); - Request::redirect(null, null, 'submissionEditing', $articleId); + if ($roleDao->roleExists($journal->getId(), $userId, ROLE_ID_COPYEDITOR)) { + SectionEditorAction::selectCopyeditor($submission, $userId, $request); + $request->redirect(null, null, 'submissionEditing', $articleId); } else { $this->setupTemplate(true, $articleId, 'editing'); @@ -1060,11 +1070,11 @@ function selectCopyeditor($args) { $searchType = null; $searchMatch = null; - $search = $searchQuery = Request::getUserVar('search'); - $searchInitial = Request::getUserVar('searchInitial'); + $search = $searchQuery = $request->getUserVar('search'); + $searchInitial = $request->getUserVar('searchInitial'); if (!empty($search)) { - $searchType = Request::getUserVar('searchField'); - $searchMatch = Request::getUserVar('searchMatch'); + $searchType = $request->getUserVar('searchField'); + $searchMatch = $request->getUserVar('searchMatch'); } elseif (!empty($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); @@ -1080,7 +1090,7 @@ function selectCopyeditor($args) { $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $searchQuery); - $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial')); + $templateMgr->assign('searchInitial', $request->getUserVar('searchInitial')); $templateMgr->assign_by_ref('users', $copyeditors); $templateMgr->assign('currentUser', $submission->getUserBySignoffType('SIGNOFF_COPYEDITING_INITIAL')); @@ -1088,13 +1098,13 @@ function selectCopyeditor($args) { $templateMgr->assign('pageSubTitle', 'editor.article.selectCopyeditor'); $templateMgr->assign('pageTitle', 'user.role.copyeditors'); $templateMgr->assign('actionHandler', 'selectCopyeditor'); - $templateMgr->assign('fieldOptions', Array( + $templateMgr->assign('fieldOptions', array( USER_FIELD_FIRSTNAME => 'user.firstName', USER_FIELD_LASTNAME => 'user.lastName', USER_FIELD_USERNAME => 'user.username', USER_FIELD_EMAIL => 'user.email' )); - $templateMgr->assign('articleId', $args[0]); + $templateMgr->assign('articleId', $articleId); $templateMgr->assign('helpTopicId', 'journal.roles.copyeditor'); $templateMgr->assign('alphaList', explode(' ', Locale::translate('common.alphaList'))); @@ -1102,133 +1112,133 @@ function selectCopyeditor($args) { } } - function notifyCopyeditor($args = array()) { - $articleId = Request::getUserVar('articleId'); + function notifyCopyeditor($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::notifyCopyeditor($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::notifyCopyeditor($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } /* Initiates the copyediting process when the editor does the copyediting */ - function initiateCopyedit() { - $articleId = Request::getUserVar('articleId'); + function initiateCopyedit($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - SectionEditorAction::initiateCopyedit($submission); - Request::redirect(null, null, 'submissionEditing', $articleId); + SectionEditorAction::initiateCopyedit($submission, $request); + $request->redirect(null, null, 'submissionEditing', $articleId); } - function thankCopyeditor($args = array()) { - $articleId = Request::getUserVar('articleId'); + function thankCopyeditor($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::thankCopyeditor($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::thankCopyeditor($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } - function notifyAuthorCopyedit($args) { - $articleId = Request::getUserVar('articleId'); + function notifyAuthorCopyedit($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::notifyAuthorCopyedit($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::notifyAuthorCopyedit($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } - function thankAuthorCopyedit($args) { - $articleId = Request::getUserVar('articleId'); + function thankAuthorCopyedit($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::thankAuthorCopyedit($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::thankAuthorCopyedit($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } - function notifyFinalCopyedit($args = array()) { - $articleId = Request::getUserVar('articleId'); + function notifyFinalCopyedit($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::notifyFinalCopyedit($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::notifyFinalCopyedit($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } - function completeCopyedit($args) { - $articleId = (int) Request::getUserVar('articleId'); + function completeCopyedit($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - SectionEditorAction::completeCopyedit($submission); - Request::redirect(null, null, 'submissionEditing', $articleId); + SectionEditorAction::completeCopyedit($submission, $request); + $request->redirect(null, null, 'submissionEditing', $articleId); } - function completeFinalCopyedit($args) { - $articleId = (int) Request::getUserVar('articleId'); + function completeFinalCopyedit($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - SectionEditorAction::completeFinalCopyedit($submission); - Request::redirect(null, null, 'submissionEditing', $articleId); + SectionEditorAction::completeFinalCopyedit($submission, $request); + $request->redirect(null, null, 'submissionEditing', $articleId); } - function thankFinalCopyedit($args) { - $articleId = Request::getUserVar('articleId'); + function thankFinalCopyedit($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::thankFinalCopyedit($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::thankFinalCopyedit($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } - function uploadReviewVersion() { - $articleId = Request::getUserVar('articleId'); + function uploadReviewVersion($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_REVIEW); $submission =& $this->submission; SectionEditorAction::uploadReviewVersion($submission); - Request::redirect(null, null, 'submissionReview', $articleId); + $request->redirect(null, null, 'submissionReview', $articleId); } - function uploadCopyeditVersion() { - $articleId = Request::getUserVar('articleId'); + function uploadCopyeditVersion($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $copyeditStage = Request::getUserVar('copyeditStage'); + $copyeditStage = $request->getUserVar('copyeditStage'); SectionEditorAction::uploadCopyeditVersion($submission, $copyeditStage); - Request::redirect(null, null, 'submissionEditing', $articleId); + $request->redirect(null, null, 'submissionEditing', $articleId); } /** @@ -1284,20 +1294,20 @@ function editSuppFile($args, $request) { * Set reviewer visibility for a supplementary file. * @param $args array ($suppFileId) */ - function setSuppFileVisibility($args) { - $articleId = Request::getUserVar('articleId'); + function setSuppFileVisibility($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; - $suppFileId = Request::getUserVar('fileId'); + $suppFileId = (int) $request->getUserVar('fileId'); $suppFileDao =& DAORegistry::getDAO('SuppFileDAO'); $suppFile = $suppFileDao->getSuppFile($suppFileId, $articleId); if (isset($suppFile) && $suppFile != null) { - $suppFile->setShowReviewers(Request::getUserVar('show')==1?1:0); + $suppFile->setShowReviewers($request->getUserVar('show')==1?1:0); $suppFileDao->updateSuppFile($suppFile); } - Request::redirect(null, null, 'submissionReview', $articleId); + $request->redirect(null, null, 'submissionReview', $articleId); } /** @@ -1361,47 +1371,47 @@ function deleteArticleFile($args) { * Delete a supplementary file. * @param $args array ($articleId, $suppFileId) */ - function deleteSuppFile($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $suppFileId = isset($args[1]) ? (int) $args[1] : 0; + function deleteSuppFile($args, $request) { + $articleId = (int) array_shift($args); + $suppFileId = (int) array_shift($args); $this->validate($articleId); $submission =& $this->submission; SectionEditorAction::deleteSuppFile($submission, $suppFileId); - Request::redirect(null, null, $this->getFrom(), $articleId); + $request->redirect(null, null, $this->getFrom(), $articleId); } - function archiveSubmission($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; + function archiveSubmission($args, $request) { + $articleId = (int) array_shift($args); $this->validate($articleId); $submission =& $this->submission; - SectionEditorAction::archiveSubmission($submission); + SectionEditorAction::archiveSubmission($submission, $request); - Request::redirect(null, null, 'submission', $articleId); + $request->redirect(null, null, 'submission', $articleId); } - function restoreToQueue($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; + function restoreToQueue($args, $request) { + $articleId = (int) array_shift($request); $this->validate($articleId); $submission =& $this->submission; - SectionEditorAction::restoreToQueue($submission); + SectionEditorAction::restoreToQueue($submission, $request); - Request::redirect(null, null, 'submissionEditing', $articleId); + $request->redirect(null, null, 'submissionEditing', $articleId); } - function unsuitableSubmission($args) { - $articleId = Request::getUserVar('articleId'); + function unsuitableSubmission($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'summary'); - if (SectionEditorAction::unsuitableSubmission($submission, $send)) { - Request::redirect(null, null, 'submission', $articleId); + if (SectionEditorAction::unsuitableSubmission($submission, $send, $request)) { + $request->redirect(null, null, 'submission', $articleId); } } @@ -1485,28 +1495,29 @@ function deleteArticleImage($args) { /** * Assign/reassign a layout editor to the submission. * @param $args array ($articleId, [$userId]) + * @param $request object */ - function assignLayoutEditor($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $editorId = isset($args[1]) ? (int) $args[1] : 0; + function assignLayoutEditor($args, $request) { + $articleId = (int) array_shift($args); + $editorId = (int) array_shift($args); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $submission =& $this->submission; $roleDao =& DAORegistry::getDAO('RoleDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); if ($editorId && $roleDao->roleExists($journal->getId(), $editorId, ROLE_ID_LAYOUT_EDITOR)) { - SectionEditorAction::assignLayoutEditor($submission, $editorId); - Request::redirect(null, null, 'submissionEditing', $articleId); + SectionEditorAction::assignLayoutEditor($submission, $editorId, $request); + $request->redirect(null, null, 'submissionEditing', $articleId); } else { $searchType = null; $searchMatch = null; - $search = $searchQuery = Request::getUserVar('search'); - $searchInitial = Request::getUserVar('searchInitial'); + $search = $searchQuery = $request->getUserVar('search'); + $searchInitial = $request->getUserVar('searchInitial'); if (!empty($search)) { - $searchType = Request::getUserVar('searchField'); - $searchMatch = Request::getUserVar('searchMatch'); + $searchType = $request->getUserVar('searchField'); + $searchMatch = $request->getUserVar('searchMatch'); } elseif (!empty($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); @@ -1526,7 +1537,7 @@ function assignLayoutEditor($args) { $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $searchQuery); - $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial')); + $templateMgr->assign('searchInitial', $request->getUserVar('searchInitial')); $templateMgr->assign('alphaList', explode(' ', Locale::translate('common.alphaList'))); $templateMgr->assign('pageTitle', 'user.role.layoutEditors'); @@ -1555,32 +1566,32 @@ function assignLayoutEditor($args) { /** * Notify the layout editor. */ - function notifyLayoutEditor($args) { - $articleId = Request::getUserVar('articleId'); + function notifyLayoutEditor($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::notifyLayoutEditor($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::notifyLayoutEditor($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } /** * Thank the layout editor. */ - function thankLayoutEditor($args) { - $articleId = Request::getUserVar('articleId'); + function thankLayoutEditor($args, $request) { + $articleId = $request->getUserVar('articleId'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $submission =& $this->submission; - $send = Request::getUserVar('send')?true:false; + $send = $request->getUserVar('send')?true:false; $this->setupTemplate(true, $articleId, 'editing'); - if (SectionEditorAction::thankLayoutEditor($submission, $send)) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (SectionEditorAction::thankLayoutEditor($submission, $send, $request)) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } @@ -1819,7 +1830,7 @@ function submissionEventLog($args) { if ($logId) { $logDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - $logEntry =& $logDao->getLogEntry($logId, $articleId); + $logEntry =& $logDao->getById($logId, ASSOC_TYPE_ARTICLE, $articleId); } if (isset($logEntry)) { @@ -1828,38 +1839,13 @@ function submissionEventLog($args) { } else { $rangeInfo =& Handler::getRangeInfo('eventLogEntries'); - - import('classes.article.log.ArticleLog'); - $eventLogEntries =& ArticleLog::getEventLogEntries($articleId, $rangeInfo); + $eventLogDao =& DAORegistry::getDAO('ArticleEventLogDAO'); + $eventLogEntries =& $eventLogDao->getByAssoc(ASSOC_TYPE_ARTICLE, $articleId, $rangeInfo); $templateMgr->assign('eventLogEntries', $eventLogEntries); $templateMgr->display('sectionEditor/submissionEventLog.tpl'); } } - /** - * View submission event log by record type. - */ - function submissionEventLogType($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $assocType = isset($args[1]) ? (int) $args[1] : null; - $assocId = isset($args[2]) ? (int) $args[2] : null; - $this->validate($articleId); - $submission =& $this->submission; - $this->setupTemplate(true, $articleId, 'history'); - - $rangeInfo =& Handler::getRangeInfo('eventLogEntries'); - $logDao =& DAORegistry::getDAO('ArticleEventLogDAO'); - $eventLogEntries =& $logDao->getArticleLogEntriesByAssoc($articleId, $assocType, $assocId, $rangeInfo); - - $templateMgr =& TemplateManager::getManager(); - - $templateMgr->assign('showBackLink', true); - $templateMgr->assign('isEditor', Validation::isEditor()); - $templateMgr->assign_by_ref('submission', $submission); - $templateMgr->assign_by_ref('eventLogEntries', $eventLogEntries); - $templateMgr->display('sectionEditor/submissionEventLog.tpl'); - } - /** * Clear submission event log entries. */ @@ -1872,10 +1858,10 @@ function clearSubmissionEventLog($args) { $logDao =& DAORegistry::getDAO('ArticleEventLogDAO'); if ($logId) { - $logDao->deleteLogEntry($logId, $articleId); + $logDao->deleteObject($logId, ASSOC_TYPE_ARTICLE, $articleId); } else { - $logDao->deleteArticleLogEntries($articleId); + $logDao->deleteByAssoc(ASSOC_TYPE_ARTICLE, $articleId); } Request::redirect(null, null, 'submissionEventLog', $articleId); @@ -1884,9 +1870,10 @@ function clearSubmissionEventLog($args) { /** * View submission email log. */ - function submissionEmailLog($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $logId = isset($args[1]) ? (int) $args[1] : 0; + function submissionEmailLog($args, $request) { + $articleId = (int) array_shift($args); + $logId = (int) array_shift($args); + $this->validate($articleId); $submission =& $this->submission; $this->setupTemplate(true, $articleId, 'history'); @@ -1902,7 +1889,7 @@ function submissionEmailLog($args) { if ($logId) { $logDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); - $logEntry =& $logDao->getLogEntry($logId, $articleId); + $logEntry =& $logDao->getById($logId, $articleId); } if (isset($logEntry)) { @@ -1912,52 +1899,28 @@ function submissionEmailLog($args) { } else { $rangeInfo =& Handler::getRangeInfo('emailLogEntries'); - import('classes.article.log.ArticleLog'); - $emailLogEntries =& ArticleLog::getEmailLogEntries($articleId, $rangeInfo); + $emailLogDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); + $emailLogEntries =& $emailLogDao->getByAssoc(ASSOC_TYPE_ARTICLE, $articleId, $rangeInfo); $templateMgr->assign_by_ref('emailLogEntries', $emailLogEntries); $templateMgr->display('sectionEditor/submissionEmailLog.tpl'); } } - /** - * View submission email log by record type. - */ - function submissionEmailLogType($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $assocType = isset($args[1]) ? (int) $args[1] : null; - $assocId = isset($args[2]) ? (int) $args[2] : null; - $this->validate($articleId); - $submission =& $this->submission; - $this->setupTemplate(true, $articleId, 'history'); - - $rangeInfo =& Handler::getRangeInfo('eventLogEntries'); - $logDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); - $emailLogEntries =& $logDao->getArticleLogEntriesByAssoc($articleId, $assocType, $assocId, $rangeInfo); - - $templateMgr =& TemplateManager::getManager(); - - $templateMgr->assign('showBackLink', true); - $templateMgr->assign('isEditor', Validation::isEditor()); - $templateMgr->assign_by_ref('submission', $submission); - $templateMgr->assign_by_ref('emailLogEntries', $emailLogEntries); - $templateMgr->display('sectionEditor/submissionEmailLog.tpl'); - } - /** * Clear submission email log entries. */ function clearSubmissionEmailLog($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $logId = isset($args[1]) ? (int) $args[1] : 0; + $articleId = (int) array_shift($args); + $logId = (int) array_shift($args); $this->validate($articleId); $logDao =& DAORegistry::getDAO('ArticleEmailLogDAO'); if ($logId) { - $logDao->deleteLogEntry($logId, $articleId); + $logDao->deleteObject($logId, ASSOC_TYPE_ARTICLE, $articleId); } else { - $logDao->deleteArticleLogEntries($articleId); + $logDao->deleteByAssoc(ASSOC_TYPE_ARTICLE, $articleId); } Request::redirect(null, null, 'submissionEmailLog', $articleId); @@ -1969,36 +1932,42 @@ function clearSubmissionEmailLog($args) { * Creates a submission note. * Redirects to submission notes list */ - function addSubmissionNote() { - $articleId = Request::getUserVar('articleId'); + function addSubmissionNote($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId); - SectionEditorAction::addSubmissionNote($articleId); - Request::redirect(null, null, 'submissionNotes', $articleId); + SectionEditorAction::addSubmissionNote($articleId, $request); + $request->redirect(null, null, 'submissionNotes', $articleId); } /** * Removes a submission note. * Redirects to submission notes list + * @param $args array + * @param $request object */ - function removeSubmissionNote() { - $articleId = Request::getUserVar('articleId'); + function removeSubmissionNote($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $noteId = (int) $request->getUserVar('noteId'); + $fileId = (int) $request->getUserVar('fileId'); $this->validate($articleId); - SectionEditorAction::removeSubmissionNote($articleId); - Request::redirect(null, null, 'submissionNotes', $articleId); + SectionEditorAction::removeSubmissionNote($articleId, $noteId, $fileId); + $request->redirect(null, null, 'submissionNotes', $articleId); } /** * Updates a submission note. * Redirects to submission notes list + * @param $args array + * @param $request object */ - function updateSubmissionNote() { - $articleId = Request::getUserVar('articleId'); + function updateSubmissionNote($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); $this->validate($articleId); - SectionEditorAction::updateSubmissionNote($articleId); - Request::redirect(null, null, 'submissionNotes', $articleId); + SectionEditorAction::updateSubmissionNote($articleId, $request); + $request->redirect(null, null, 'submissionNotes', $articleId); } /** @@ -2096,12 +2065,12 @@ function viewFile($args) { * Select Proofreader. * @param $args array ($articleId, $userId) */ - function selectProofreader($args) { - $articleId = isset($args[0]) ? (int) $args[0] : 0; - $userId = isset($args[1]) ? (int) $args[1] : 0; + function selectProofreader($args, $request) { + $articleId = (int) array_shift($args); + $userId = (int) array_shift($args); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); - $journal =& Request::getJournal(); + $journal =& $request->getJournal(); $submission =& $this->submission; $roleDao =& DAORegistry::getDAO('RoleDAO'); @@ -2109,18 +2078,18 @@ function selectProofreader($args) { if ($userId && $articleId && $roleDao->roleExists($journal->getId(), $userId, ROLE_ID_PROOFREADER)) { import('classes.submission.proofreader.ProofreaderAction'); - ProofreaderAction::selectProofreader($userId, $submission); - Request::redirect(null, null, 'submissionEditing', $articleId); + ProofreaderAction::selectProofreader($userId, $submission, $request); + $request->redirect(null, null, 'submissionEditing', $articleId); } else { $this->setupTemplate(true, $articleId, 'editing'); $searchType = null; $searchMatch = null; - $search = $searchQuery = Request::getUserVar('search'); - $searchInitial = Request::getUserVar('searchInitial'); + $search = $searchQuery = $request->getUserVar('search'); + $searchInitial = $request->getUserVar('searchInitial'); if (!empty($search)) { - $searchType = Request::getUserVar('searchField'); - $searchMatch = Request::getUserVar('searchMatch'); + $searchType = $request->getUserVar('searchField'); + $searchMatch = $request->getUserVar('searchMatch'); } elseif (!empty($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); @@ -2166,30 +2135,30 @@ function selectProofreader($args) { /** * Notify author for proofreading */ - function notifyAuthorProofreader($args) { - $articleId = Request::getUserVar('articleId'); - $send = Request::getUserVar('send')?1:0; + function notifyAuthorProofreader($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $send = (int) $request->getUserVar('send'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $this->setupTemplate(true, $articleId, 'editing'); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_AUTHOR_REQUEST', $send?'':Request::url(null, null, 'notifyAuthorProofreader'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_AUTHOR_REQUEST', $request, $send?'':$request->url(null, null, 'notifyAuthorProofreader'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } /** * Thank author for proofreading */ - function thankAuthorProofreader($args) { - $articleId = Request::getUserVar('articleId'); - $send = Request::getUserVar('send')?1:0; + function thankAuthorProofreader($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $send = (int) $request->getUserVar('send'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $this->setupTemplate(true, $articleId, 'editing'); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_AUTHOR_ACK', $send?'':Request::url(null, null, 'thankAuthorProofreader'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_AUTHOR_ACK', $request, $send?'':$request->url(null, null, 'thankAuthorProofreader'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } @@ -2232,30 +2201,30 @@ function editorCompleteProofreader() { /** * Notify proofreader for proofreading */ - function notifyProofreader($args) { - $articleId = Request::getUserVar('articleId'); - $send = Request::getUserVar('send'); + function notifyProofreader($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $send = (int) $request->getUserVar('send'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $this->setupTemplate(true, $articleId, 'editing'); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_REQUEST', $send?'':Request::url(null, null, 'notifyProofreader'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_REQUEST', $request, $send?'':$request->url(null, null, 'notifyProofreader'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } /** * Thank proofreader for proofreading */ - function thankProofreader($args) { - $articleId = Request::getUserVar('articleId'); - $send = Request::getUserVar('send')?1:0; + function thankProofreader($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $send = (int) $request->getUserVar('send'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $this->setupTemplate(true, $articleId, 'editing'); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_ACK', $send?'':Request::url(null, null, 'thankProofreader'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_ACK', $request, $send?'':$request->url(null, null, 'thankProofreader'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } @@ -2299,9 +2268,9 @@ function editorCompleteLayoutEditor() { /** * Notify layout editor for proofreading */ - function notifyLayoutEditorProofreader($args) { - $articleId = Request::getUserVar('articleId'); - $send = Request::getUserVar('send')?1:0; + function notifyLayoutEditorProofreader($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $send = (int) $request->getUserVar('send'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $this->setupTemplate(true, $articleId, 'editing'); @@ -2314,23 +2283,23 @@ function notifyLayoutEditorProofreader($args) { $signoffDao->updateObject($signoff); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_LAYOUT_REQUEST', $send?'':Request::url(null, null, 'notifyLayoutEditorProofreader'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_LAYOUT_REQUEST', $request, $send?'':$request->url(null, null, 'notifyLayoutEditorProofreader'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } /** * Thank layout editor for proofreading */ - function thankLayoutEditorProofreader($args) { - $articleId = Request::getUserVar('articleId'); - $send = Request::getUserVar('send')?1:0; + function thankLayoutEditorProofreader($args, $request) { + $articleId = (int) $request->getUserVar('articleId'); + $send = (int) $request->getUserVar('send'); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $this->setupTemplate(true, $articleId, 'editing'); import('classes.submission.proofreader.ProofreaderAction'); - if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_LAYOUT_ACK', $send?'':Request::url(null, null, 'thankLayoutEditorProofreader'))) { - Request::redirect(null, null, 'submissionEditing', $articleId); + if (ProofreaderAction::proofreadEmail($articleId, 'PROOFREAD_LAYOUT_ACK', $request, $send?'':$request->url(null, null, 'thankLayoutEditorProofreader'))) { + $request->redirect(null, null, 'submissionEditing', $articleId); } } diff --git a/pages/sectionEditor/index.php b/pages/sectionEditor/index.php index 56f786a426f..0e3ac58f939 100644 --- a/pages/sectionEditor/index.php +++ b/pages/sectionEditor/index.php @@ -98,10 +98,8 @@ // Submission History // case 'submissionEventLog': - case 'submissionEventLogType': case 'clearSubmissionEventLog': case 'submissionEmailLog': - case 'submissionEmailLogType': case 'clearSubmissionEmailLog': case 'addSubmissionNote': case 'removeSubmissionNote': diff --git a/pages/user/EmailHandler.inc.php b/pages/user/EmailHandler.inc.php index b1670080360..0c73e5aa4b1 100644 --- a/pages/user/EmailHandler.inc.php +++ b/pages/user/EmailHandler.inc.php @@ -24,7 +24,7 @@ function EmailHandler() { parent::UserHandler(); } - function email($args) { + function email($args, $request) { $this->validate(); $this->setupTemplate(true); @@ -34,11 +34,11 @@ function email($args) { $signoffDao =& DAORegistry::getDAO('SignoffDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); - $journal =& Request::getJournal(); - $user =& Request::getUser(); + $journal =& $request->getJournal(); + $user =& $request->getUser(); // See if this is the Editor or Manager and an email template has been chosen - $template = Request::getUserVar('template'); + $template = $request->getUserVar('template'); if ( !$journal || empty($template) || ( !Validation::isJournalManager($journal->getId()) && !Validation::isEditor($journal->getId()) && @@ -77,7 +77,7 @@ function email($args) { } $email = null; - if ($articleId = Request::getUserVar('articleId')) { + if ($articleId = $request->getUserVar('articleId')) { // This message is in reference to an article. // Determine whether the current user has access // to the article in some form, and if so, use an @@ -127,7 +127,7 @@ function email($args) { $email = new MailTemplate($template); } - if (Request::getUserVar('send') && !$email->hasErrors()) { + if ($request->getUserVar('send') && !$email->hasErrors()) { $recipients = $email->getRecipients(); $ccs = $email->getCcs(); $bccs = $email->getBccs(); @@ -146,14 +146,19 @@ function email($args) { $templateMgr->assign('backLinkLabel', 'email.compose'); return $templateMgr->display('common/message.tpl'); } - $email->send(); - $redirectUrl = Request::getUserVar('redirectUrl'); - if (empty($redirectUrl)) $redirectUrl = Request::url(null, 'user'); + if (is_a($email, 'ArticleMailTemplate')) { + // Make sure the email gets logged if needed + $email->send($request); + } else { + $email->send(); + } + $redirectUrl = $request->getUserVar('redirectUrl'); + if (empty($redirectUrl)) $redirectUrl = $request->url(null, 'user'); $user->setDateLastEmail(Core::getCurrentDate()); $userDao->updateObject($user); - Request::redirectUrl($redirectUrl); + $request->redirectUrl($redirectUrl); } else { - $email->displayEditForm(Request::url(null, null, 'email'), array('redirectUrl' => Request::getUserVar('redirectUrl'), 'articleId' => $articleId), null, array('disableSkipButton' => true, 'articleId' => $articleId)); + $email->displayEditForm($request->url(null, null, 'email'), array('redirectUrl' => $request->getUserVar('redirectUrl'), 'articleId' => $articleId), null, array('disableSkipButton' => true, 'articleId' => $articleId)); } } } diff --git a/plugins/generic/sword/SwordPlugin.inc.php b/plugins/generic/sword/SwordPlugin.inc.php index 61ca20f7260..ddf13e075fa 100644 --- a/plugins/generic/sword/SwordPlugin.inc.php +++ b/plugins/generic/sword/SwordPlugin.inc.php @@ -107,6 +107,7 @@ function callbackLoadHandler($hookName, $args) { */ function callbackAuthorDeposits($hookName, $args) { $sectionEditorSubmission =& $args[0]; + $request =& $args[2]; // Determine if the most recent decision was an "Accept" $decisions = $sectionEditorSubmission->getDecisions(); @@ -165,7 +166,7 @@ function callbackAuthorDeposits($hookName, $args) { ) )); - $mail->send(); + $mail->send($request); } return false; diff --git a/plugins/importexport/native/NativeImportDom.inc.php b/plugins/importexport/native/NativeImportDom.inc.php index 232088854b7..ff6b29a35b3 100644 --- a/plugins/importexport/native/NativeImportDom.inc.php +++ b/plugins/importexport/native/NativeImportDom.inc.php @@ -823,12 +823,9 @@ function handleArticleNode(&$journal, &$articleNode, &$issue, &$section, &$artic // Log the import in the article event log. import('classes.article.log.ArticleLog'); - import('classes.article.log.ArticleEventLogEntry'); - ArticleLog::logEvent( - $article->getId(), + ArticleLog::logEventHeadless( + $journal, $user->getId(), $article, ARTICLE_LOG_ARTICLE_IMPORT, - ARTICLE_LOG_TYPE_DEFAULT, - 0, 'log.imported', array('userName' => $user->getFullName(), 'articleId' => $article->getId()) ); diff --git a/plugins/importexport/quickSubmit/QuickSubmitForm.inc.php b/plugins/importexport/quickSubmit/QuickSubmitForm.inc.php index 7005c7ce833..7983075c008 100644 --- a/plugins/importexport/quickSubmit/QuickSubmitForm.inc.php +++ b/plugins/importexport/quickSubmit/QuickSubmitForm.inc.php @@ -16,15 +16,18 @@ import('lib.pkp.classes.form.Form'); class QuickSubmitForm extends Form { + /** @var $request object */ + var $request; /** * Constructor * @param $plugin object */ - function QuickSubmitForm(&$plugin) { + function QuickSubmitForm(&$plugin, $request) { parent::Form($plugin->getTemplatePath() . 'index.tpl'); - $journal =& Request::getJournal(); + $this->request =& $request; + $journal =& $request->getJournal(); $this->addCheck(new FormValidatorPost($this)); $this->addCheck(new FormValidator($this, 'sectionId', 'required', 'author.submit.form.sectionRequired')); @@ -52,8 +55,9 @@ function getLocaleFieldNames() { */ function display() { $templateMgr =& TemplateManager::getManager(); - $user =& Request::getUser(); - $journal =& Request::getJournal(); + $request =& $this->request; + $user =& $request->getUser(); + $journal =& $request->getJournal(); $formLocale = $this->getFormLocale(); $templateMgr->assign('journal', $journal); @@ -85,14 +89,14 @@ function display() { $templateMgr->assign_by_ref('submissionFile', $submissionFile); } - if (Request::getUserVar('addAuthor') || Request::getUserVar('delAuthor') || Request::getUserVar('moveAuthor')) { + if ($request->getUserVar('addAuthor') || $request->getUserVar('delAuthor') || $request->getUserVar('moveAuthor')) { $templateMgr->assign('scrollToAuthor', true); } - if (Request::getUserVar('destination') == 'queue' ) { + if ($request->getUserVar('destination') == 'queue' ) { $templateMgr->assign('publishToIssue', false); } else { - $templateMgr->assign('issueNumber', Request::getUserVar('issueId')); + $templateMgr->assign('issueNumber', $request->getUserVar('issueId')); $templateMgr->assign('publishToIssue', true); } @@ -147,7 +151,8 @@ function readInputData() { function uploadSubmissionFile($fileName) { import('classes.file.TemporaryFileManager'); $temporaryFileManager = new TemporaryFileManager(); - $user =& Request::getUser(); + $request =& $this->request; + $user =& $request->getUser(); $temporaryFile = $temporaryFileManager->handleUpload($fileName, $user->getId()); @@ -167,7 +172,7 @@ function execute() { $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $application =& PKPApplication::getApplication(); - $request =& $application->getRequest(); + $request =& $this->request; $user =& $request->getUser(); $router =& $request->getRouter(); $journal =& $router->getContext($request); @@ -306,7 +311,7 @@ function execute() { $articleFileManager = new ArticleFileManager($articleId); $sectionEditorSubmission->setReviewFile($articleFileManager->getFile($article->getSubmissionFileId())); import('classes.submission.sectionEditor.SectionEditorAction'); - SectionEditorAction::recordDecision($sectionEditorSubmission, SUBMISSION_EDITOR_DECISION_ACCEPT); + SectionEditorAction::recordDecision($sectionEditorSubmission, SUBMISSION_EDITOR_DECISION_ACCEPT, $this->request); // Create signoff infrastructure $copyeditInitialSignoff = $signoffDao->build('SIGNOFF_COPYEDITING_INITIAL', ASSOC_TYPE_ARTICLE, $articleId); @@ -340,7 +345,7 @@ function execute() { // Add to end of editing queue import('classes.submission.editor.EditorAction'); - if (isset($galley)) EditorAction::expediteSubmission($article); + if (isset($galley)) EditorAction::expediteSubmission($article, $this->request); if ($this->getData('destination') == "issue") { // Add to an existing issue @@ -367,7 +372,8 @@ function scheduleForPublication($articleId, $issueId) { $sectionDao =& DAORegistry::getDAO('SectionDAO'); $issueDao =& DAORegistry::getDAO('IssueDAO'); - $journal =& Request::getJournal(); + $request =& $this->request; + $journal =& $request->getJournal(); $submission =& $sectionEditorSubmissionDao->getSectionEditorSubmission($articleId); $publishedArticle =& $publishedArticleDao->getPublishedArticleByArticleId($articleId); $issue =& $issueDao->getIssueById($issueId, $journal->getId()); diff --git a/plugins/importexport/quickSubmit/QuickSubmitPlugin.inc.php b/plugins/importexport/quickSubmit/QuickSubmitPlugin.inc.php index f07fab88b30..34e0c292861 100644 --- a/plugins/importexport/quickSubmit/QuickSubmitPlugin.inc.php +++ b/plugins/importexport/quickSubmit/QuickSubmitPlugin.inc.php @@ -46,20 +46,20 @@ function getDescription() { return Locale::translate('plugins.importexport.quickSubmit.description'); } - function display(&$args) { + function display(&$args, $request) { $templateMgr =& TemplateManager::getManager(); $templateMgr->register_function('plugin_url', array(&$this, 'smartyPluginUrl')); Locale::requireComponents(array(LOCALE_COMPONENT_OJS_AUTHOR, LOCALE_COMPONENT_OJS_EDITOR, LOCALE_COMPONENT_PKP_SUBMISSION)); $this->setBreadcrumbs(); if (array_shift($args) == 'saveSubmit') { - $this->saveSubmit($args); + $this->saveSubmit($args, $request); } else { $this->import('QuickSubmitForm'); if (checkPhpVersion('5.0.0')) { // WARNING: This form needs $this in constructor - $form = new QuickSubmitForm($this); + $form = new QuickSubmitForm($this, $request); } else { - $form =& new QuickSubmitForm($this); + $form =& new QuickSubmitForm($this, $request); } if ($form->isLocaleResubmit()) { $form->readInputData(); @@ -74,14 +74,14 @@ function display(&$args) { * Save the submitted form * @param $args array */ - function saveSubmit($args) { + function saveSubmit($args, $request) { $templateMgr =& TemplateManager::getManager(); $this->import('QuickSubmitForm'); if (checkPhpVersion('5.0.0')) { // WARNING: This form needs $this in constructor - $form = new QuickSubmitForm($this); + $form = new QuickSubmitForm($this, $request); } else { - $form =& new QuickSubmitForm($this); + $form =& new QuickSubmitForm($this, $request); } $form->readInputData(); $formLocale = $form->getFormLocale(); diff --git a/templates/sectionEditor/submissionEmailLog.tpl b/templates/sectionEditor/submissionEmailLog.tpl index ec267bb318a..97fda96ef6f 100644 --- a/templates/sectionEditor/submissionEmailLog.tpl +++ b/templates/sectionEditor/submissionEmailLog.tpl @@ -50,7 +50,7 @@ {$logEntry->getFrom()|truncate:40:"..."|escape} {$logEntry->getRecipients()|truncate:40:"..."|escape} {$logEntry->getSubject()|truncate:60:"..."|escape} - {if $logEntry->getAssocType()}getArticleId()|to_array:$logEntry->getAssocType():$logEntry->getAssocId()}" class="action">{translate key="common.related"} | {/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" onclick="return confirm('{translate|escape:"jsparam" key="submission.email.confirmDeleteLogEntry"}')" class="action">{translate key="common.delete"}{/if} + getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" onclick="return confirm('{translate|escape:"jsparam" key="submission.email.confirmDeleteLogEntry"}')" class="action">{translate key="common.delete"}{/if}   diff --git a/templates/sectionEditor/submissionEmailLogEntry.tpl b/templates/sectionEditor/submissionEmailLogEntry.tpl index f168e6ddf22..381e01c76da 100644 --- a/templates/sectionEditor/submissionEmailLogEntry.tpl +++ b/templates/sectionEditor/submissionEmailLogEntry.tpl @@ -41,10 +41,6 @@ {translate key="common.date"} {$logEntry->getDateSent()|date_format:$datetimeFormatLong} - - {translate key="common.type"} - {translate key=$logEntry->getAssocTypeLongString()} - {translate key="email.sender"} diff --git a/templates/sectionEditor/submissionEventLog.tpl b/templates/sectionEditor/submissionEventLog.tpl index 93c86d85409..1005cc37cfd 100644 --- a/templates/sectionEditor/submissionEventLog.tpl +++ b/templates/sectionEditor/submissionEventLog.tpl @@ -35,19 +35,17 @@

{translate key="submission.history.submissionEventLog"}

- + - - + {iterate from=eventLogEntries item=logEntry} - - + - + {/iterate} {if $eventLogEntries->wasEmpty()} - + - + {else} - + {/if} diff --git a/templates/sectionEditor/submissionEventLogEntry.tpl b/templates/sectionEditor/submissionEventLogEntry.tpl index d58f97c84c5..fb92519594f 100644 --- a/templates/sectionEditor/submissionEventLogEntry.tpl +++ b/templates/sectionEditor/submissionEventLogEntry.tpl @@ -41,14 +41,6 @@ - - - - - - - - - +
 
 
{translate key="common.date"}{translate key="submission.event.logLevel"} {translate key="common.user"} {translate key="common.event"} {translate key="common.action"}
 
 
{$logEntry->getDateLogged()|date_format:$dateFormatShort}{$logEntry->getLogLevel()|escape} {assign var=emailString value=$logEntry->getUserFullName()|concat:" <":$logEntry->getUserEmail():">"} {url|assign:"url" page="user" op="email" to=$emailString|to_array redirectUrl=$currentUrl subject=$logEntry->getEventTitle()|translate articleId=$submission->getArticleId()} @@ -56,24 +54,24 @@ {translate key=$logEntry->getEventTitle()}
- {$logEntry->getMessage()|strip_unsafe_html|truncate:60:"..."|escape} + {$logEntry->getTranslatedMessage()|strip_unsafe_html|truncate:60:"..."|escape}
{if $logEntry->getAssocType()}getArticleId()|to_array:$logEntry->getAssocType():$logEntry->getAssocId()}" class="action">{translate key="common.related"} | {/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" class="action" onclick="return confirm('{translate|escape:"jsparam" key="submission.event.confirmDeleteLogEntry"}')" class="icon">{translate key="common.delete"}{/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" class="action" onclick="return confirm('{translate|escape:"jsparam" key="submission.event.confirmDeleteLogEntry"}')" class="icon">{translate key="common.delete"}{/if}
  
{translate key="submission.history.noLogEntries"}{translate key="submission.history.noLogEntries"}
  
{page_info iterator=$eventLogEntries}{page_info iterator=$eventLogEntries} {page_links anchor="eventLogEntries" name="eventLogEntries" iterator=$eventLogEntries}
{translate key="common.date"} {$logEntry->getDateLogged()|date_format:$datetimeFormatLong}
{translate key="submission.event.logLevel"}{translate key=$logEntry->getLogLevelString()}
{translate key="common.type"}{translate key=$logEntry->getAssocTypeLongString()}
{translate key="common.user"} diff --git a/templates/sectionEditor/submissionHistory.tpl b/templates/sectionEditor/submissionHistory.tpl index 623e40c5b94..320f9a625c2 100644 --- a/templates/sectionEditor/submissionHistory.tpl +++ b/templates/sectionEditor/submissionHistory.tpl @@ -66,19 +66,17 @@

{translate key="submission.history.submissionEventLog"} - {translate key="submission.history.recentLogEntries"}

- + - - + {iterate from=eventLogEntries item=logEntry} - - + - + {/iterate} {if $eventLogEntries->wasEmpty()} - + - + {/if}
 
 
{translate key="common.date"}{translate key="submission.event.logLevel"} {translate key="common.user"} {translate key="common.event"} {translate key="common.action"}
 
 
{$logEntry->getDateLogged()|date_format:$dateFormatShort}{$logEntry->getLogLevel()|escape} {assign var=emailString value=$logEntry->getUserFullName()|concat:" <":$logEntry->getUserEmail():">"} {url|assign:"url" page="user" op="email" to=$emailString|to_array redirectUrl=$currentUrl subject=$logEntry->getEventTitle()|translate articleId=$submission->getArticleId()} @@ -87,20 +85,20 @@ {translate key=$logEntry->getEventTitle()}
- {$logEntry->getMessage()|strip_unsafe_html|truncate:60:"..."} + {$logEntry->getTranslatedMessage()|strip_unsafe_html|truncate:60:"..."}
{if $logEntry->getAssocType()}getArticleId()|to_array:$logEntry->getAssocType():$logEntry->getAssocId()}" class="action">{translate key="common.related"} | {/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" class="action" onclick="return confirm('{translate|escape:"jsparam" key="submission.event.confirmDeleteLogEntry"}')">{translate key="common.delete"}{/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" class="action" onclick="return confirm('{translate|escape:"jsparam" key="submission.event.confirmDeleteLogEntry"}')">{translate key="common.delete"}{/if}
  
{translate key="submission.history.noLogEntries"}{translate key="submission.history.noLogEntries"}
  
@@ -130,7 +128,7 @@
{$logEntry->getFrom()|truncate:40:"..."|escape} {$logEntry->getRecipients()|truncate:40:"..."|escape} {$logEntry->getSubject()|truncate:60:"..."|escape}{if $logEntry->getAssocType()}getArticleId()|to_array:$logEntry->getAssocType():$logEntry->getAssocId()}" class="action">{translate key="common.related"} | {/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" onclick="return confirm('{translate|escape:"jsparam" key="submission.email.confirmDeleteLogEntry"}')" class="action">{translate key="common.delete"}{/if}getArticleId()|to_array:$logEntry->getId()}" class="action">{translate key="common.view"}{if $isEditor} | getArticleId()|to_array:$logEntry->getId()}" onclick="return confirm('{translate|escape:"jsparam" key="submission.email.confirmDeleteLogEntry"}')" class="action">{translate key="common.delete"}{/if}