]> git.donarmstrong.com Git - roundcube.git/blobdiff - plugins/managesieve/managesieve.js
Imported Upstream version 0.6+dfsg
[roundcube.git] / plugins / managesieve / managesieve.js
index 04977eb1a9a841d84c038343b817de5b44f80f01..ec6247aff8c203a12d99bf146a7316390fe3d630 100644 (file)
@@ -97,7 +97,7 @@ rcube_webmail.prototype.managesieve_rowid = function(id)
   for (i=0; i<rows.length; i++)
     if (rows[i] != null && rows[i].uid == id)
       return i;
-}
+};
 
 rcube_webmail.prototype.managesieve_updatelist = function(action, name, id, disabled)
 {
@@ -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';
+  }
+};