summaryrefslogtreecommitdiff
path: root/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php')
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php32
1 files changed, 31 insertions, 1 deletions
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');
@@ -551,6 +551,36 @@ class rcube_sieve_vacation extends rcube_sieve_engine
}
/**
+ * 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)
*/
protected function save_vacation_script($rule)