From 125e37dd62b41d7744ae1021fb486a2f73a7e164 Mon Sep 17 00:00:00 2001 From: alec Date: Thu, 10 Feb 2011 10:20:54 +0000 Subject: - Moved javascript code from skin templates into managesieve.js file git-svn-id: https://svn.roundcube.net/trunk@4525 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/managesieve/Changelog | 1 + plugins/managesieve/managesieve.js | 72 ++++++++++++++++++++++ plugins/managesieve/managesieve.php | 4 +- .../skins/default/templates/filteredit.html | 71 --------------------- 4 files changed, 75 insertions(+), 73 deletions(-) (limited to 'plugins') diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog index 0784b3213..5a459ac63 100644 --- a/plugins/managesieve/Changelog +++ b/plugins/managesieve/Changelog @@ -5,6 +5,7 @@ - Added setflag/addflag/removeflag support (#1487449) - Added support for vacation :subject field (#1487120) - rcube_sieve_script class moved to separate file +- Moved javascript code from skin templates into managesieve.js file * version 3.0 [2011-02-01] ----------------------------------------------------------- diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js index 04977eb1a..3591f980c 100644 --- a/plugins/managesieve/managesieve.js +++ b/plugins/managesieve/managesieve.js @@ -507,3 +507,75 @@ rcube_webmail.prototype.managesieve_tip_register = function(tips) }); } }; + +/*********************************************************/ +/********* Other Managesieve UI methods *********/ +/*********************************************************/ + +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); + + if (obj.value == 'size') { + size.style.display = 'inline'; + op.style.display = 'none'; + target.style.display = 'none'; + header.style.display = 'none'; + } + else { + header.style.display = obj.value != '...' ? 'none' : 'inline'; + size.style.display = 'none'; + op.style.display = 'inline'; + rule_op_select(id); + } +}; + +function rule_op_select(id) +{ + var obj = document.getElementById('rule_op' + id), + target = document.getElementById('rule_target' + id); + + target.style.display = obj.value == 'exists' || obj.value == 'notexists' ? 'none' : 'inline'; +}; + +function rule_join_radio(value) +{ + $('#rules').css('display', value == 'any' ? 'none' : 'block'); +}; + +function action_type_select(id) +{ + var obj = document.getElementById('action_type' + id), + enabled = {}, + elems = { + mailbox: document.getElementById('action_mailbox' + id), + target: document.getElementById('action_target' + id), + target_area: document.getElementById('action_target_area' + id), + flags: document.getElementById('action_flags' + id), + vacation: document.getElementById('action_vacation' + id) + }; + + if (obj.value == 'fileinto' || obj.value == 'fileinto_copy') { + enabled.mailbox = 1; + } + else if (obj.value == 'redirect' || obj.value == 'redirect_copy') { + enabled.target = 1; + } + else if (obj.value.match(/^reject|ereject$/)) { + enabled.target_area = 1; + } + else if (obj.value.match(/^(add|set|remove)flag$/)) { + enabled.flags = 1; + } + else if (obj.value == 'vacation') { + enabled.vacation = 1; + } + + for (var x in elems) { + elems[x].style.display = !enabled[x] ? 'none' : 'inline'; + } +}; diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php index 746e62a14..9f22c8c81 100644 --- a/plugins/managesieve/managesieve.php +++ b/plugins/managesieve/managesieve.php @@ -7,7 +7,7 @@ * It's clickable interface which operates on text scripts and communicates * with server using managesieve protocol. Adds Filters tab in Settings. * - * @version 4.0 + * @version 3.0 * @author Aleksander 'A.L.E.C' Machniak * * Configuration (see config.inc.php.dist) @@ -876,7 +876,7 @@ class managesieve extends rcube_plugin // headers select $select_header = new html_select(array('name' => "_header[]", 'id' => 'header'.$id, - 'onchange' => 'header_select(' .$id .')')); + 'onchange' => 'rule_header_select(' .$id .')')); foreach($this->headers as $name => $val) $select_header->add(Q($this->gettext($name)), Q($val)); $select_header->add(Q($this->gettext('size')), 'size'); diff --git a/plugins/managesieve/skins/default/templates/filteredit.html b/plugins/managesieve/skins/default/templates/filteredit.html index 8e810d453..8b1993528 100644 --- a/plugins/managesieve/skins/default/templates/filteredit.html +++ b/plugins/managesieve/skins/default/templates/filteredit.html @@ -7,77 +7,6 @@ - -
-- cgit v1.2.3