diff -urN ../calendar.orig/calendar.php ./calendar.php --- ../calendar.orig/calendar.php 2020-05-10 22:48:55.158840000 +0300 +++ ./calendar.php 2020-05-10 23:15:44.106120000 +0300 @@ -363,6 +363,7 @@ } $no_override = array_flip((array)$this->rc->config->get('dont_override')); +$p['current'] = 1; $p['blocks']['view']['name'] = $this->gettext('mainoptions'); @@ -1253,7 +1254,7 @@ private function event_save_success(&$event, $old, $action, $success) { // $success is a new event ID - if ($success !== true) { + if (($action != 'remove') and ($action != 'edit') and ($success !== true)) { // send update notification on the main event if ($event['_savemode'] == 'future' && $event['_notify'] && $old['attendees'] && $old['recurrence_id']) { $master = $this->driver->get_event(array('id' => $old['recurrence_id'], 'calendar' => $old['calendar']), 0, true); @@ -1298,7 +1299,10 @@ // only notify if data really changed (TODO: do diff check on client already) if (!$old || $action == 'remove' || self::event_diff($event, $old)) { - $sent = $this->notify_attendees($event, $old, $action, $event['_comment']); + if ($action == 'remove') + $sent = $this->notify_attendees($old, $old, $action, $event['_comment']); + else + $sent = $this->notify_attendees($event, $old, $action, $event['_comment']); if ($sent > 0) $this->rc->output->show_message('calendar.itipsendsuccess', 'confirmation'); else if ($sent < 0) diff -urN ../calendar.orig/config.inc.php ./config.inc.php --- ../calendar.orig/config.inc.php 1970-01-01 03:00:00.000000000 +0300 +++ ./config.inc.php 2020-05-10 22:59:48.506744000 +0300 @@ -0,0 +1,163 @@ +. | + | | + +-------------------------------------------------------------------------+ + | Author: Lazlo Westerhof | + | Thomas Bruederli | + +-------------------------------------------------------------------------+ +*/ + +// backend type (database, kolab) +$config['calendar_driver'] = "database"; + +// default calendar view (agendaDay, agendaWeek, month) +$config['calendar_default_view'] = "agendaWeek"; + +// show a birthdays calendar from the user's address book(s) +$config['calendar_contact_birthdays'] = false; + +// timeslots per hour (1, 2, 3, 4, 6) +$config['calendar_timeslots'] = 2; + +// show this number of days in agenda view +$config['calendar_agenda_range'] = 60; + +// first day of the week (0-6) +$config['calendar_first_day'] = 1; + +// first hour of the calendar (0-23) +$config['calendar_first_hour'] = 6; + +// working hours begin +$config['calendar_work_start'] = 6; + +// working hours end +$config['calendar_work_end'] = 18; + +// show line at current time of the day +$config['calendar_time_indicator'] = true; + +// Display week numbers: +// -1: don't display week numbers +// 0: in datepicker only (default) +// 1: in both datepicker and calendar +$config['calendar_show_weekno'] = 0; + +// default alarm settings for new events. +// this is only a preset when a new event dialog opens +// possible values are , DISPLAY, EMAIL +//$config['calendar_default_alarm_type'] = ''; +$config['calendar_default_alarm_type'] = 'DISPLAY'; + +// default alarm offset for new events. +// use ical-style offset values like "-1H" (one hour before) or "+30M" (30 minutes after) +$config['calendar_default_alarm_offset'] = '-15M'; + +// how to colorize events: +// 0: according to calendar color +// 1: according to category color +// 2: calendar for outer, category for inner color +// 3: category for outer, calendar for inner color +$config['calendar_event_coloring'] = 0; + +// event categories +$config['calendar_categories'] = array( +// 'Personal' => 'c0c0c0', +// 'Work' => 'ff0000', +// 'Family' => '00ff00', +// 'Holiday' => 'ff6600', + 'Личное' => 'c0c0c0', + 'Работа' => 'ff0000', + 'Семья' => '00ff00', + 'Праздники' => 'ff6600', +); + +// enable users to invite/edit attendees for shared events organized by others +//$config['calendar_allow_invite_shared'] = false; +$config['calendar_allow_invite_shared'] = true; + +// allow users to accecpt iTip invitations who are no explicitly listed as attendee. +// this can be the case if invitations are sent to mailing lists or alias email addresses. +$config['calendar_allow_itip_uninvited'] = true; + +// controls the visibility/default of the checkbox controlling the sending of iTip invitations +// 0 = hidden + disabled +// 1 = hidden + active +// 2 = visible + unchecked +// 3 = visible + active +$config['calendar_itip_send_option'] = 3; + +// Action taken after iTip request is handled. Possible values: +// 0 - no action +// 1 - move to Trash +// 2 - delete the message +// 3 - flag as deleted +// folder_name - move the message to the specified folder +$config['calendar_itip_after_action'] = 0; + +// enable asynchronous free-busy triggering after data changed +$config['calendar_freebusy_trigger'] = false; + +// free-busy information will be displayed for user calendars if available +// 0 - no free-busy information +// 1 - enabled in all views +// 2 - only in quickview +$config['calendar_include_freebusy_data'] = 1; + +// SMTP server host used to send (anonymous) itip messages. +// To override the SMTP port or connection method, provide a full URL like 'tls://somehost:587' +// This will add a link to invitation messages to allow users from outside +// to reply when their mail clients do not support iTip format. +//$config['calendar_itip_smtp_server'] = null; +$config['calendar_itip_smtp_server'] = 'tls://localhost'; + +// SMTP username used to send (anonymous) itip messages +//$config['calendar_itip_smtp_user'] = 'smtpauth'; +$config['calendar_itip_smtp_user'] = 'calendar@localhost'; + +// SMTP password used to send (anonymous) itip messages +$config['calendar_itip_smtp_pass'] = '123456'; + +// show virtual invitation calendars (Kolab driver only) +//$config['kolab_invitation_calendars'] = false; +$config['kolab_invitation_calendars'] = true; + +// Base URL to build fully qualified URIs to access calendars via CALDAV +// The following replacement variables are supported: +// %h - Current HTTP host +// %u - Current webmail user name +// %n - Calendar name +// %i - Calendar UUID +// $config['calendar_caldav_url'] = 'http://%h/iRony/calendars/%u/%i'; + +// Driver to provide a resource directory ('ldap' is the only implementation yet). +// Leave empty or commented to disable resources support. +// $config['calendar_resources_driver'] = 'ldap'; + +// LDAP directory configuration to find avilable resources for events +// $config['calendar_resources_directory'] = array(/* ldap_public-like address book configuration */); + +// Enables displaying of free-busy URL with token-based authentication +// Set it to the prefix URL, e.g. 'https://hostname/freebusy' or just '/freebusy'. +// See freebusy_session_auth in configuration of kolab_auth plugin. +$config['calendar_freebusy_session_auth_url'] = null; + +?> diff -urN ../calendar.orig/drivers/database/database_driver.php ./drivers/database/database_driver.php --- ../calendar.orig/drivers/database/database_driver.php 2020-05-10 22:48:55.171221000 +0300 +++ ./drivers/database/database_driver.php 2020-05-10 23:17:15.573039000 +0300 @@ -112,7 +112,7 @@ { // attempt to create a default calendar for this user if (empty($this->calendars)) { - if ($this->create_calendar(array('name' => 'Default', 'color' => 'cc0000', 'showalarms' => true))) { + if ($this->create_calendar(array('name' => ($this->cal->gettext('default_calendar_name') ? $this->cal->gettext('default_calendar_name') : 'Default'), 'color' => 'cc0000', 'showalarms' => true))) { $this->_read_calendars(); } } diff -urN ../calendar.orig/localization/en_US.inc ./localization/en_US.inc --- ../calendar.orig/localization/en_US.inc 2020-05-10 22:48:55.193626000 +0300 +++ ./localization/en_US.inc 2020-05-10 23:15:44.107158000 +0300 @@ -40,6 +40,7 @@ // calendar $labels['calendar'] = 'Calendar'; $labels['calendars'] = 'Calendars'; +$labels['default_calendar_name'] = 'Default calendar'; $labels['category'] = 'Category'; $labels['categories'] = 'Categories'; $labels['addcalendar'] = 'Add calendar'; diff -urN ../calendar.orig/localization/ru_RU.inc ./localization/ru_RU.inc --- ../calendar.orig/localization/ru_RU.inc 2020-05-10 22:48:55.200255000 +0300 +++ ./localization/ru_RU.inc 2020-05-10 23:15:44.108113000 +0300 @@ -33,6 +33,7 @@ $labels['weeknoall'] = 'посмотреть в режиме выбора даты и календаря'; $labels['calendar'] = 'Календарь'; $labels['calendars'] = 'Календари'; +$labels['default_calendar_name'] = 'Основной календарь'; $labels['category'] = 'Категория'; $labels['categories'] = 'Категории'; $labels['addcalendar'] = 'Добавить календарь'; diff -urN ../calendar.orig/localization/uk_UA.inc ./localization/uk_UA.inc --- ../calendar.orig/localization/uk_UA.inc 2020-05-10 22:48:55.202449000 +0300 +++ ./localization/uk_UA.inc 2021-01-14 16:33:31.839208000 +0200 @@ -29,6 +29,7 @@ $labels['afteraction'] = 'Після того, як запрошення або повідомлення про його зміну оброблено'; $labels['calendar'] = 'Календар'; $labels['calendars'] = 'Календарі'; +$labels['default_calendar_name'] = 'Основний календар'; $labels['category'] = 'Категорія'; $labels['categories'] = 'Категорії'; $labels['createcalendar'] = 'Створити новий календар'; diff -urN ../calendar.orig/skins/larry/calendar.css ./skins/larry/calendar.css --- ../calendar.orig/skins/larry/calendar.css 2020-05-10 22:48:55.206260000 +0300 +++ ./skins/larry/calendar.css 2021-01-23 00:42:32.742490000 +0200 @@ -234,7 +234,7 @@ #calendars .treelist.flat li a.calname { left: 24px; - right: 42px; + right: 52px; } #calendars .treelist li span.handle {