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 @@
+
{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"}
{$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} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||