From fa857716e66f73f979e4a798a8c4e91c7612a7d1 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 14 Apr 2015 05:24:43 -0400 Subject: Add option to define default vacation interval --- .../lib/Roundcube/rcube_sieve_vacation.php | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php') diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php index 8d865008f..419989e53 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php @@ -357,7 +357,7 @@ class rcube_sieve_vacation extends rcube_sieve_engine } } - $interval_txt = $interval->show(isset($this->vacation['seconds']) ? $this->vacation['seconds'] : $this->vacation['days']); + $interval_txt = $interval->show(self::vacation_interval($this->vacation)); if ($seconds_extension) { $interval_select = new html_select(array('name' => 'vacation_interval_type')); $interval_select->add($this->plugin->gettext('days'), 'days'); @@ -550,6 +550,36 @@ class rcube_sieve_vacation extends rcube_sieve_engine return $result; } + /** + * Get current vacation interval + */ + public static function vacation_interval(&$vacation) + { + $rcube = rcube::get_instance(); + + if (isset($vacation['seconds'])) { + $interval = $vacation['seconds']; + } + else if (isset($vacation['days'])) { + $interval = $vacation['days']; + } + else if ($interval_cfg = $rcube->config->get('managesieve_vacation_interval')) { + if (preg_match('/^([0-9]+)s$/', $interval_cfg, $m)) { + if ($seconds_extension) { + $vacation['seconds'] = ($interval = intval($m[1])) ? $interval : null; + } + else { + $vacation['days'] = $interval = ceil(intval($m[1])/86400); + } + } + else { + $vacation['days'] = $interval = intval($interval_cfg); + } + } + + return $interval ? $interval : ''; + } + /** * Saves vacation script (adding some variables) */ -- cgit v1.2.3