Open Journal Systems  3.3.0
SubmissionNotificationManager.inc.php
1 <?php
2 
16 import('lib.pkp.classes.notification.NotificationManagerDelegate');
17 
19 
24  function __construct($notificationType) {
25  parent::__construct($notificationType);
26  }
27 
31  public function getNotificationMessage($request, $notification) {
32  assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION && is_numeric($notification->getAssocId()));
33  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
34  $submission = $submissionDao->getById($notification->getAssocId()); /* @var $submission Submission */
35 
36  switch ($notification->getType()) {
37  case NOTIFICATION_TYPE_SUBMISSION_SUBMITTED:
38  return __('notification.type.submissionSubmitted', array('title' => $submission->getLocalizedTitle()));
39  case NOTIFICATION_TYPE_METADATA_MODIFIED:
40  return __('notification.type.metadataModified', array('title' => $submission->getLocalizedTitle()));
41  case NOTIFICATION_TYPE_SUBMISSION_NEW_VERSION:
42  return __('notification.type.submissionNewVersion');
43  case NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_REQUIRED:
44  return __('notification.type.editorAssignmentTask');
45  default:
46  assert(false);
47  }
48  }
49 
53  public function getNotificationUrl($request, $notification) {
54  $router = $request->getRouter();
55  $dispatcher = $router->getDispatcher();
56 
57  assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION && is_numeric($notification->getAssocId()));
58  switch ($notification->getType()) {
59  case NOTIFICATION_TYPE_SUBMISSION_SUBMITTED:
60  case NOTIFICATION_TYPE_METADATA_MODIFIED:
61  case NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_REQUIRED:
62  $contextDao = Application::getContextDAO();
63  $context = $contextDao->getById($notification->getContextId());
64 
65  return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'submission', $notification->getAssocId());
66  case NOTIFICATION_TYPE_SUBMISSION_NEW_VERSION:
67  $contextDao = Application::getContextDAO();
68  $context = $contextDao->getById($notification->getContextId());
69 
70  return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'production', $notification->getAssocId());
71  default:
72  assert(false);
73  }
74  }
75 
79  public function getIconClass($notification) {
80  switch ($notification->getType()) {
81  case NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_REQUIRED:
82  return 'notifyIconPageAlert';
83  case NOTIFICATION_TYPE_SUBMISSION_SUBMITTED:
84  return 'notifyIconNewPage';
85  case NOTIFICATION_TYPE_METADATA_MODIFIED:
86  return 'notifyIconEdit';
87  default:
88  assert(false);
89  }
90  }
91 
95  public function getStyleClass($notification) {
96  switch ($notification->getType()) {
97  case NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_REQUIRED:
98  return NOTIFICATION_STYLE_CLASS_INFORMATION;
99  case NOTIFICATION_TYPE_SUBMISSION_SUBMITTED:
100  case NOTIFICATION_TYPE_METADATA_MODIFIED:
101  return '';
102  default:
103  assert(false);
104  }
105  }
106 }
107 
108 
Application\getContextDAO
static getContextDAO()
Definition: Application.inc.php:137
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionNotificationManager\getIconClass
getIconClass($notification)
Definition: SubmissionNotificationManager.inc.php:79
SubmissionNotificationManager\getNotificationUrl
getNotificationUrl($request, $notification)
Definition: SubmissionNotificationManager.inc.php:53
NotificationManagerDelegate
Abstract class to support notification manager delegates that provide default implementation to the i...
Definition: NotificationManagerDelegate.inc.php:21
SubmissionNotificationManager\getStyleClass
getStyleClass($notification)
Definition: SubmissionNotificationManager.inc.php:95
SubmissionNotificationManager\__construct
__construct($notificationType)
Definition: SubmissionNotificationManager.inc.php:24
SubmissionNotificationManager
Submission notification types manager delegate.
Definition: SubmissionNotificationManager.inc.php:18
SubmissionNotificationManager\getNotificationMessage
getNotificationMessage($request, $notification)
Definition: SubmissionNotificationManager.inc.php:31