2 commits - plugins/calendar plugins/tasklist
Thomas Brüderli
bruederli at kolabsys.com
Thu Sep 20 10:10:57 CEST 2012
plugins/calendar/calendar.php | 34 +++++++--------
plugins/calendar/drivers/kolab/kolab_driver.php | 2
plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php | 1
3 files changed, 19 insertions(+), 18 deletions(-)
New commits:
commit 7651e5de39a4fa0ed023462927637d1767231280
Merge: 517c86c ba214ec
Author: Thomas Bruederli <thomas at roundcube.net>
Date: Thu Sep 20 10:11:08 2012 +0200
Merge branch 'master' of ssh://git.kolabsys.com/git/roundcube
commit 517c86c8dfc74197b4c07073c5ca90d455b74ffb
Author: Thomas Bruederli <thomas at roundcube.net>
Date: Thu Sep 20 10:10:50 2012 +0200
Respect .default annotation for calendar selection (if no user setting exists)
diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php
index 86a2d12..d49b02e 100644
--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -229,23 +229,26 @@ class calendar extends rcube_plugin
}
/**
- *
+ * Get properties of the calendar this user has specified as default
*/
public function get_default_calendar($writeable = false)
{
- $cal_id = $this->rc->config->get('calendar_default_calendar');
+ $default_id = $this->rc->config->get('calendar_default_calendar');
$calendars = $this->driver->list_calendars();
- $calendar = $calendars[$cal_id] ? $calendars[$cal_id] : null;
+ $calendar = $calendars[$default_id] ?: null;
if (!$calendar || ($writeable && $calendar['readonly'])) {
foreach ($calendars as $cal) {
- if (!$writeable || !$cal['readonly']) {
+ if ($cal['default']) {
$calendar = $cal;
break;
}
+ if (!$writeable || !$cal['readonly']) {
+ $first = $cal;
+ }
}
}
-
- return $calendar;
+
+ return $calendar ?: $first;
}
@@ -402,10 +405,12 @@ class calendar extends rcube_plugin
foreach ((array)$this->driver->list_calendars() as $id => $prop) {
if (!$prop['readonly'])
$select_cal->add($prop['name'], strval($id));
+ if ($prop['default'])
+ $default_calendar = $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', '')),
+ 'content' => $select_cal->show($this->rc->config->get('calendar_default_calendar', $default_calendar)),
);
@@ -726,13 +731,14 @@ class calendar extends rcube_plugin
}
}
+ $default_calendar = $calendar_select ? $this->get_default_calendar(true) : null;
$this->rc->output->command('plugin.update_event_rsvp_status', array(
'uid' => $event['uid'],
'id' => asciiwords($event['uid'], true),
'status' => $status,
'action' => $action,
'html' => $html,
- 'select' => $calendar_select ? html::span('calendar-select', $this->gettext('saveincalendar') . ' ' . $calendar_select->show($this->rc->config->get('calendar_default_calendar'))) : '',
+ 'select' => $calendar_select ? html::span('calendar-select', $this->gettext('saveincalendar') . ' ' . $calendar_select->show($this->rc->config->get('calendar_default_calendar', $default_calendar['id']))) : '',
));
return;
@@ -1768,17 +1774,9 @@ class calendar extends rcube_plugin
// successfully parsed events?
if (!empty($events) && ($event = $events[$index])) {
// find writeable calendar to store event
- $cal_id = !empty($_REQUEST['_calendar']) ? get_input_value('_calendar', RCUBE_INPUT_POST) : $this->rc->config->get('calendar_default_calendar');
+ $cal_id = !empty($_REQUEST['_calendar']) ? get_input_value('_calendar', RCUBE_INPUT_POST) : null;
$calendars = $this->driver->list_calendars();
- $calendar = $calendars[$cal_id] ? $calendars[$cal_id] : null;
- if (!$calendar || $calendar['readonly']) {
- foreach ($calendars as $cal) {
- if (!$cal['readonly']) {
- $calendar = $cal;
- break;
- }
- }
- }
+ $calendar = $calendars[$cal_id] ?: $this->get_default_calendar(true);
// update my attendee status according to submitted method
if (!empty($status)) {
diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 5cb0dc2..6250db6 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -103,6 +103,7 @@ class kolab_driver extends calendar_driver
}
$calendars = $names = array();
+ $default_folder = class_exists('kolab_folders') ? kolab_folders::default_folder('event') : '';
foreach ($this->calendars as $id => $cal) {
if ($cal->ready) {
@@ -116,6 +117,7 @@ class kolab_driver extends calendar_driver
'readonly' => $cal->readonly,
'showalarms' => $cal->alarms,
'class_name' => $cal->get_namespace(),
+ 'default' => $cal->get_realname() == $default_folder,
'active' => $cal->storage->is_subscribed(kolab_storage::SERVERSIDE_SUBSCRIPTION),
);
}
diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
index 9f24d44..e84d455 100644
--- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
+++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
@@ -115,6 +115,7 @@ class tasklist_kolab_driver extends tasklist_driver
'editable' => !$readonly,
'active' => $folder->is_subscribed(kolab_storage::SERVERSIDE_SUBSCRIPTION),
'parentfolder' => $path_imap,
+ 'default' => $utf7name == $default_folder,
'class_name' => trim($folder->get_namespace() . ($utf7name == $default_folder ? ' default' : '')),
);
$this->lists[$tasklist['id']] = $tasklist;
More information about the commits
mailing list