diff --git a/plugins/calendar/TODO b/plugins/calendar/TODO index d75f67d4..ad1c05c6 100644 --- a/plugins/calendar/TODO +++ b/plugins/calendar/TODO @@ -22,7 +22,7 @@ - View: 3.5: Search + View: 3.9: Alter event with drag/drop + Option: 4.12: Set default reminder time -- Edit: 3.23: Specify folder for new event (prefs) ++ Option: 3.23: Specify folder for new event (prefs) - Receive: 1.20: Invitation handling - View: 3.4: Fish-Eye View For Busy Days diff --git a/plugins/calendar/calendar.js b/plugins/calendar/calendar.js index 9f02b7c1..21aafefc 100644 --- a/plugins/calendar/calendar.js +++ b/plugins/calendar/calendar.js @@ -728,7 +728,7 @@ function rcube_calendar(settings) }).data('id', id); } - if (!cal.readonly && !this.selected_calendar) { + if (!cal.readonly && !this.selected_calendar && (!settings.default_calendar || settings.default_calendar == id)) { this.selected_calendar = id; rcmail.enable_command('plugin.addevent', true); } @@ -754,6 +754,7 @@ function rcube_calendar(settings) slotMinutes : 60/settings['timeslots'], timeFormat: { '': settings['time_format'], + agenda: settings['time_format'] + '{ - ' + settings['time_format'] + '}', list: settings['time_format'] + '{ - ' + settings['time_format'] + '}', table: settings['time_format'] + '{ - ' + settings['time_format'] + '}' }, diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index 81a5184b..184dce4f 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -236,6 +236,17 @@ class calendar extends rcube_plugin 'content' => $input_value->show($preset[0]) . ' ' . $select_offset->show($preset[1]), ); + // default calendar selection + $field_id = 'rcmfd_default_calendar'; + $select_cal = new html_select(array('name' => '_default_calendar', 'id' => $field_id)); + foreach ((array)$this->driver->list_calendars() as $id => $prop) { + if (!$prop['readononly']) + $select_cal->add($prop['name'], strval($id)); + } + $p['blocks']['view']['options']['defaultcalendar'] = array( + 'title' => html::label($field_id . 'value', Q($this->gettext('defaultcalendar'))), + 'content' => $select_cal->show($this->rc->config->get('calendar_default_calendar', '')), + ); // category definitions if (!$this->driver->categoriesimmutable) { @@ -305,6 +316,7 @@ class calendar extends rcube_plugin 'calendar_first_day' => get_input_value('_first_day', RCUBE_INPUT_POST), 'calendar_default_alarm_type' => get_input_value('_alarm_type', RCUBE_INPUT_POST), 'calendar_default_alarm_offset' => $default_alam, + 'calendar_default_calendar' => get_input_value('_default_calendar', RCUBE_INPUT_POST), ); // categories @@ -475,6 +487,7 @@ class calendar extends rcube_plugin $settings = array(); // configuration + $settings['default_calendar'] = $this->rc->config->get('calendar_default_calendar'); $settings['default_view'] = (string)$this->rc->config->get('calendar_default_view', "agendaWeek"); $settings['date_format'] = (string)$this->rc->config->get('calendar_date_format', "yyyy/MM/dd"); $settings['date_short'] = (string)$this->rc->config->get('calendar_date_short', "M/d"); diff --git a/plugins/calendar/lib/calendar_ui.php b/plugins/calendar/lib/calendar_ui.php index 27914e58..f04f45ba 100644 --- a/plugins/calendar/lib/calendar_ui.php +++ b/plugins/calendar/lib/calendar_ui.php @@ -158,7 +158,8 @@ class calendar_ui $attrib['name'] = 'calendar'; $select = new html_select($attrib); foreach ((array)$this->calendar->driver->list_calendars() as $id => $prop) { - $select->add($prop['name'], $id); + if (!$prop['readonly']) + $select->add($prop['name'], $id); } return $select->show(null); diff --git a/plugins/calendar/lib/js/fullcalendar.js b/plugins/calendar/lib/js/fullcalendar.js index a518eebf..8a59cfaf 100644 --- a/plugins/calendar/lib/js/fullcalendar.js +++ b/plugins/calendar/lib/js/fullcalendar.js @@ -5350,7 +5350,7 @@ function ListEventRenderer() { times = renderEventTime(event, seg); skinCss = getSkinCss(event, opt); skinCssAttr = (skinCss ? " style='" + skinCss + "'" : ''); - classes = ['fc-event', 'fc-event-skin', 'fc-event-vert', 'fc-corner-left', 'fc-corner-right', 'fc-corner-top', 'fc-corner-bottom']; + classes = ['fc-event', 'fc-event-skin', 'fc-event-vert', 'fc-corner-top', 'fc-corner-bottom']; if (event.source && event.source.className) { classes = classes.concat(event.source.className); } diff --git a/plugins/calendar/localization/en_US.inc b/plugins/calendar/localization/en_US.inc index c14c71ce..1f03a222 100644 --- a/plugins/calendar/localization/en_US.inc +++ b/plugins/calendar/localization/en_US.inc @@ -10,6 +10,7 @@ $labels['add_category'] = 'Add category'; $labels['remove_category'] = 'Remove category'; $labels['add_calendar'] = 'Add calendar'; $labels['remove_calendar'] = 'Remove calendar'; +$labels['defaultcalendar'] = 'Create new events in'; // calendar $labels['calendar'] = 'Calendar';