diff --git a/calendar/inc/class.calendar_boupdate.inc.php b/calendar/inc/class.calendar_boupdate.inc.php index 24e8519553..97ade18b39 100644 --- a/calendar/inc/class.calendar_boupdate.inc.php +++ b/calendar/inc/class.calendar_boupdate.inc.php @@ -1159,7 +1159,7 @@ class calendar_boupdate extends calendar_bo 'videoconference' => $details['videoconference'], ) + ($alarm ? ['alarm-offset' => (int)$alarm['offset']] : [])); } - if ($m_type === MSG_ALARM) $notification->set_popupdata('calendar', array('egw_pr_notify' => 1, 'type' => $m_type)); + if ($m_type === MSG_ALARM) $notification->set_popupdata('calendar', array('egw_pr_notify' => 1, 'type' => $m_type, 'videoconference' => $details['videoconference'])); $notification->set_popupmessage($subject."\n\n".$notify_body."\n\n".$details['description']."\n\n".$details_body."\n\n"); $notification->set_popuplinks(array($details['link_arr']+array('app'=>'calendar'))); diff --git a/calendar/inc/class.calendar_hooks.inc.php b/calendar/inc/class.calendar_hooks.inc.php index a6afcd3929..c88799b3f4 100644 --- a/calendar/inc/class.calendar_hooks.inc.php +++ b/calendar/inc/class.calendar_hooks.inc.php @@ -880,7 +880,21 @@ END:VALARM'; { Api\Translation::add_app('calendar'); // do not set actions for alarm type - if ($params['data']['type'] == 6) return array(); + if ($params['data']['type'] == 6) + { + if (!empty($params['data']['videoconference'])) + { + return [ + array( + 'id' => 'J', + 'caption' => lang('Join'), + 'icon' => 'accept_call', + 'onExecute' => 'app.status.openCall("'.$params['data']['videoconference'].'");' + ) + ]; + } + return array(); + } return array( array( 'id' => 'A', diff --git a/notifications/js/notificationajaxpopup.js b/notifications/js/notificationajaxpopup.js index caa6d7b007..c1e74277fb 100644 --- a/notifications/js/notificationajaxpopup.js +++ b/notifications/js/notificationajaxpopup.js @@ -356,6 +356,10 @@ switch (notifymessages[id]['extra_data']['egw_pr_notify']) { case EGW_PR_NOTIFY_HEIGH: + if (notifymessages[id]['extra_data']['videoconference']) + { + app.status.notificationPopup(notifymessages[id]['extra_data']['videoconference']); + } poped.push(id); this.toggle(true); break;