Paweł Słowik
2012-09-14 3c99599794948686960ee4e340374b0c3a1527b2
Sieve enotify/notify:
- GUI for importance setting
- make tests usable for checking the GUI
6 files modified
38 ■■■■■ changed files
plugins/managesieve/localization/en_GB.inc 4 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/en_US.inc 4 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/pl_PL.inc 4 ●●●● patch | view | raw | blame | history
plugins/managesieve/managesieve.php 16 ●●●●● patch | view | raw | blame | history
plugins/managesieve/tests/src/parser_notify_a 5 ●●●● patch | view | raw | blame | history
plugins/managesieve/tests/src/parser_notify_b 5 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/en_GB.inc
@@ -102,6 +102,10 @@
$labels['notifybody'] = 'Notification body:';
$labels['notifysubject'] = 'Notification subject:';
$labels['notifyfrom'] = 'Notification sender:';
$labels['notifyimportance'] = 'Importance:';
$labels['notifyimportancelow'] = 'low';
$labels['notifyimportancenormal'] = 'normal';
$labels['notifyimportancehigh'] = 'high';
$labels['filtercreate'] = 'Create filter';
$labels['usedata'] = 'Use following data in the filter:';
$labels['nextstep'] = 'Next Step';
plugins/managesieve/localization/en_US.inc
@@ -93,6 +93,10 @@
$labels['notifybody'] = 'Notification body:';
$labels['notifysubject'] = 'Notification subject:';
$labels['notifyfrom'] = 'Notification sender:';
$labels['notifyimportance'] = 'Importance:';
$labels['notifyimportancelow'] = 'low';
$labels['notifyimportancenormal'] = 'normal';
$labels['notifyimportancehigh'] = 'high';
$labels['filtercreate'] = 'Create filter';
$labels['usedata'] = 'Use following data in the filter:';
$labels['nextstep'] = 'Next Step';
plugins/managesieve/localization/pl_PL.inc
@@ -108,6 +108,10 @@
$labels['notifybody'] = 'Treść powiadomienia:';
$labels['notifysubject'] = 'Temat powiadomienia:';
$labels['notifyfrom'] = 'Nadawca powiadomienia:';
$labels['notifyimportance'] = 'Priorytet:';
$labels['notifyimportancelow'] = 'niski';
$labels['notifyimportancenormal'] = 'normalny';
$labels['notifyimportancehigh'] = 'wysoki';
$labels['filtercreate'] = 'Utwórz filtr';
$labels['usedata'] = 'Użyj następujących danych do utworzenia filtra:';
$labels['nextstep'] = 'Następny krok';
plugins/managesieve/managesieve.php
@@ -629,6 +629,7 @@
            $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);
            $notifyimp      = get_input_value('_action_notifyimportance', RCUBE_INPUT_POST);
            // we need a "hack" for radiobuttons
            foreach ($sizeitems as $item)
@@ -897,6 +898,7 @@
                    $this->form['actions'][$i]['body'] = $notifybodies[$idx];
                    $this->form['actions'][$i]['message'] = $notifymessages[$idx];
                    $this->form['actions'][$i]['from'] = $notifyfrom[$idx];
                    $this->form['actions'][$i]['importance'] = $notifyimp[$idx];
                    break;
                }
@@ -1613,6 +1615,20 @@
            .'<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') .' />';
        $importance_options = array(
            3 => 'notifyimportancelow',
            2 => 'notifyimportancenormal',
            1 => 'notifyimportancehigh'
        );
        $select_importance = new html_select(array(
            'name' => '_action_notifyimportance[' . $id . ']',
            'id' => '_action_notifyimportance' . $id,
            'class' => $this->error_class($id, 'action', 'importance', 'action_notifyimportance')));
        foreach ($importance_options as $io_v => $io_n) {
            $select_importance->add(Q($this->gettext($io_n)), $io_v);
        }
        $out .= '<br /><span class="label">' . Q($this->gettext('notifyimportance')) . '</span><br />';
        $out .= $select_importance->show(array(intval($action['importance'])));
        $out .= '</div>';
        // mailbox select
plugins/managesieve/tests/src/parser_notify_a
@@ -1,16 +1,19 @@
require ["enotify","variables"];
# rule:[notify1]
if header :contains "from" "boss@example.org"
{
    notify :importance "1" :message "This is probably very important" "mailto:alm@example.com";
    stop;
}
# rule:[subject]
if header :matches "Subject" "*"
{
    set "subject" "${1}";
}
# rule:[from notify2]
if header :matches "From" "*"
{
    set "from" "${1}";
    notify :importance "3" :message "${from}: ${subject}" "mailto:alm@example.com";
}
notify :importance "3" :message "${from}: ${subject}" "mailto:alm@example.com";
plugins/managesieve/tests/src/parser_notify_b
@@ -1,15 +1,18 @@
require ["envelope","variables","enotify"];
# rule:[from]
if envelope :all :matches "from" "*"
{
    set "env_from" " [really: ${1}]";
}
# rule:[subject]
if header :matches "Subject" "*"
{
    set "subject" "${1}";
}
# rule:[from notify]
if address :all :matches "from" "*"
{
    set "from_addr" "${1}";
    notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com";
}
notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com";