Open Journal Systems  3.3.0
EventLogGridCellProvider.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.DataObjectGridCellProvider');
17 
19 
22 
28  public function __construct($isCurrentUserAssignedAuthor) {
29  parent::__construct();
30  $this->_isCurrentUserAssignedAuthor = $isCurrentUserAssignedAuthor;
31  }
32 
33  //
34  // Template methods from GridCellProvider
35  //
43  function getTemplateVarsFromRowColumn($row, $column) {
44  $element = $row->getData();
45  $columnId = $column->getId();
46  assert(is_a($element, 'DataObject') && !empty($columnId));
47  switch ($columnId) {
48  case 'date':
49  return array('label' => is_a($element, 'EventLogEntry') ? $element->getDateLogged() : $element->getDateSent());
50  case 'event':
51  return array('label' => is_a($element, 'EventLogEntry') ? $element->getTranslatedMessage(null, $this->_isCurrentUserAssignedAuthor) : $element->getPrefixedSubject());
52  case 'user':
53  if (is_a($element, 'EventLogEntry')) {
54  $userName = $element->getUserFullName();
55 
56  // Anonymize reviewer details where necessary
57  if ($this->_isCurrentUserAssignedAuthor) {
58  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
59 
60  // Maybe anonymize reviewer log entries
61  $reviewerLogTypes = array(
62  SUBMISSION_LOG_REVIEW_ACCEPT,
63  SUBMISSION_LOG_REVIEW_DECLINE,
64  SUBMISSION_LOG_REVIEW_UNCONSIDERED,
65  SUBMISSION_LOG_REVIEW_FILE,
66  SUBMISSION_LOG_REVIEW_CANCEL,
67  SUBMISSION_LOG_REVIEW_REVISION,
68  SUBMISSION_LOG_REVIEW_RECOMMENDATION,
69  );
70  $params = $element->getParams();
71  if (in_array($element->getEventType(), $reviewerLogTypes)) {
72  $userName = __('editor.review.anonymousReviewer');
73  if (isset($params['reviewAssignmentId'])) {
74  $reviewAssignment = $reviewAssignmentDao->getById($params['reviewAssignmentId']);
75  if ($reviewAssignment && $reviewAssignment->getReviewMethod() === SUBMISSION_REVIEW_METHOD_OPEN) {
76  $userName = $reviewAssignment->getUserFullName();
77  }
78  }
79  }
80 
81  // Maybe anonymize files submitted by reviewers
82  if (isset($params['fileStage']) && $params['fileStage'] === SUBMISSION_FILE_REVIEW_ATTACHMENT) {
83  assert(isset($params['fileId']) && isset($params['submissionId']));
84  $blindAuthor = true;
85  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
86  $submissionFile = $submissionFileDao->getLatestRevision($params['fileId']);
87  if ($submissionFile && $submissionFile->getAssocType() === ASSOC_TYPE_REVIEW_ASSIGNMENT) {
88  $reviewAssignment = $reviewAssignmentDao->getById($submissionFile->getAssocId());
89  if (!$reviewAssignment || in_array($reviewAssignment->getReviewMethod(), array(SUBMISSION_REVIEW_METHOD_BLIND, SUBMISSION_REVIEW_METHOD_DOUBLEBLIND))) {
90  $userName = __('editor.review.anonymousReviewer');
91  }
92  }
93  }
94  }
95  } else {
96  $userName = $element->getSenderFullName();
97  }
98  return array('label' => $userName);
99  default:
100  assert(false);
101  }
102  }
103 }
104 
105 
EventLogGridCellProvider\$_isCurrentUserAssignedAuthor
$_isCurrentUserAssignedAuthor
Definition: EventLogGridCellProvider.inc.php:24
EventLogGridCellProvider
Cell provider for event log entries.
Definition: EventLogGridCellProvider.inc.php:18
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
GridCellProvider\__construct
__construct()
Definition: GridCellProvider.inc.php:24
EventLogGridCellProvider\__construct
__construct($isCurrentUserAssignedAuthor)
Definition: EventLogGridCellProvider.inc.php:31
DataObjectGridCellProvider
Base class for a cell provider that can retrieve simple labels from DataObjects. If you need more com...
Definition: DataObjectGridCellProvider.inc.php:22
EventLogGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: EventLogGridCellProvider.inc.php:46