diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-02-10 10:20:54 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-02-10 10:20:54 +0000 |
| commit | 125e37dd62b41d7744ae1021fb486a2f73a7e164 (patch) | |
| tree | 5a5b210a8656b112efd87cd4369086489f069bc4 /plugins | |
| parent | b13bc71099300dfb8c958257ef93782327d7cc81 (diff) | |
- Moved javascript code from skin templates into managesieve.js file
git-svn-id: https://svn.roundcube.net/trunk@4525 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/managesieve/Changelog | 1 | ||||
| -rw-r--r-- | plugins/managesieve/managesieve.js | 72 | ||||
| -rw-r--r-- | plugins/managesieve/managesieve.php | 4 | ||||
| -rw-r--r-- | plugins/managesieve/skins/default/templates/filteredit.html | 71 |
4 files changed, 75 insertions, 73 deletions
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 <alec@alec.pl> * * 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 @@ </head> <body class="iframe"> -<script type="text/javascript"> - -function 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 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'; - } -} - -function rule_join_radio(value) -{ - document.getElementById('rules').style.display = (value=='any' ? 'none' : 'block'); -} -</script> - <div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.filterdef" /></div> <div id="filter-form" class="boxcontent"> |
