17 import(
'lib.pkp.classes.controllers.grid.GridCellProvider');
18 import(
'lib.pkp.classes.linkAction.request.AjaxAction');
28 function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
29 assert($column->getId() ==
'task');
33 $notification = $row->getData();
35 $context = $contextDao->getById($notification->getContextId());
38 $router = $request->getRouter();
40 $templateMgr->assign(array(
41 'notificationMgr' => $notificationMgr,
42 'notification' => $notification,
43 'context' => $context,
44 'notificationObjectTitle' => $this->
_getTitle($notification),
49 $user = $request->getUser();
51 $contexts = $contextDao->getAvailable($user?$user->getId():
null)->toArray();
52 $templateMgr->assign(
'isMultiContext', count($contexts) > 1);
57 $request,
null,
null,
'markRead',
59 array(
'redirect' => 1,
'selectedElements' => array($notification->getId()))
61 $templateMgr->fetch(
'controllers/grid/tasks/task.tpl')
77 assert($column->getId()==
'task');
80 return array(
'label' =>
'');
89 switch ($notification->getAssocType()) {
90 case ASSOC_TYPE_QUEUED_PAYMENT:
94 $queuedPayment = $queuedPaymentDao->getById($notification->getAssocId());
95 if ($queuedPayment)
switch ($queuedPayment->getType()) {
96 case PAYMENT_TYPE_PUBLICATION:
98 return $submissionDao->getById($queuedPayment->getAssocId())->getLocalizedTitle();
102 case ASSOC_TYPE_ANNOUNCEMENT:
103 $announcementId = $notification->getAssocId();
105 $announcement = $announcementDao->getById($announcementId);
106 if ($announcement)
return $announcement->getLocalizedTitle();
108 case ASSOC_TYPE_SUBMISSION:
109 $submissionId = $notification->getAssocId();
111 case ASSOC_TYPE_SUBMISSION_FILE:
112 $fileId = $notification->getAssocId();
114 case ASSOC_TYPE_REVIEW_ASSIGNMENT:
116 $reviewAssignment = $reviewAssignmentDao->getById($notification->getAssocId());
117 assert(is_a($reviewAssignment,
'ReviewAssignment'));
118 $submissionId = $reviewAssignment->getSubmissionId();
120 case ASSOC_TYPE_REVIEW_ROUND:
122 $reviewRound = $reviewRoundDao->getById($notification->getAssocId());
123 assert(is_a($reviewRound,
'ReviewRound'));
124 $submissionId = $reviewRound->getSubmissionId();
126 case ASSOC_TYPE_QUERY:
128 $query = $queryDao->getById($notification->getAssocId());
129 assert(is_a($query,
'Query'));
130 switch ($query->getAssocType()) {
131 case ASSOC_TYPE_SUBMISSION:
132 $submissionId = $query->getAssocId();
134 case ASSOC_TYPE_REPRESENTATION:
136 $representation = $representationDao->getById($query->getAssocId());
137 $publication =
Services::get(
'publication')->get($representation->getData(
'publicationId'));
138 $submissionId = $publication->getData(
'submissionId');
140 default: assert(
false);
147 if (!isset($submissionId) && isset($fileId)) {
148 assert(is_numeric($fileId));
150 $submissionFile = $submissionFileDao->getLatestRevision($fileId);
151 assert(is_a($submissionFile,
'SubmissionFile'));
152 $submissionId = $submissionFile->getSubmissionId();
154 assert(is_numeric($submissionId));
156 $submission = $submissionDao->getById($submissionId);
157 assert(is_a($submission,
'Submission'));
159 return $submission->getLocalizedTitle();