summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/managesieve/Changelog1
-rw-r--r--plugins/managesieve/managesieve.js72
-rw-r--r--plugins/managesieve/managesieve.php4
-rw-r--r--plugins/managesieve/skins/default/templates/filteredit.html71
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">