Sieve enotify/notify - parser

pull/24/head
Paweł Słowik 12 years ago
parent 2ac00a258b
commit c142ab62f1

@ -639,7 +639,8 @@ function action_type_select(id)
target_area: document.getElementById('action_target_area' + id), target_area: document.getElementById('action_target_area' + id),
flags: document.getElementById('action_flags' + id), flags: document.getElementById('action_flags' + id),
vacation: document.getElementById('action_vacation' + id), vacation: document.getElementById('action_vacation' + id),
set: document.getElementById('action_set' + id) set: document.getElementById('action_set' + id),
notify: document.getElementById('action_notify' + id)
}; };
if (obj.value == 'fileinto' || obj.value == 'fileinto_copy') { if (obj.value == 'fileinto' || obj.value == 'fileinto_copy') {
@ -660,6 +661,9 @@ function action_type_select(id)
else if (obj.value == 'set') { else if (obj.value == 'set') {
enabled.set = 1; enabled.set = 1;
} }
else if (obj.value == 'notify') {
enabled.notify = 1;
}
for (var x in elems) { for (var x in elems) {
elems[x].style.display = !enabled[x] ? 'none' : 'inline'; elems[x].style.display = !enabled[x] ? 'none' : 'inline';

@ -625,6 +625,10 @@ class managesieve extends rcube_plugin
$varnames = get_input_value('_action_varname', RCUBE_INPUT_POST); $varnames = get_input_value('_action_varname', RCUBE_INPUT_POST);
$varvalues = get_input_value('_action_varvalue', RCUBE_INPUT_POST); $varvalues = get_input_value('_action_varvalue', RCUBE_INPUT_POST);
$varmods = get_input_value('_action_varmods', RCUBE_INPUT_POST); $varmods = get_input_value('_action_varmods', RCUBE_INPUT_POST);
$notifyaddrs = get_input_value('_action_notifyaddress', RCUBE_INPUT_POST);
$notifybodies = get_input_value('_action_notifybody', RCUBE_INPUT_POST);
$notifymessages = get_input_value('_action_notifymessage', RCUBE_INPUT_POST);
$notifyfrom = get_input_value('_action_notifyfrom', RCUBE_INPUT_POST);
// we need a "hack" for radiobuttons // we need a "hack" for radiobuttons
foreach ($sizeitems as $item) foreach ($sizeitems as $item)
@ -878,6 +882,22 @@ class managesieve extends rcube_plugin
$this->errors['actions'][$i]['value'] = $this->gettext('cannotbeempty'); $this->errors['actions'][$i]['value'] = $this->gettext('cannotbeempty');
} }
break; break;
case 'notify':
if (empty($notifyaddrs[$idx])) {
$this->errors['actions'][$i]['address'] = $this->gettext('cannotbeempty');
}
else if (!check_email($notifyaddrs[$idx])) {
$this->errors['actions'][$i]['address'] = $this->gettext('noemailwarning');
}
if (!empty($notifyfrom[$idx]) && !check_email($notifyfrom[$idx])) {
$this->errors['actions'][$i]['from'] = $this->gettext('noemailwarning');
}
$this->form['actions'][$i]['address'] = $notifyaddrs[$idx];
$this->form['actions'][$i]['body'] = $notifybodies[$idx];
$this->form['actions'][$i]['message'] = $notifymessages[$idx];
$this->form['actions'][$i]['from'] = $notifyfrom[$idx];
break;
} }
$this->form['actions'][$i]['type'] = $type; $this->form['actions'][$i]['type'] = $type;
@ -1479,6 +1499,9 @@ class managesieve extends rcube_plugin
if (in_array('variables', $this->exts)) { if (in_array('variables', $this->exts)) {
$select_action->add(Q($this->gettext('setvariable')), 'set'); $select_action->add(Q($this->gettext('setvariable')), 'set');
} }
if (in_array('enotify', $this->exts)) {
$select_action->add(Q($this->gettext('notify')), 'notify');
}
$select_action->add(Q($this->gettext('rulestop')), 'stop'); $select_action->add(Q($this->gettext('rulestop')), 'stop');
$select_type = $action['type']; $select_type = $action['type'];
@ -1571,6 +1594,27 @@ class managesieve extends rcube_plugin
} }
$out .= '</div>'; $out .= '</div>';
// notify
// skip :options tag - not used by the mailto method
$out .= '<div id="action_notify' .$id.'" style="display:' .($action['type']=='notify' ? 'inline' : 'none') .'">';
$out .= '<span class="label">' .Q($this->gettext('notifyaddress')) . '</span><br />'
.'<input type="text" name="_action_notifyaddress['.$id.']" id="action_notifyaddress'.$id.'" '
.'value="' . Q($action['address']) . '" size="35" '
. $this->error_class($id, 'action', 'address', 'action_notifyaddress') .' />';
$out .= '<br /><span class="label">'. Q($this->gettext('notifybody')) .'</span><br />'
.'<textarea name="_action_notifybody['.$id.']" id="action_notifybody' .$id. '" '
.'rows="3" cols="35" '. $this->error_class($id, 'action', 'method', 'action_notifybody') . '>'
. Q($action['body'], 'strict', false) . "</textarea>\n";
$out .= '<br /><span class="label">' .Q($this->gettext('notifysubject')) . '</span><br />'
.'<input type="text" name="_action_notifymessage['.$id.']" id="action_notifymessage'.$id.'" '
.'value="' . Q($action['message']) . '" size="35" '
. $this->error_class($id, 'action', 'message', 'action_notifymessage') .' />';
$out .= '<br /><span class="label">' .Q($this->gettext('notifyfrom')) . '</span><br />'
.'<input type="text" name="_action_notifyfrom['.$id.']" id="action_notifyfrom'.$id.'" '
.'value="' . Q($action['from']) . '" size="35" '
. $this->error_class($id, 'action', 'from', 'action_notifyfrom') .' />';
$out .= '</div>';
// mailbox select // mailbox select
if ($action['type'] == 'fileinto') if ($action['type'] == 'fileinto')
$mailbox = $this->mod_mailbox($action['target'], 'out'); $mailbox = $this->mod_mailbox($action['target'], 'out');

Loading…
Cancel
Save