Open Journal Systems  3.3.0
EventLogGridRow.inc.php
1 <?php
2 
16 // Parent class
17 import('lib.pkp.classes.controllers.grid.GridRow');
18 
19 // Other classes used
20 import('lib.pkp.classes.log.SubmissionFileEventLogEntry');
21 import('lib.pkp.controllers.api.file.linkAction.DownloadFileLinkAction');
22 import('lib.pkp.controllers.grid.eventLog.linkAction.EmailLinkAction');
23 
24 class EventLogGridRow extends GridRow {
26  var $_submission;
27 
30 
37  function __construct($submission, $isCurrentUserAssignedAuthor) {
38  $this->_submission = $submission;
39  $this->_isCurrentUserAssignedAuthor = $isCurrentUserAssignedAuthor;
40  parent::__construct();
41  }
42 
43  //
44  // Overridden methods from GridRow
45  //
49  function initialize($request, $template = null) {
50  parent::initialize($request, $template);
51 
52  $logEntry = $this->getData(); // a Category object
53  assert($logEntry != null && (is_a($logEntry, 'EventLogEntry') || is_a($logEntry, 'EmailLogEntry')));
54 
55  if (is_a($logEntry, 'EventLogEntry')) {
56  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
57  $params = $logEntry->getParams();
58 
59  switch ($logEntry->getEventType()) {
60  case SUBMISSION_LOG_FILE_REVISION_UPLOAD:
61  case SUBMISSION_LOG_FILE_UPLOAD:
62  $submissionFile = $submissionFileDao->getRevision($params['fileId'], $params['fileRevision']);
63  if ($submissionFile) {
64  $blindAuthor = false;
65  $maybeBlindAuthor = $this->_isCurrentUserAssignedAuthor && $submissionFile->getFileStage() === SUBMISSION_FILE_REVIEW_ATTACHMENT;
66  if ($maybeBlindAuthor && $submissionFile->getAssocType() === ASSOC_TYPE_REVIEW_ASSIGNMENT) {
67  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
68  $reviewAssignment = $reviewAssignmentDao->getById($submissionFile->getAssocId());
69  if ($reviewAssignment && in_array($reviewAssignment->getReviewMethod(), array(SUBMISSION_REVIEW_METHOD_BLIND, SUBMISSION_REVIEW_METHOD_DOUBLEBLIND))) {
70  $blindAuthor = true;
71  }
72  }
73  if (!$blindAuthor) {
74  $workflowStageId = $submissionFileDao->getWorkflowStageId($submissionFile);
75  // If a submission file is attached to a query that has been deleted, we cannot
76  // determine its stage. Don't present a download link in this case.
77  if ($workflowStageId || $submissionFile->getFileStage() != SUBMISSION_FILE_QUERY) {
78  $this->addAction(new DownloadFileLinkAction($request, $submissionFile, $submissionFileDao->getWorkflowStageId($submissionFile), __('common.download')));
79  }
80  }
81  }
82  break;
83  }
84 
85  } elseif (is_a($logEntry, 'EmailLogEntry')) {
86  $this->addAction(
87  new EmailLinkAction(
88  $request,
89  __('submission.event.viewEmail'),
90  array(
91  'submissionId' => $logEntry->getAssocId(),
92  'emailLogEntryId' => $logEntry->getId(),
93  )
94  )
95  );
96  }
97  }
98 }
99 
100 
GridRow\__construct
__construct()
Definition: GridRow.inc.php:75
EmailLinkAction
An action to open up a modal to view an email sent to a user.
Definition: EmailLinkAction.inc.php:19
GridRow\addAction
addAction($action, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: GridRow.inc.php:179
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
EventLogGridRow\__construct
__construct($submission, $isCurrentUserAssignedAuthor)
Definition: EventLogGridRow.inc.php:43
EventLogGridRow\$_isCurrentUserAssignedAuthor
$_isCurrentUserAssignedAuthor
Definition: EventLogGridRow.inc.php:35
EventLogGridRow\initialize
initialize($request, $template=null)
Definition: EventLogGridRow.inc.php:55
GridRow
GridRow implements a row of a Grid. See GridHandler for general information about grids.
Definition: GridRow.inc.php:29
EventLogGridRow
EventLog grid row definition.
Definition: EventLogGridRow.inc.php:24
EventLogGridRow\$_submission
$_submission
Definition: EventLogGridRow.inc.php:29
GridRow\getData
& getData()
Definition: GridRow.inc.php:131
DownloadFileLinkAction
An action to download a file.
Definition: DownloadFileLinkAction.inc.php:17