diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-06-11 12:49:03 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-06-11 12:49:03 +0200 |
commit | c6f0755860b7a08b68375c534d1fae40dbaaf21d (patch) | |
tree | eb5764512f2e808ef21b47d57e683200cd1a5fc6 | |
parent | ae80b5a309be69a47b438e2dc1e342735b5e22aa (diff) |
Support string list arguments in filter form (#1489018)
57 files changed, 386 insertions, 119 deletions
diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog index 305fb1e56..a5f325008 100644 --- a/plugins/managesieve/Changelog +++ b/plugins/managesieve/Changelog @@ -1,5 +1,6 @@ - Add vacation-seconds extension support (RFC 6131) - Several script parser code improvements +- Support string list arguments in filter form (#1489018) * version 6.2 [2013-02-17] ----------------------------------------------------------- @@ -206,18 +207,18 @@ - Added it_IT localization * version 1.1 [2009-05-27] ------------------------------------------------------------ +----------------------------------------------------------- - Added new icons - Added support for headers lists (coma-separated) in rules - Added de_CH localization * version 1.0 [2009-05-21] ------------------------------------------------------------ +----------------------------------------------------------- - Rewritten using plugin API - Added hu_HU localization (Tamas Tevesz) * version beta7 (svn-r2300) [2009-03-01] ------------------------------------------------------------ +----------------------------------------------------------- - Added SquirrelMail script auto-import (Jonathan Ernst) - Added 'vacation' support (Jonathan Ernst & alec) - Added 'stop' support (Jonathan Ernst) @@ -226,47 +227,47 @@ - Small style fixes * version 0.2-stable1 (svn-r2205) [2009-01-03] ------------------------------------------------------------ +----------------------------------------------------------- - Fix moving down filter row - Fixes for compressed js files in stable release package - Created patch for svn version r2205 * version 0.2-stable [2008-12-31] ------------------------------------------------------------ +----------------------------------------------------------- - Added ru_RU, fr_FR, zh_CN translation - Fixes for Roundcube 0.2-stable -* version rc0.2beta [2008-09-21] ------------------------------------------------------------ +* version 0.2-beta [2008-09-21] +----------------------------------------------------------- - Small css fixes for IE - Fixes for Roundcube 0.2-beta * version beta6 [2008-08-08] ------------------------------------------------------------ +----------------------------------------------------------- - Added de_DE translation - Fix for Roundcube r1634 * version beta5 [2008-06-10] ------------------------------------------------------------ +----------------------------------------------------------- - Fixed 'exists' operators - Fixed 'not*' operators for custom headers - Fixed filters deleting * version beta4 [2008-06-09] ------------------------------------------------------------ +----------------------------------------------------------- - Fix for Roundcube r1490 * version beta3 [2008-05-22] ------------------------------------------------------------ +----------------------------------------------------------- - Fixed textarea error class setting - Added pagetitle setting - Added option 'managesieve_replace_delimiter' - Fixed errors on IE (still need some css fixes) - + * version beta2 [2008-05-20] ------------------------------------------------------------ +----------------------------------------------------------- - Use 'if' only for first filter and 'elsif' for the rest * version beta1 [2008-05-15] ------------------------------------------------------------ +----------------------------------------------------------- - Initial version for Roundcube r1388. diff --git a/plugins/managesieve/localization/az_AZ.inc b/plugins/managesieve/localization/az_AZ.inc index b1bfae5e9..670162552 100644 --- a/plugins/managesieve/localization/az_AZ.inc +++ b/plugins/managesieve/localization/az_AZ.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Əlavə et'; $labels['del'] = 'Sil'; $labels['sender'] = 'Göndərən'; $labels['recipient'] = 'Qəbul edən'; -$labels['vacationaddresses'] = 'Əlavə ünvanlarım üçün siyahı (vergüllər ilə ayrılmış):'; +$labels['vacationaddr'] = 'Əlavə ünvanlarım üçün siyahı:'; $labels['vacationdays'] = 'Məktub neçə müddətdən bir göndərilsin (gündə):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/be_BE.inc b/plugins/managesieve/localization/be_BE.inc index 64f81599e..ff54c0546 100644 --- a/plugins/managesieve/localization/be_BE.inc +++ b/plugins/managesieve/localization/be_BE.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Дадаць'; $labels['del'] = 'Выдаліць'; $labels['sender'] = 'Ад каго'; $labels['recipient'] = 'Каму'; -$labels['vacationaddresses'] = 'Дадатковы спіс атрымальнікаў (праз коску):'; +$labels['vacationaddr'] = 'Дадатковы спіс атрымальнікаў:'; $labels['vacationdays'] = 'Як часта дасылаць паведамленні (ў днях):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/bg_BG.inc b/plugins/managesieve/localization/bg_BG.inc index a8f75df04..e22290cff 100644 --- a/plugins/managesieve/localization/bg_BG.inc +++ b/plugins/managesieve/localization/bg_BG.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Добавяне'; $labels['del'] = 'Изтриване'; $labels['sender'] = 'Подател'; $labels['recipient'] = 'Получател'; -$labels['vacationaddresses'] = 'Допълнителни e-mail адреси (разделени със запетая):'; +$labels['vacationaddr'] = 'Допълнителни e-mail адреси:'; $labels['vacationdays'] = 'Колко често пращате съобщения (в дни):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/bs_BA.inc b/plugins/managesieve/localization/bs_BA.inc index 7d21dbd9f..df9083129 100644 --- a/plugins/managesieve/localization/bs_BA.inc +++ b/plugins/managesieve/localization/bs_BA.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Dodaj'; $labels['del'] = 'Obriši'; $labels['sender'] = 'Pošiljaoc'; $labels['recipient'] = 'Primaoc'; -$labels['vacationaddresses'] = 'Moje dodatne email adrese (odvojite zarezima):'; +$labels['vacationaddr'] = 'Moje dodatne email adrese:'; $labels['vacationdays'] = 'Frekvencija slanja poruka (u danima):'; $labels['vacationinterval'] = 'Frekvencija slanja poruka:'; $labels['days'] = 'dana'; diff --git a/plugins/managesieve/localization/ca_ES.inc b/plugins/managesieve/localization/ca_ES.inc index df1cdec89..7ebd2c049 100644 --- a/plugins/managesieve/localization/ca_ES.inc +++ b/plugins/managesieve/localization/ca_ES.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Afegeix'; $labels['del'] = 'Suprimeix'; $labels['sender'] = 'Remitent'; $labels['recipient'] = 'Destinatari/a'; -$labels['vacationaddresses'] = 'Altres adreces electròniques meves (separades per coma)'; +$labels['vacationaddr'] = 'Altres adreces electròniques meves:'; $labels['vacationdays'] = 'Cada quan enviar un missatge (en dies):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/cs_CZ.inc b/plugins/managesieve/localization/cs_CZ.inc index 26baeff2b..c14873bb7 100644 --- a/plugins/managesieve/localization/cs_CZ.inc +++ b/plugins/managesieve/localization/cs_CZ.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Přidej'; $labels['del'] = 'Smaž'; $labels['sender'] = 'Odesílatel'; $labels['recipient'] = 'Příjemce'; -$labels['vacationaddresses'] = 'Moje další e-mailové adresy (aliasy) spojené s tímto účtem (oddělené čárkou):'; +$labels['vacationaddr'] = 'Moje další e-mailové adresy (aliasy) spojené s tímto účtem:'; $labels['vacationdays'] = 'Počet dnů mezi automatickými odpověďmi:'; $labels['vacationinterval'] = 'Prodleva mezi automatickými odpověďmi:'; $labels['days'] = 'dnů'; diff --git a/plugins/managesieve/localization/cy_GB.inc b/plugins/managesieve/localization/cy_GB.inc index 800d14b65..63d2e7100 100644 --- a/plugins/managesieve/localization/cy_GB.inc +++ b/plugins/managesieve/localization/cy_GB.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Ychwanegu'; $labels['del'] = 'Dileu'; $labels['sender'] = 'Anfonwr'; $labels['recipient'] = 'Derbynnwr'; -$labels['vacationaddresses'] = 'Fy chyfeiriadau ebost ychwanegol (gwahanir gyda coma):'; +$labels['vacationaddr'] = 'Fy chyfeiriadau ebost ychwanegol:'; $labels['vacationdays'] = 'Pa mor aml i ddanfon negeseuon (mewn dyddiau):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/da_DK.inc b/plugins/managesieve/localization/da_DK.inc index 6bc43cf58..058481031 100644 --- a/plugins/managesieve/localization/da_DK.inc +++ b/plugins/managesieve/localization/da_DK.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Tilføje'; $labels['del'] = 'Fjern'; $labels['sender'] = 'Afsender'; $labels['recipient'] = 'Modtager'; -$labels['vacationaddresses'] = 'Mine alternative e-mailadresser (kommasepareret):'; +$labels['vacationaddr'] = 'Mine alternative e-mailadresser:'; $labels['vacationdays'] = 'Hvor tit skal besked sendes (i dage):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/de_CH.inc b/plugins/managesieve/localization/de_CH.inc index b30625fe9..19a9b9de3 100644 --- a/plugins/managesieve/localization/de_CH.inc +++ b/plugins/managesieve/localization/de_CH.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Hinzufügen'; $labels['del'] = 'Löschen'; $labels['sender'] = 'Absender'; $labels['recipient'] = 'Empfänger'; -$labels['vacationaddresses'] = 'Zusätzliche Liste von Empfängern (Komma getrennt):'; +$labels['vacationaddr'] = 'Zusätzliche Liste von Empfängern:'; $labels['vacationdays'] = 'Antwort wird erneut gesendet nach (in Tagen):'; $labels['vacationinterval'] = 'Wie oft senden:'; $labels['days'] = 'Tage'; diff --git a/plugins/managesieve/localization/de_DE.inc b/plugins/managesieve/localization/de_DE.inc index 1b741efc6..4894904d6 100644 --- a/plugins/managesieve/localization/de_DE.inc +++ b/plugins/managesieve/localization/de_DE.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Hinzufügen'; $labels['del'] = 'Löschen'; $labels['sender'] = 'Absender'; $labels['recipient'] = 'Empfänger'; -$labels['vacationaddresses'] = 'Zusätzliche Liste von E-Mail Empfängern (Komma getrennt):'; +$labels['vacationaddr'] = 'Zusätzliche Liste von E-Mail Empfängern:'; $labels['vacationdays'] = 'Wie oft sollen Nachrichten gesendet werden (in Tagen):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/el_GR.inc b/plugins/managesieve/localization/el_GR.inc index 714b7240f..e5a1b792d 100644 --- a/plugins/managesieve/localization/el_GR.inc +++ b/plugins/managesieve/localization/el_GR.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Προσθήκη'; $labels['del'] = 'Διαγραφή'; $labels['sender'] = 'Αποστολέας'; $labels['recipient'] = 'Παραλήπτης'; -$labels['vacationaddresses'] = 'Πρόσθετη λίστα email παραληπτών (διαχωρισμένη με κόμματα):'; +$labels['vacationaddr'] = 'Πρόσθετη λίστα email παραληπτών:'; $labels['vacationdays'] = 'Συχνότητα αποστολής μηνυμάτων (σε ημέρες):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/en_GB.inc b/plugins/managesieve/localization/en_GB.inc index 4dd4f7d8b..ff4965ca0 100644 --- a/plugins/managesieve/localization/en_GB.inc +++ b/plugins/managesieve/localization/en_GB.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Add'; $labels['del'] = 'Delete'; $labels['sender'] = 'Sender'; $labels['recipient'] = 'Recipient'; -$labels['vacationaddresses'] = 'Additional list of recipient e-mails (comma separated):'; +$labels['vacationaddr'] = 'Additional list of recipient e-mails:'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/en_US.inc b/plugins/managesieve/localization/en_US.inc index 2b391e0c5..9fe943446 100644 --- a/plugins/managesieve/localization/en_US.inc +++ b/plugins/managesieve/localization/en_US.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Add'; $labels['del'] = 'Delete'; $labels['sender'] = 'Sender'; $labels['recipient'] = 'Recipient'; -$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/eo.inc b/plugins/managesieve/localization/eo.inc index 3ce49ddb2..3f54e2391 100644 --- a/plugins/managesieve/localization/eo.inc +++ b/plugins/managesieve/localization/eo.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Aldoni'; $labels['del'] = 'Forigi'; $labels['sender'] = 'Sendanto'; $labels['recipient'] = 'Ricevanto'; -$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/es_AR.inc b/plugins/managesieve/localization/es_AR.inc index c9c6e70f8..e8d90efcf 100644 --- a/plugins/managesieve/localization/es_AR.inc +++ b/plugins/managesieve/localization/es_AR.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Agregar'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; -$labels['vacationaddresses'] = 'Lista de direcciones de correo de destinatarios adicionales (separados por comas):'; +$labels['vacationaddr'] = 'Lista de direcciones de correo de destinatarios adicionales:'; $labels['vacationdays'] = 'Cada cuanto enviar mensajes (en días):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/es_ES.inc b/plugins/managesieve/localization/es_ES.inc index 9673a9959..93ea89262 100644 --- a/plugins/managesieve/localization/es_ES.inc +++ b/plugins/managesieve/localization/es_ES.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Agregar'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; -$labels['vacationaddresses'] = 'Lista de direcciones de correo de destinatarios adicionales (separados por comas):'; +$labels['vacationaddr'] = 'Lista de direcciones de correo de destinatarios adicionales:'; $labels['vacationdays'] = 'Cada cuánto enviar mensajes (en días):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/et_EE.inc b/plugins/managesieve/localization/et_EE.inc index 334a65cee..7a10af41e 100644 --- a/plugins/managesieve/localization/et_EE.inc +++ b/plugins/managesieve/localization/et_EE.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Lisa'; $labels['del'] = 'Kustuta'; $labels['sender'] = 'Saatja'; $labels['recipient'] = 'Saaja'; -$labels['vacationaddresses'] = 'Lisanimekiri saaja e-posti aadressidest (komadega eraldatud):'; +$labels['vacationaddr'] = 'Lisanimekiri saaja e-posti aadressidest:'; $labels['vacationdays'] = 'Kui tihti kirju saata (päevades):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/fa_IR.inc b/plugins/managesieve/localization/fa_IR.inc index 91dfcb605..1c8eace27 100644 --- a/plugins/managesieve/localization/fa_IR.inc +++ b/plugins/managesieve/localization/fa_IR.inc @@ -55,7 +55,6 @@ $labels['add'] = 'افزودن'; $labels['del'] = 'حذف'; $labels['sender'] = 'فرستنده'; $labels['recipient'] = 'گیرنده'; -$labels['vacationaddresses'] = 'آدرسهای ایمیل دیگر من (جدا شده با ویرگول):'; $labels['vacationdays'] = 'پیغام ها در چه مواقعی فرستاده شدند (در روزهای):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/fi_FI.inc b/plugins/managesieve/localization/fi_FI.inc index 71856c95f..f006f6d23 100644 --- a/plugins/managesieve/localization/fi_FI.inc +++ b/plugins/managesieve/localization/fi_FI.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Lisää'; $labels['del'] = 'Poista'; $labels['sender'] = 'Lähettäjä'; $labels['recipient'] = 'Vastaanottaja'; -$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/fr_FR.inc b/plugins/managesieve/localization/fr_FR.inc index 9be9f1054..047c455ef 100644 --- a/plugins/managesieve/localization/fr_FR.inc +++ b/plugins/managesieve/localization/fr_FR.inc @@ -55,12 +55,12 @@ $labels['add'] = 'Ajouter'; $labels['del'] = 'Supprimer'; $labels['sender'] = 'Expéditeur'; $labels['recipient'] = 'Destinataire'; -$labels['vacationaddresses'] = 'Liste des destinataires (séparés par une virgule) :'; -$labels['vacationdays'] = 'Ne pas renvoyer un message avant (jours) :'; +$labels['vacationaddr'] = 'Liste des destinataires:'; +$labels['vacationdays'] = 'Ne pas renvoyer un message avant (jours):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; $labels['seconds'] = 'seconds'; -$labels['vacationreason'] = 'Corps du message (raison de l\'absence) :'; +$labels['vacationreason'] = 'Corps du message (raison de l\'absence):'; $labels['vacationsubject'] = 'Sujet du message:'; $labels['rulestop'] = 'Arrêter d\'évaluer les prochaines règles'; $labels['enable'] = 'Activer/Désactiver'; diff --git a/plugins/managesieve/localization/gl_ES.inc b/plugins/managesieve/localization/gl_ES.inc index 3f492ad46..185490a94 100644 --- a/plugins/managesieve/localization/gl_ES.inc +++ b/plugins/managesieve/localization/gl_ES.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Engadir'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; -$labels['vacationaddresses'] = 'Lista de enderezos de correo de destinatarios adicionais (separados por comas):'; +$labels['vacationaddr'] = 'Lista de enderezos de correo de destinatarios adicionais:'; $labels['vacationdays'] = 'Cada canto enviar mensaxes (en días):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/he_IL.inc b/plugins/managesieve/localization/he_IL.inc index 0b2f67ede..932d4e5d6 100644 --- a/plugins/managesieve/localization/he_IL.inc +++ b/plugins/managesieve/localization/he_IL.inc @@ -55,7 +55,6 @@ $labels['add'] = 'הוספה'; $labels['del'] = 'מחיקה'; $labels['sender'] = 'השולח'; $labels['recipient'] = 'הנמען'; -$labels['vacationaddresses'] = 'כתובות דוא"ל נוספות שלי (מופרדות ע"י פסיקים)'; $labels['vacationdays'] = 'באיזו תדירות ( בימים ) לשלוח הודעות:'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/hu_HU.inc b/plugins/managesieve/localization/hu_HU.inc index 9d39ffac3..ea59fa717 100644 --- a/plugins/managesieve/localization/hu_HU.inc +++ b/plugins/managesieve/localization/hu_HU.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Hozzáadás'; $labels['del'] = 'Törlés'; $labels['sender'] = 'Feladó'; $labels['recipient'] = 'Címzett'; -$labels['vacationaddresses'] = 'További címzettek (vesszővel elválasztva):'; +$labels['vacationaddr'] = 'További címzettek:'; $labels['vacationdays'] = 'Válaszüzenet küldése ennyi naponként:'; $labels['vacationinterval'] = 'Milyen gyakran küld üzeneteket:'; $labels['days'] = 'napok'; diff --git a/plugins/managesieve/localization/hy_AM.inc b/plugins/managesieve/localization/hy_AM.inc index 908175f1d..68837b065 100644 --- a/plugins/managesieve/localization/hy_AM.inc +++ b/plugins/managesieve/localization/hy_AM.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Ավելացնել'; $labels['del'] = 'Ջնջել'; $labels['sender'] = 'Ուղարկող'; $labels['recipient'] = 'Ստացող'; -$labels['vacationaddresses'] = 'Իմ հավելյալ էլփոստի հասցեներ (բաժանված ստորակետներով).'; +$labels['vacationaddr'] = 'Իմ հավելյալ էլփոստի հասցեներ.'; $labels['vacationdays'] = 'Ինչ հաճախությամբ ուղարկել հաղորդագրությունները (օրեր)`'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/ia.inc b/plugins/managesieve/localization/ia.inc index 45f6e5263..945de27d8 100644 --- a/plugins/managesieve/localization/ia.inc +++ b/plugins/managesieve/localization/ia.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Add'; $labels['del'] = 'Delete'; $labels['sender'] = 'Sender'; $labels['recipient'] = 'Recipient'; -$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/id_ID.inc b/plugins/managesieve/localization/id_ID.inc index a30c2a0b0..d98a326c1 100644 --- a/plugins/managesieve/localization/id_ID.inc +++ b/plugins/managesieve/localization/id_ID.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Tambah'; $labels['del'] = 'Hapus'; $labels['sender'] = 'Pengirim'; $labels['recipient'] = 'Penerima'; -$labels['vacationaddresses'] = 'Alamat email tambahan saya (dipisahkan koma):'; +$labels['vacationaddr'] = 'Alamat email tambahan saya:'; $labels['vacationdays'] = 'Seberapa sering mengirim pesan (dalam hari):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/it_IT.inc b/plugins/managesieve/localization/it_IT.inc index 6fb2c424f..b54c46d9a 100644 --- a/plugins/managesieve/localization/it_IT.inc +++ b/plugins/managesieve/localization/it_IT.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Aggiungi'; $labels['del'] = 'Elimina'; $labels['sender'] = 'Mittente'; $labels['recipient'] = 'Destinatario'; -$labels['vacationaddresses'] = 'Lista di indirizzi e-mail di destinatari addizionali (separati da virgola):'; +$labels['vacationaddr'] = 'Lista di indirizzi e-mail di destinatari addizionali:'; $labels['vacationdays'] = 'Ogni quanti giorni ribadire il messaggio allo stesso mittente'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/ja_JP.inc b/plugins/managesieve/localization/ja_JP.inc index 0cd4f44b9..c8927d3f2 100644 --- a/plugins/managesieve/localization/ja_JP.inc +++ b/plugins/managesieve/localization/ja_JP.inc @@ -55,7 +55,7 @@ $labels['add'] = '追加'; $labels['del'] = '削除'; $labels['sender'] = '送信者'; $labels['recipient'] = '宛先'; -$labels['vacationaddresses'] = '電子メールの宛先の(コンマ区切った)追加のリスト:'; +$labels['vacationaddr'] = '電子メールの宛先の追加のリスト:'; $labels['vacationdays'] = 'メッセージを(1日に)送信する頻度:'; $labels['vacationinterval'] = 'メッセージを送信する頻度:'; $labels['days'] = '日'; diff --git a/plugins/managesieve/localization/ko_KR.inc b/plugins/managesieve/localization/ko_KR.inc index 5ab4fc220..1085f624d 100644 --- a/plugins/managesieve/localization/ko_KR.inc +++ b/plugins/managesieve/localization/ko_KR.inc @@ -55,7 +55,7 @@ $labels['add'] = '추가'; $labels['del'] = '삭제'; $labels['sender'] = '발신인'; $labels['recipient'] = '수신인'; -$labels['vacationaddresses'] = '나의 추가 이메일 주소 (쉼표로 구분됨):'; +$labels['vacationaddr'] = '나의 추가 이메일 주소:'; $labels['vacationdays'] = '메시지 발신 주기 (일):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/lt_LT.inc b/plugins/managesieve/localization/lt_LT.inc index fecd3d6bc..3b6f4eec4 100644 --- a/plugins/managesieve/localization/lt_LT.inc +++ b/plugins/managesieve/localization/lt_LT.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Pridėti'; $labels['del'] = 'Pašalinti'; $labels['sender'] = 'Siuntėjas'; $labels['recipient'] = 'Gavėjas'; -$labels['vacationaddresses'] = 'Papildomas gavėjų adresų sąrašas (skirti kableliais):'; +$labels['vacationaddr'] = 'Papildomas gavėjų adresų sąrašas:'; $labels['vacationdays'] = 'Kaip dažnai išsiųsti laiškus (dienomis):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/lv_LV.inc b/plugins/managesieve/localization/lv_LV.inc index f1f85c2e0..0a008f8b8 100644 --- a/plugins/managesieve/localization/lv_LV.inc +++ b/plugins/managesieve/localization/lv_LV.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Pievienot'; $labels['del'] = 'Dzēst'; $labels['sender'] = 'Sūtītājs'; $labels['recipient'] = 'Saņēmējs'; -$labels['vacationaddresses'] = 'Ievadiet vienu vai vairākus e-pastu(s), atdalot tos komatu:'; +$labels['vacationaddr'] = 'Ievadiet vienu vai vairākus e-pastu(s):'; $labels['vacationdays'] = 'Cik dienu laikā vienam un tam pašam sūtītājam neatbildēt atkārtoti (piem., 7):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/ml_IN.inc b/plugins/managesieve/localization/ml_IN.inc index 67cd6829f..761b4305b 100644 --- a/plugins/managesieve/localization/ml_IN.inc +++ b/plugins/managesieve/localization/ml_IN.inc @@ -55,7 +55,6 @@ $labels['add'] = 'ചേര്ക്കു'; $labels['del'] = 'നീക്കം ചെയ്യുക'; $labels['sender'] = 'അയചയാള്'; $labels['recipient'] = 'സ്വീകര്ത്താവ്'; -$labels['vacationaddresses'] = 'സ്വീകര്ത്താവിന്റെ ഇമെയില് വിലാസങ്ങളുടെ അധികമുള്ള പട്ടിക (കോമയിട്ട് തിരിച്ച)'; $labels['vacationdays'] = 'എത്ര ഭിവസം കൂടുമ്പോള് സന്ദേശം അയക്കണം:'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/mr_IN.inc b/plugins/managesieve/localization/mr_IN.inc index 3339737e0..082ea9bc6 100644 --- a/plugins/managesieve/localization/mr_IN.inc +++ b/plugins/managesieve/localization/mr_IN.inc @@ -55,7 +55,7 @@ $labels['add'] = 'समावेश करा'; $labels['del'] = 'नष्ट करा'; $labels['sender'] = 'प्रेषक'; $labels['recipient'] = 'Recipient'; -$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/nb_NO.inc b/plugins/managesieve/localization/nb_NO.inc index c2c17b23c..c3bf98f8b 100644 --- a/plugins/managesieve/localization/nb_NO.inc +++ b/plugins/managesieve/localization/nb_NO.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Legg til'; $labels['del'] = 'Slett'; $labels['sender'] = 'Avsender'; $labels['recipient'] = 'Mottaker'; -$labels['vacationaddresses'] = 'Liste med mottakeradresser (adskilt med komma):'; +$labels['vacationaddr'] = 'Liste med mottakeradresser:'; $labels['vacationdays'] = 'Periode mellom meldinger (i dager):'; $labels['vacationinterval'] = 'Periode mellom meldinger:'; $labels['days'] = 'dager'; diff --git a/plugins/managesieve/localization/nl_NL.inc b/plugins/managesieve/localization/nl_NL.inc index 1fd6eee4e..80c2274b1 100644 --- a/plugins/managesieve/localization/nl_NL.inc +++ b/plugins/managesieve/localization/nl_NL.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Toevoegen'; $labels['del'] = 'Verwijderen'; $labels['sender'] = 'Afzender'; $labels['recipient'] = 'Ontvanger'; -$labels['vacationaddresses'] = 'Aanvullende lijst van geadresseerden (gescheiden met komma\'s):'; +$labels['vacationaddr'] = 'Aanvullende lijst van geadresseerden:'; $labels['vacationdays'] = 'Hoe vaak moet een bericht verstuurd worden (in dagen):'; $labels['vacationinterval'] = 'Hoe vaak moet een bericht verstuurd worden:'; $labels['days'] = 'dagen'; diff --git a/plugins/managesieve/localization/nn_NO.inc b/plugins/managesieve/localization/nn_NO.inc index 69af8cde4..03563a72b 100644 --- a/plugins/managesieve/localization/nn_NO.inc +++ b/plugins/managesieve/localization/nn_NO.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Legg til'; $labels['del'] = 'Slett'; $labels['sender'] = 'Avsendar'; $labels['recipient'] = 'Mottakar'; -$labels['vacationaddresses'] = 'Liste med mottakaradresser (komma-separert):'; +$labels['vacationaddr'] = 'Liste med mottakaradresser:'; $labels['vacationdays'] = 'Periode mellom meldingar (i dagar):'; $labels['vacationreason'] = 'Innhald (grunngjeving for fråvær)'; $labels['vacationsubject'] = 'Meldingsemne:'; diff --git a/plugins/managesieve/localization/pl_PL.inc b/plugins/managesieve/localization/pl_PL.inc index f2ec96eb9..287633727 100644 --- a/plugins/managesieve/localization/pl_PL.inc +++ b/plugins/managesieve/localization/pl_PL.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Dodaj'; $labels['del'] = 'Usuń'; $labels['sender'] = 'Nadawca'; $labels['recipient'] = 'Odbiorca'; -$labels['vacationaddresses'] = 'Lista dodatkowych adresów odbiorców (oddzielonych przecinkami):'; +$labels['vacationaddr'] = 'Lista dodatkowych adresów odbiorców:'; $labels['vacationdays'] = 'Częstotliwość wysyłania wiadomości (w dniach):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/pt_BR.inc b/plugins/managesieve/localization/pt_BR.inc index fb4699fd2..92c1e6ae6 100644 --- a/plugins/managesieve/localization/pt_BR.inc +++ b/plugins/managesieve/localization/pt_BR.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Adicionar'; $labels['del'] = 'Excluir'; $labels['sender'] = 'Remetente'; $labels['recipient'] = 'Destinatário'; -$labels['vacationaddresses'] = 'Lista adicional de e-mails destinatários (separado por vírgula):'; +$labels['vacationaddr'] = 'Lista adicional de e-mails destinatários:'; $labels['vacationdays'] = 'Enviar mensagens com que frequência (em dias):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/pt_PT.inc b/plugins/managesieve/localization/pt_PT.inc index bfb3f296a..f51e8bf5e 100644 --- a/plugins/managesieve/localization/pt_PT.inc +++ b/plugins/managesieve/localization/pt_PT.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Adicionar'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remetente'; $labels['recipient'] = 'Destinatário'; -$labels['vacationaddresses'] = 'Lista adicional de destinatários de e-mails (separados por vírgula):'; +$labels['vacationaddr'] = 'Lista adicional de destinatários de e-mails:'; $labels['vacationdays'] = 'Enviar mensagens com que frequência (em dias):'; $labels['vacationinterval'] = 'Com que frequência envia mensagens:'; $labels['days'] = 'dias'; diff --git a/plugins/managesieve/localization/ro_RO.inc b/plugins/managesieve/localization/ro_RO.inc index 2c917cbdd..8d6e9c96f 100644 --- a/plugins/managesieve/localization/ro_RO.inc +++ b/plugins/managesieve/localization/ro_RO.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Adaugă'; $labels['del'] = 'Șterge'; $labels['sender'] = 'Expeditor'; $labels['recipient'] = 'Destinatar'; -$labels['vacationaddresses'] = 'Adresele mele de e-mail adiționale (împărțite cu virgulă):'; +$labels['vacationaddr'] = 'Adresele mele de e-mail adiționale:'; $labels['vacationdays'] = 'Cât de des să trimit mesajele (în zile):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/ru_RU.inc b/plugins/managesieve/localization/ru_RU.inc index b05074c22..6aab60da6 100644 --- a/plugins/managesieve/localization/ru_RU.inc +++ b/plugins/managesieve/localization/ru_RU.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Добавить'; $labels['del'] = 'Удалить'; $labels['sender'] = 'Отправитель'; $labels['recipient'] = 'Получатель'; -$labels['vacationaddresses'] = 'Список моих дополнительных адресов (разделённых запятыми):'; +$labels['vacationaddr'] = 'Список моих дополнительных адресов:'; $labels['vacationdays'] = 'Как часто отправлять сообщения (в днях):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/si_LK.inc b/plugins/managesieve/localization/si_LK.inc index afc2e3851..378fcf15d 100644 --- a/plugins/managesieve/localization/si_LK.inc +++ b/plugins/managesieve/localization/si_LK.inc @@ -55,7 +55,6 @@ $labels['add'] = 'එක් කරන්න'; $labels['del'] = 'මකන්න'; $labels['sender'] = 'යවන්නා'; $labels['recipient'] = 'ලබන්නා'; -$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; $labels['vacationdays'] = 'How often send messages (in days):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/sk_SK.inc b/plugins/managesieve/localization/sk_SK.inc index f336cf2c5..9bfb2ef8f 100644 --- a/plugins/managesieve/localization/sk_SK.inc +++ b/plugins/managesieve/localization/sk_SK.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Pridaj'; $labels['del'] = 'Zmaž'; $labels['sender'] = 'Odosielateľ'; $labels['recipient'] = 'Adresát'; -$labels['vacationaddresses'] = 'Dodatoční príjemcovia správy (oddelení čiarkami):'; +$labels['vacationaddr'] = 'Dodatoční príjemcovia správy:'; $labels['vacationdays'] = 'Počet dní medzi odoslaním správy:'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/sl_SI.inc b/plugins/managesieve/localization/sl_SI.inc index f1c3b983b..0a30a3a87 100644 --- a/plugins/managesieve/localization/sl_SI.inc +++ b/plugins/managesieve/localization/sl_SI.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Dodaj'; $labels['del'] = 'Izbriši'; $labels['sender'] = 'Pošiljatelj'; $labels['recipient'] = 'Prejemnik'; -$labels['vacationaddresses'] = 'Dodaten seznam naslovov prejemnikov (ločenih z vejico):'; +$labels['vacationaddr'] = 'Dodaten seznam naslovov prejemnikov:'; $labels['vacationdays'] = 'Kako pogosto naj bodo sporočila poslana (v dnevih):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/sv_SE.inc b/plugins/managesieve/localization/sv_SE.inc index 49d5b1222..f2aeddd9f 100644 --- a/plugins/managesieve/localization/sv_SE.inc +++ b/plugins/managesieve/localization/sv_SE.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Lägg till'; $labels['del'] = 'Ta bort'; $labels['sender'] = 'Avsändare'; $labels['recipient'] = 'Mottagare'; -$labels['vacationaddresses'] = 'Ytterligare mottagaradresser (avdelade med kommatecken)'; +$labels['vacationaddr'] = 'Ytterligare mottagaradresser:'; $labels['vacationdays'] = 'Antal dagar mellan auto-svar:'; $labels['vacationinterval'] = 'Tid mellan auto-svar:'; $labels['days'] = 'Dagar'; diff --git a/plugins/managesieve/localization/tr_TR.inc b/plugins/managesieve/localization/tr_TR.inc index 984cb94c4..19bbb2e8e 100644 --- a/plugins/managesieve/localization/tr_TR.inc +++ b/plugins/managesieve/localization/tr_TR.inc @@ -55,8 +55,8 @@ $labels['add'] = 'Ekle'; $labels['del'] = 'Sil'; $labels['sender'] = 'Gönderici'; $labels['recipient'] = 'Alıcı'; -$labels['vacationaddresses'] = 'İlave e-posta adreslerim(virgül ile ayrılmış)'; -$labels['vacationdays'] = 'Ne sıklıkla mesajlar gönderilir(gün)'; +$labels['vacationaddr'] = 'İlave e-posta adreslerim:'; +$labels['vacationdays'] = 'Ne sıklıkla mesajlar gönderilir(gün):'; $labels['vacationinterval'] = 'Ne kadar sıklıkla mesaj gönderirsiniz:'; $labels['days'] = 'günler'; $labels['seconds'] = 'saniyeler'; diff --git a/plugins/managesieve/localization/uk_UA.inc b/plugins/managesieve/localization/uk_UA.inc index 41623df35..57cab9ea5 100644 --- a/plugins/managesieve/localization/uk_UA.inc +++ b/plugins/managesieve/localization/uk_UA.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Додати'; $labels['del'] = 'Видалити'; $labels['sender'] = 'Відправник'; $labels['recipient'] = 'Отримувач'; -$labels['vacationaddresses'] = 'Додатковий список адрес отримувачів (розділених комою)'; +$labels['vacationaddr'] = 'Додатковий список адрес отримувачів:'; $labels['vacationdays'] = 'Як часто повторювати (у днях):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/vi_VN.inc b/plugins/managesieve/localization/vi_VN.inc index 8d6fcd348..6e65cccf5 100644 --- a/plugins/managesieve/localization/vi_VN.inc +++ b/plugins/managesieve/localization/vi_VN.inc @@ -55,7 +55,7 @@ $labels['add'] = 'Thêm'; $labels['del'] = 'Xoá'; $labels['sender'] = 'Người gửi'; $labels['recipient'] = 'Người nhận'; -$labels['vacationaddresses'] = 'Địa chỉ email bổ sung của tôi ( phân cách bằng dấu phẩy)'; +$labels['vacationaddr'] = 'Địa chỉ email bổ sung của tôi'; $labels['vacationdays'] = 'Số lần gửi thư (trong ngày)'; $labels['vacationreason'] = 'Nội dung chính'; $labels['vacationsubject'] = 'Tiêu đề thư'; diff --git a/plugins/managesieve/localization/zh_CN.inc b/plugins/managesieve/localization/zh_CN.inc index 79b705c54..106fb40fc 100644 --- a/plugins/managesieve/localization/zh_CN.inc +++ b/plugins/managesieve/localization/zh_CN.inc @@ -55,7 +55,7 @@ $labels['add'] = '添加'; $labels['del'] = '删除'; $labels['sender'] = '发件人'; $labels['recipient'] = '收件人'; -$labels['vacationaddresses'] = '收件人地址的附加名单(以半角逗号分隔)'; +$labels['vacationaddr'] = '收件人地址的附加名单'; $labels['vacationdays'] = '发送邮件频率(单位:天):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/localization/zh_TW.inc b/plugins/managesieve/localization/zh_TW.inc index 3f3fc1313..047ebcccc 100644 --- a/plugins/managesieve/localization/zh_TW.inc +++ b/plugins/managesieve/localization/zh_TW.inc @@ -55,7 +55,7 @@ $labels['add'] = '新增'; $labels['del'] = '刪除'; $labels['sender'] = '寄件者'; $labels['recipient'] = '收件者'; -$labels['vacationaddresses'] = '其他收件者(用半形逗號隔開):'; +$labels['vacationaddr'] = '其他收件者:'; $labels['vacationdays'] = '多久回覆一次(單位:天):'; $labels['vacationinterval'] = 'How often send messages:'; $labels['days'] = 'days'; diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js index 04b9a76af..117097ef1 100644 --- a/plugins/managesieve/managesieve.js +++ b/plugins/managesieve/managesieve.js @@ -55,6 +55,11 @@ if (window.rcmail) { } $('input[type="text"]:first', rcmail.gui_objects.sieveform).focus(); + + // initialize smart list inputs + $('textarea[data-type="list"]', rcmail.gui_objects.sieveform).each(function() { + smart_field_init(this); + }); } else { rcmail.enable_command('plugin.managesieve-add', 'plugin.managesieve-setadd', !rcmail.env.sieveconnerror); @@ -469,6 +474,11 @@ rcube_webmail.prototype.managesieve_rulefill = function(content, id, after) row.className = 'rulerow'; row.innerHTML = content; + // initialize smart list inputs + $('textarea[data-type="list"]', row).each(function() { + smart_field_init(this); + }); + this.managesieve_formbuttons(div); } }; @@ -565,7 +575,6 @@ function rule_header_select(id) var obj = document.getElementById('header' + id), size = document.getElementById('rule_size' + id), op = document.getElementById('rule_op' + id), - target = document.getElementById('rule_target' + id), header = document.getElementById('custom_header' + id), mod = document.getElementById('rule_mod' + id), trans = document.getElementById('rule_trans' + id), @@ -574,31 +583,30 @@ function rule_header_select(id) if (obj.value == 'size') { size.style.display = 'inline'; op.style.display = 'none'; - target.style.display = 'none'; header.style.display = 'none'; mod.style.display = 'none'; trans.style.display = 'none'; comp.style.display = 'none'; } else { - header.style.display = obj.value != '...' ? 'none' : 'inline'; + header.style.display = obj.value != '...' ? 'none' : 'inline-block'; size.style.display = 'none'; op.style.display = 'inline'; comp.style.display = ''; - rule_op_select(id); mod.style.display = obj.value == 'body' ? 'none' : 'block'; trans.style.display = obj.value == 'body' ? 'block' : 'none'; } + rule_op_select(op, id, obj.value); obj.style.width = obj.value == '...' ? '40px' : ''; }; -function rule_op_select(id) +function rule_op_select(obj, id, header) { - var obj = document.getElementById('rule_op' + id), - target = document.getElementById('rule_target' + id); + var target = document.getElementById('rule_target' + id + '_list'), + style = obj.value == 'exists' || obj.value == 'notexists' || header == 'size' ? 'none' : 'inline-block'; - target.style.display = obj.value == 'exists' || obj.value == 'notexists' ? 'none' : 'inline'; + target.style.display = style; }; function rule_trans_select(id) @@ -677,6 +685,75 @@ function action_type_select(id) } }; +// Inititalizes smart list input +function smart_field_init(field) +{ + var id = field.id + '_list', + area = $('<span class="listarea"></span>'), + list = field.value ? field.value.split("\n") : ['']; + + if ($('#'+id).length) + return; + + // add input rows + $.each(list, function(i, v) { + area.append(smart_field_row(v, field.name, i, $(field).data('size'))); + }); + + area.attr('id', id); + field = $(field); + + if (field.attr('disabled')) + area.hide(); + + field.after(area); + + if (field.hasClass('error')) { + area.addClass('error'); + rcmail.managesieve_tip_register([[id, field.data('tip')]]); + } +}; + +function smart_field_row(value, name, idx, size) +{ + // build row element content + var input, content = '<span class="listelement">' + + '<span class="actions"><span class="add"></span><span class="reset"></span></span>' + + '<input type="text"></span>', + elem = $(content), + attrs = {value: value, name: name + '[]'}; + + if (size) + attrs.size = size; + + input = $('input', elem).attr(attrs) + .keydown(function(e) { if (e.which == 13) $('span[class="add"]', elem).click(); }); + + // element creation event + $('span[class="add"]', elem).click(function() { + var span = $(this.parentNode.parentNode), + input = $('input', span), + name = input.attr('name').replace(/\[\]$/, ''), + dt = (new Date()).getTime(), + elem = smart_field_row('', name, dt, size); + + span.after(elem); + $('input', elem).focus(); + }); + + // element deletion event + $('span[class="reset"]', elem).click(function() { + var span = $(this.parentNode.parentNode); + + if (span.parent().children().length > 1) + span.remove(); + else + $('input', span).val('').focus(); + }); + + return elem; +} + // Register onmouse(leave/enter) events for tips on specified form element rcube_webmail.prototype.managesieve_tip_register = function(tips) { @@ -685,25 +762,26 @@ rcube_webmail.prototype.managesieve_tip_register = function(tips) for (var n in tips) { $('#'+tips[n][0]) - .bind('mouseenter', {str: tips[n][1]}, - function(e) { - var offset = $(this).offset(), - left = offset.left, - top = offset.top - 12, - minwidth = $(this).width(); - - if (framed) { - offset = $((rcmail.env.task == 'mail' ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset(); - top += offset.top; - left += offset.left; - } - - tip.html(e.data.str) - top -= tip.height(); - - tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show(); - }) - .bind('mouseleave', function(e) { tip.hide(); }); + .data('tip', tips[n][1]) + .bind('mouseenter', function(e) { + var elem = $(this), + offset = elem.offset(), + left = offset.left, + top = offset.top - 12, + minwidth = elem.width(); + + if (framed) { + offset = $((rcmail.env.task == 'mail' ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset(); + top += offset.top; + left += offset.left; + } + + tip.html(elem.data('tip')); + top -= tip.height(); + + tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show(); + }) + .bind('mouseleave', function(e) { tip.hide(); }); } }; diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php index f451a810e..c7d5911e7 100644 --- a/plugins/managesieve/managesieve.php +++ b/plugins/managesieve/managesieve.php @@ -708,8 +708,9 @@ class managesieve extends rcube_plugin } else { foreach ($headers as $idx => $header) { + // targets are indexed differently (assume form order) + $target = $this->strip_value(array_shift($targets), true); $header = $this->strip_value($header); - $target = $this->strip_value($targets[$idx], true); $operator = $this->strip_value($ops[$idx]); $comparator = $this->strip_value($comparators[$idx]); @@ -747,10 +748,16 @@ class managesieve extends rcube_plugin $this->form['tests'][$i]['type'] = $type; $this->form['tests'][$i]['arg'] = $target; - if ($target == '' && $type != 'exists') + if (empty($target) && $type != 'exists') { $this->errors['tests'][$i]['target'] = $this->gettext('cannotbeempty'); - else if (preg_match('/^(value|count)-/', $type) && !preg_match('/[0-9]+/', $target)) - $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + } + else if (preg_match('/^(value|count)-/', $type)) { + foreach ($target as $target_value) { + if (!preg_match('/[0-9]+/', $target_value)) { + $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + } + } + } $this->form['tests'][$i]['part'] = $trans; if ($trans == 'content') { @@ -809,10 +816,16 @@ class managesieve extends rcube_plugin $this->form['tests'][$i]['arg1'] = $header; $this->form['tests'][$i]['arg2'] = $target; - if ($target == '') + if (empty($target)) { $this->errors['tests'][$i]['target'] = $this->gettext('cannotbeempty'); - else if (preg_match('/^(value|count)-/', $type) && !preg_match('/[0-9]+/', $target)) - $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + } + else if (preg_match('/^(value|count)-/', $type)) { + foreach ($target as $target_value) { + if (!preg_match('/[0-9]+/', $target_value)) { + $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + } + } + } if ($mod) { $this->form['tests'][$i]['part'] = $mod_type; @@ -893,20 +906,14 @@ class managesieve extends rcube_plugin $interval_type = $interval_types[$idx] == 'seconds' ? 'seconds' : 'days'; $this->form['actions'][$i]['reason'] = str_replace("\r\n", "\n", $reason); $this->form['actions'][$i]['subject'] = $subject[$idx]; - $this->form['actions'][$i]['addresses'] = explode(',', $addresses[$idx]); + $this->form['actions'][$i]['addresses'] = array_shift($addresses); $this->form['actions'][$i][$interval_type] = $intervals[$idx]; // @TODO: vacation :mime, :from, :handle - if ($this->form['actions'][$i]['addresses']) { - foreach($this->form['actions'][$i]['addresses'] as $aidx => $address) { - $address = trim($address); - if (!$address) - unset($this->form['actions'][$i]['addresses'][$aidx]); - else if(!rcube_utils::check_email($address)) { - $this->errors['actions'][$i]['addresses'] = $this->gettext('noemailwarning'); - break; - } else - $this->form['actions'][$i]['addresses'][$aidx] = $address; + foreach ((array)$this->form['actions'][$i]['addresses'] as $aidx => $address) { + if (!rcube_utils::check_email($address)) { + $this->errors['actions'][$i]['addresses'] = $this->gettext('noemailwarning'); + break; } } @@ -1406,9 +1413,9 @@ class managesieve extends rcube_plugin } $tout .= $select_op->show($test); - $tout .= '<input type="text" name="_rule_target[]" id="rule_target' .$id. '" - value="' .rcube::Q($target). '" size="20" ' . $this->error_class($id, 'test', 'target', 'rule_target') - . ' style="display:' . ($rule['test']!='size' && $rule['test'] != 'exists' ? 'inline' : 'none') . '" />'."\n"; + $tout .= $this->list_input($id, 'rule_target', $target, + $rule['test'] != 'size' && $rule['test'] != 'exists', + $this->error_class($id, 'test', 'target', 'rule_target')) . "\n"; $select_size_op = new html_select(array('name' => "_rule_size_op[]", 'id' => 'rule_size_op'.$id)); $select_size_op->add(rcube::Q($this->gettext('filterover')), 'over'); @@ -1589,10 +1596,9 @@ class managesieve extends rcube_plugin .'<input type="text" name="_action_subject['.$id.']" id="action_subject'.$id.'" ' .'value="' . (is_array($action['subject']) ? rcube::Q(implode(', ', $action['subject']), 'strict', false) : $action['subject']) . '" size="35" ' . $this->error_class($id, 'action', 'subject', 'action_subject') .' />'; - $out .= '<br /><span class="label">' .rcube::Q($this->gettext('vacationaddresses')) . '</span><br />' - .'<input type="text" name="_action_addresses['.$id.']" id="action_addr'.$id.'" ' - .'value="' . (is_array($action['addresses']) ? rcube::Q(implode(', ', $action['addresses']), 'strict', false) : $action['addresses']) . '" size="35" ' - . $this->error_class($id, 'action', 'addresses', 'action_addr') .' />'; + $out .= '<br /><span class="label">' .rcube::Q($this->gettext('vacationaddr')) . '</span><br />' + . $this->list_input($id, 'action_addresses', $action['addresses'], true, + $this->error_class($id, 'action', 'addresses', 'action_addresses'), 30); $out .= '<br /><span class="label">' . rcube::Q($this->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" ' @@ -1727,6 +1733,18 @@ class managesieve extends rcube_plugin private function strip_value($str, $allow_html = false, $trim = true) { + if (is_array($str)) { + foreach ($str as $idx => $val) { + $val = $this->strip_value($val, $allow_html, $trim); + + if ($val === '') { + unset($str[$idx]); + } + } + + return $str; + } + if (!$allow_html) { $str = strip_tags($str); } @@ -1764,6 +1782,19 @@ class managesieve extends rcube_plugin $this->rc->output->add_script($script, 'foot'); } + private function list_input($id, $name, $value, $enabled, $class, $size=null) + { + $value = (array) $value; + $value = array_map(array('rcube', 'Q'), $value); + $value = implode("\n", $value); + + return '<textarea data-type="list" name="_' . $name . '['.$id.']" id="' . $name.$id . '"' + . ($enabled ? '' : ' disabled="disabled"') + . ($size ? ' data-size="'.$size.'"' : '') + . $class + . ' style="display:none">' . $value . '</textarea>'; + } + /** * Converts mailbox name from/to UTF7-IMAP from/to internal Sieve encoding * with delimiter replacement. diff --git a/plugins/managesieve/skins/classic/images/plus_minus.png b/plugins/managesieve/skins/classic/images/plus_minus.png Binary files differnew file mode 100644 index 000000000..d92af25c2 --- /dev/null +++ b/plugins/managesieve/skins/classic/images/plus_minus.png diff --git a/plugins/managesieve/skins/classic/managesieve.css b/plugins/managesieve/skins/classic/managesieve.css index 86a0d197d..5305b5242 100644 --- a/plugins/managesieve/skins/classic/managesieve.css +++ b/plugins/managesieve/skins/classic/managesieve.css @@ -226,6 +226,7 @@ input.radio select.operator_selector { width: 200px; + vertical-align: top; } td.rowtargets span, @@ -308,6 +309,77 @@ a.button.disabled font-size: 11px; } +/* smart multi-row input field */ +.listarea +{ + border: 1px solid #666; + margin: 0; + padding: 1px; + display: inline-block; + max-height: 67px; + overflow-y: auto; +} + +.listelement +{ + display: block; + white-space: nowrap; + background-color: #fff; + border-top: 1px solid #e2e2e2; + height: 16px; + padding: 0; + margin: 0; + overflow: hidden; + line-height: 16px; +} + +.listarea.error .listelement +{ + background-color: #FFFFC4; +} + +.listelement:first-child +{ + border-top: none; +} + +#filter-form .listelement input +{ + border: none; + border-radius: 0; + box-shadow: none; + outline: none; + vertical-align: top; + height: 16px; + padding-top: 0; + padding-bottom: 0; + line-height: 16px; + background-color: transparent; +} + +.listelement input:focus +{ + box-shadow: none; +} + +.listelement .actions +{ + display: inline-block; + width: 32px; + height: 16px; + background: url(images/plus_minus.png) -1px 0 no-repeat #eee; +} + +.actions .add, +.actions .reset +{ + display: inline-block; + width: 16px; + height: 16px; + cursor: pointer; +} + + /* fixes for popup window */ body.iframe.mail diff --git a/plugins/managesieve/skins/larry/images/plus_minus.png b/plugins/managesieve/skins/larry/images/plus_minus.png Binary files differnew file mode 100644 index 000000000..d92af25c2 --- /dev/null +++ b/plugins/managesieve/skins/larry/images/plus_minus.png diff --git a/plugins/managesieve/skins/larry/managesieve.css b/plugins/managesieve/skins/larry/managesieve.css index 099f05f0d..058b6629b 100644 --- a/plugins/managesieve/skins/larry/managesieve.css +++ b/plugins/managesieve/skins/larry/managesieve.css @@ -175,6 +175,12 @@ td.rowtargets padding-top: 2px; } +td.rowtargets > div +{ + vertical-align: top; + margin-top: 2px; +} + td.rowtargets div.adv { padding-top: 3px; @@ -205,6 +211,7 @@ input.radio select.operator_selector { width: 200px; + vertical-align: top; } td.rowtargets span, @@ -292,6 +299,12 @@ a.button.disabled padding: 1px; } +html.mozilla #filter-form select +{ + padding-top: 3px; + padding-bottom: 3px; +} + /* revert larry style button */ #filter-form input.button { @@ -306,6 +319,82 @@ fieldset border-radius: 4px; } +/* smart multi-row input field */ +.listarea +{ + border: 1px solid #B2B2B2; + border-radius: 4px; + box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); + -moz-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); + -webkit-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); + -o-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); + margin: 0; + padding: 2px; + display: inline-block; + max-height: 59px; + overflow-y: auto; +} + +.listelement +{ + display: block; + white-space: nowrap; + background-color: #fff; + border-top: 1px solid #e2e2e2; + height: 14px; + padding: 0; + margin: 0; + overflow: hidden; + line-height: 14px; +} + +.listarea.error .listelement +{ + background-color: #FFFFC4; +} + +.listelement:first-child +{ + border-top: none; +} + +#filter-form .listelement input +{ + border: none; + border-radius: 0; + box-shadow: none; + outline: none; + vertical-align: top; + height: 14px; + padding-top: 0; + padding-bottom: 0; + line-height: 14px; + background-color: transparent; +} + +.listelement input:focus +{ + box-shadow: none; +} + +.listelement .actions +{ + display: inline-block; + width: 32px; + height: 16px; + background: url(images/plus_minus.png) -1px -1px no-repeat #eee; +} + +.actions .add, +.actions .reset +{ + display: inline-block; + width: 16px; + height: 16px; + cursor: pointer; +} + + /* fixes for popup window */ body.iframe.mail |