plugins/managesieve/Changelog | ●●●●● patch | view | raw | blame | history | |
plugins/managesieve/config.inc.php.dist | ●●●●● patch | view | raw | blame | history | |
plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php | ●●●●● patch | view | raw | blame | history | |
plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php | ●●●●● patch | view | raw | blame | history |
plugins/managesieve/Changelog
@@ -1,3 +1,5 @@ - Add option to define default vacation interval * version 8.3 [2015-03-12] ----------------------------------------------------------- - Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet plugins/managesieve/config.inc.php.dist
@@ -86,5 +86,10 @@ // 2 - add Vacation section, but hide Filters section $config['managesieve_vacation'] = 0; // Default vacation interval (in days). // Note: If server supports vacation-seconds extension it is possible // to define interval in seconds here (as a string), e.g. "3600s". $config['managesieve_vacation_interval'] = 0; // Supported methods of notify extension. Default: 'mailto' $config['managesieve_notify_methods'] = array('mailto'); plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
@@ -1784,7 +1784,7 @@ $this->error_class($id, 'action', 'addresses', 'action_addresses'), 30); $out .= '<br /><span class="label">' . rcube::Q($this->plugin->gettext($vsec ? 'vacationinterval' : 'vacationdays')) . '</span><br />' .'<input type="text" name="_action_interval['.$id.']" id="action_interval'.$id.'" ' .'value="' .rcube::Q(isset($action['seconds']) ? $action['seconds'] : $action['days'], 'strict', false) . '" size="2" ' .'value="' .rcube::Q(rcube_sieve_vacation::vacation_interval($action), 'strict', false) . '" size="2" ' . $this->error_class($id, 'action', 'interval', 'action_interval') .' />'; if ($vsec) { $out .= ' <label><input type="radio" name="_action_interval_type['.$id.']" value="days"' plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php
@@ -357,7 +357,7 @@ } } $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 @@ } /** * 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)