diff --git a/plugins/calendar/drivers/calendar_driver.php b/plugins/calendar/drivers/calendar_driver.php index 88c7f450..deb75023 100644 --- a/plugins/calendar/drivers/calendar_driver.php +++ b/plugins/calendar/drivers/calendar_driver.php @@ -87,6 +87,7 @@ abstract class calendar_driver public $undelete = false; // event undelete action public $categoriesimmutable = false; public $alarm_types = array('DISPLAY'); + public $alarm_absolute = true; public $last_error; /** diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php index 4bc1f637..05a2bf40 100644 --- a/plugins/calendar/drivers/kolab/kolab_driver.php +++ b/plugins/calendar/drivers/kolab/kolab_driver.php @@ -55,6 +55,11 @@ class kolab_driver extends calendar_driver $this->cal->register_action('calendar-acl', array($this, 'calendar_acl')); $this->freebusy_trigger = $this->rc->config->get('calendar_freebusy_trigger', false); + + if (kolab_storage::$version == 2.0) { + $this->alarm_types = array('DISPLAY'); + $this->alarm_absolute = false; + } } diff --git a/plugins/calendar/lib/calendar_ui.php b/plugins/calendar/lib/calendar_ui.php index 8e91e687..6a8966d5 100644 --- a/plugins/calendar/lib/calendar_ui.php +++ b/plugins/calendar/lib/calendar_ui.php @@ -327,7 +327,7 @@ class calendar_ui */ function alarm_select($attrib = array()) { - return $this->cal->lib->alarm_select($attrib, $this->cal->driver->alarm_types); + return $this->cal->lib->alarm_select($attrib, $this->cal->driver->alarm_types, $this->cal->driver->alarm_absolute); } /** diff --git a/plugins/libcalendaring/libcalendaring.php b/plugins/libcalendaring/libcalendaring.php index ea174f25..9ad6602b 100644 --- a/plugins/libcalendaring/libcalendaring.php +++ b/plugins/libcalendaring/libcalendaring.php @@ -239,7 +239,7 @@ class libcalendaring extends rcube_plugin /** * Render HTML form for alarm configuration */ - public function alarm_select($attrib, $alarm_types) + public function alarm_select($attrib, $alarm_types, $absolute_time = true) { unset($attrib['name']); $select_type = new html_select(array('name' => 'alarmtype[]', 'class' => 'edit-alarm-type')); @@ -252,9 +252,12 @@ class libcalendaring extends rcube_plugin $input_time = new html_inputfield(array('name' => 'alarmtime[]', 'class' => 'edit-alarm-time', 'size' => 6)); $select_offset = new html_select(array('name' => 'alarmoffset[]', 'class' => 'edit-alarm-offset')); - foreach (array('-M','-H','-D','+M','+H','+D','@') as $trigger) + foreach (array('-M','-H','-D','+M','+H','+D') as $trigger) $select_offset->add($this->gettext('trigger' . $trigger), $trigger); + if ($absolute_time) + $select_offset->add($this->gettext('trigger@'), '@'); + // pre-set with default values from user settings $preset = self::parse_alaram_value($this->rc->config->get('calendar_default_alarm_offset', '-15M')); $hidden = array('style' => 'display:none'); diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php index 8e9e062f..49b69171 100644 --- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php +++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php @@ -46,6 +46,10 @@ class tasklist_kolab_driver extends tasklist_driver $this->plugin = $plugin; $this->_read_lists(); + + if (kolab_storage::$version == 2.0) { + $this->alarm_absolute = false; + } } /** diff --git a/plugins/tasklist/drivers/tasklist_driver.php b/plugins/tasklist/drivers/tasklist_driver.php index 99e54534..40d0d9b6 100644 --- a/plugins/tasklist/drivers/tasklist_driver.php +++ b/plugins/tasklist/drivers/tasklist_driver.php @@ -58,6 +58,7 @@ abstract class tasklist_driver public $undelete = false; // task undelete action public $sortable = false; public $alarm_types = array('DISPLAY'); + public $alarm_absolute = true; public $last_error; /** diff --git a/plugins/tasklist/tasklist_ui.php b/plugins/tasklist/tasklist_ui.php index 2b7cfe00..7df8bcc3 100644 --- a/plugins/tasklist/tasklist_ui.php +++ b/plugins/tasklist/tasklist_ui.php @@ -173,7 +173,7 @@ class tasklist_ui */ function alarm_select($attrib = array()) { - return $this->plugin->lib->alarm_select($attrib, $this->plugin->driver->alarm_types); + return $this->plugin->lib->alarm_select($attrib, $this->plugin->driver->alarm_types, $this->plugin->driver->alarm_absolute); } /**