diff --git a/application/Api/v1/CalendarApicontroller.php b/application/Api/v1/CalendarApicontroller.php index e9570b0e6..ecd6bbce9 100644 --- a/application/Api/v1/CalendarApicontroller.php +++ b/application/Api/v1/CalendarApicontroller.php @@ -189,6 +189,7 @@ class CalendarApicontroller extends mfBaseApicontroller $message[0]['ctime'] = $Calendarevent['data'][0]['ctime']['ctime']; $message[0]['cname'] = $Calendarevent['data'][0]['cname']['cname']; $message[0]['busy'] = $Calendarevent['data'][0]['busy']['busy']; + $message[0]['canceld']= $Calendarevent['data'][0]['canceld']['canceld']; $message[0]['calendar_id_check'] = array('calendar_id' => $json['calendar_id'], 'order' => $json['calendar_id']);; $message[0]['userr'] = $Calendar[0]->calendar_id; $message[0]['bgColor'] = $calendarColors[$json['calendar_id']]['bgcolor']; @@ -196,6 +197,7 @@ class CalendarApicontroller extends mfBaseApicontroller $message[0]['rights'] = $rights[$json['calendar_id']]; $message[0]['me'] = $decstring; + $result = json_encode($message); if (in_array($message[0]['calendar_id'], $allowedCalendar)) { echo "data: " . ($result) . "\n\n"; diff --git a/application/Calendar/CalendarModel.php b/application/Calendar/CalendarModel.php index bea68ba7b..f7e8b87bc 100644 --- a/application/Calendar/CalendarModel.php +++ b/application/Calendar/CalendarModel.php @@ -212,7 +212,7 @@ class CalendarModel } - $sql = "SELECT `cal_events`.id,`cal_events`.categories, uuid, calendar_id, `cal_events`.user_id, start_time, end_time, timezone, all_day_event, `cal_events`.name,`cal_calendars`.name calendar_name, description, location, repeat_end_time, reminder, ctime,cname, mtime,mname, muser_id, busy, status, resource_event_id, private, rrule, `cal_events`.background, `cal_events`.files_folder_id, read_only, category_id, exception_for_event_id, recurrence_id, is_organizer,event_type,busy,recurrence,rrule_events FROM cal_events INNER JOIN `cal_calendars` ON (`cal_calendars`.`id`=`cal_events`.`calendar_id`) WHERE 1=1 $where ORDER BY start_time DESC"; + $sql = "SELECT `cal_events`.id,`cal_events`.categories, uuid, calendar_id, `cal_events`.user_id, start_time, end_time, timezone, all_day_event, `cal_events`.name,`cal_calendars`.name calendar_name, description, location, repeat_end_time, reminder, ctime,cname, mtime,mname, muser_id, busy, status, resource_event_id, private, rrule, `cal_events`.background, `cal_events`.files_folder_id, read_only, category_id, exception_for_event_id, recurrence_id, is_organizer,event_type,busy,recurrence,rrule_events,canceld FROM cal_events INNER JOIN `cal_calendars` ON (`cal_calendars`.`id`=`cal_events`.`calendar_id`) WHERE 1=1 $where ORDER BY start_time DESC"; $res = $dbcal->query($sql); if ($dbcal->num_rows($res)) { @@ -338,6 +338,7 @@ class CalendarModel 'mname' => array('mname' => $data['mname']), 'isorganizer' => array('isorganizer' => $data['is_organizer']), 'busy' => array('busy' => $data['busy']), + 'canceld'=> array('canceld' => $data['canceld']), 'timerecording' => array('timerecording' => 0), ); } diff --git a/public/js/pages/Calendar/View.js b/public/js/pages/Calendar/View.js index b26584705..e580e6cd2 100644 --- a/public/js/pages/Calendar/View.js +++ b/public/js/pages/Calendar/View.js @@ -998,6 +998,7 @@ if (typeof (EventSource) !== 'undefined') { let calendarFilter = $('.btn-light-search'); let visibleCalendars = []; let visibleCalendarTypes = []; + let visibleCancellation = 0; let mycalendar_id = $('#calendar-id').data('calendarid'); visibleCalendars.push(0); checkbox.each(function () { @@ -1010,6 +1011,9 @@ if (typeof (EventSource) !== 'undefined') { if ($(this).data('ctype')) { visibleCalendarTypes.push(parseInt($(this).data('ctype'))); } + if ($(this).data('eventcancelled')) { + visibleCancellation = $(this).data('eventcancelled'); + } } }); jsondata = JSON.parse(e.data); @@ -1020,6 +1024,13 @@ if (typeof (EventSource) !== 'undefined') { if (visibleCalendarTypes.length > 0 && !visibleCalendarTypes.includes(parseInt(event.event_type)) && event.change_type != '3') { return; } + if (visibleCancellation == 0 && event.change_type != '3' && event.canceld == 1) { + let cevent = calendar.getEventById(event.cal_events_id); + if (cevent) { + cevent.remove(); + } + return; + } let cevent = calendar.getEventById(event.cal_events_id); let rights = false; let movable = false;