From b6fa7d54b852df88de1fa1b36d6221b143e85835 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sat, 16 Mar 2013 16:29:17 +0100 Subject: Add vacation-seconds extension support (RFC 6131) --- plugins/managesieve/managesieve.php | 43 ++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'plugins/managesieve/managesieve.php') diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php index a667c06cd..817fa8650 100644 --- a/plugins/managesieve/managesieve.php +++ b/plugins/managesieve/managesieve.php @@ -663,7 +663,8 @@ class managesieve extends rcube_plugin $area_targets = rcube_utils::get_input_value('_action_target_area', rcube_utils::INPUT_POST, true); $reasons = rcube_utils::get_input_value('_action_reason', rcube_utils::INPUT_POST, true); $addresses = rcube_utils::get_input_value('_action_addresses', rcube_utils::INPUT_POST, true); - $days = rcube_utils::get_input_value('_action_days', rcube_utils::INPUT_POST); + $intervals = rcube_utils::get_input_value('_action_interval', rcube_utils::INPUT_POST); + $interval_types = rcube_utils::get_input_value('_action_interval_type', rcube_utils::INPUT_POST); $subject = rcube_utils::get_input_value('_action_subject', rcube_utils::INPUT_POST, true); $flags = rcube_utils::get_input_value('_action_flags', rcube_utils::INPUT_POST); $varnames = rcube_utils::get_input_value('_action_varname', rcube_utils::INPUT_POST); @@ -883,11 +884,12 @@ class managesieve extends rcube_plugin break; case 'vacation': - $reason = $this->strip_value($reasons[$idx]); + $reason = $this->strip_value($reasons[$idx]); + $interval_type = $interval_types[$idx] == 'seconds' ? 'seconds' : 'days'; $this->form['actions'][$i]['reason'] = str_replace("\r\n", "\n", $reason); - $this->form['actions'][$i]['days'] = $days[$idx]; $this->form['actions'][$i]['subject'] = $subject[$idx]; $this->form['actions'][$i]['addresses'] = explode(',', $addresses[$idx]); + $this->form['actions'][$i][$interval_type] = $intervals[$idx]; // @TODO: vacation :mime, :from, :handle if ($this->form['actions'][$i]['addresses']) { @@ -905,8 +907,8 @@ class managesieve extends rcube_plugin if ($this->form['actions'][$i]['reason'] == '') $this->errors['actions'][$i]['reason'] = $this->gettext('cannotbeempty'); - if ($this->form['actions'][$i]['days'] && !preg_match('/^[0-9]+$/', $this->form['actions'][$i]['days'])) - $this->errors['actions'][$i]['days'] = $this->gettext('forbiddenchars'); + if ($this->form['actions'][$i][$interval_type] && !preg_match('/^[0-9]+$/', $this->form['actions'][$i][$interval_type])) + $this->errors['actions'][$i]['interval'] = $this->gettext('forbiddenchars'); break; case 'set': @@ -1411,14 +1413,14 @@ class managesieve extends rcube_plugin $tout .= $select_size_op->show($rule['test']=='size' ? $rule['type'] : ''); $tout .= 'error_class($id, 'test', 'sizetarget', 'rule_size_i') .' /> - '.$this->rc->gettext('B').' - '.$this->rc->gettext('KB').' - '.$this->rc->gettext('MB').' - '.$this->rc->gettext('GB'); + + + + '; $tout .= ''; // Advanced modifiers (address, envelope) @@ -1572,6 +1574,7 @@ class managesieve extends rcube_plugin . "\n"; // vacation + $vsec = in_array('vacation-seconds', $this->exts); $out .= '
'; $out .= ''. rcube::Q($this->gettext('vacationreason')) .'
' .'