managesieve.min.js 25.1 KB
/**
 * (Manage)Sieve Filters plugin
 *
 * @licstart  The following is the entire license notice for the
 * JavaScript code in this file.
 *
 * Copyright (c) The Roundcube Dev Team
 *
 * The JavaScript code in this page is free software: you can redistribute it
 * and/or modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation, either version 3 of
 * the License, or (at your option) any later version.
 *
 * @licend  The above is the entire license notice
 * for the JavaScript code in this file.
 */
function rule_header_select(e){var t,i=document.getElementById("header"+e),a=document.getElementById("rule_size"+e),s=document.getElementById("rule_spamtest"+e),n=document.getElementById("rule_message"+e),r=document.getElementById("rule_op"+e),l=document.getElementById("custom_header"+e+"_list"),o=document.getElementById("custom_var"+e+"_list"),c=document.getElementById("rule_mod"+e),m=document.getElementById("rule_trans"+e),d=document.getElementById("rule_comp"+e),_=document.getElementById("rule_mime"+e),u=document.getElementById("rule_mime_part"+e),g=document.getElementById("rule_date_part"+e),v=document.getElementById("rule_date_header_div"+e),p=$("#rule_op"+e),h=i.value,f=[r,l,o,c,m,d,a,_,u];"size"==h?(n&&f.push(n),$.each(f,function(){this!=window&&(this.style.display="none")}),s.style.display="none",a.style.display=""):"spamtest"==h?(n&&f.push(n),$.each(f,function(){this!=window&&(this.style.display="none")}),s.style.display="",a.style.display="none"):"message"==h&&n?($.each(f,function(){this!=window&&(this.style.display="none")}),n.style.display=""):(t="body"!=h&&"currentdate"!=h&&"date"!=h&&"string"!=h,l.style.display="..."!=h?"none":"",o.style.display="string"!=h?"none":"",a.style.display="none",s.style.display="none",r.style.display="",d.style.display="",c.style.display=t?"":"none",m.style.display="body"==h?"":"none",_&&(_.style.display=t?"":"none"),u&&(u.style.display=t?"":"none"),n&&(n.style.display="message"==h?"":"none")),g&&(g.style.display="currentdate"==h||"date"==h?"inline":"none"),v&&(v.style.display="date"==h?"":"none"),$('[value="exists"],[value="notexists"]',p).prop("disabled","string"==h),p.val()||p.val("contains"),rule_op_select(r,e,h),rule_mod_select(e,h,!t),rule_mime_select(e),rule_spamtest_select(e),i.style.width="..."==h?"40px":""}function rule_op_select(e,t,i){var a=document.getElementById("rule_target"+t+"_list");i=i||document.getElementById("header"+t).value,a.style.display=e.value.match(/^(exists|notexists)$/)||i.match(/^(size|spamtest|message)$/)?"none":""}function rule_trans_select(e){var t=document.getElementById("rule_trans_op"+e);document.getElementById("rule_trans_type"+e).style.display="content"!=t.value?"none":"inline"}function rule_mod_select(e,t,i){var a=document.getElementById("rule_mod_op"+e),s=document.getElementById("rule_mod_type"+e),n=document.getElementById("rule_duplicate_div"+e),r=document.getElementById("rule_index_div"+e);i&&(a.value=""),t=t||document.getElementById("header"+e).value,s.style.display="address"!=a.value&&"envelope"!=a.value?"none":"",r&&(r.style.display=t.match(/^(body|currentdate|size|spamtest|message|string)$/)||"envelope"==a.value?"none":""),n&&(n.style.display="message"==t?"":"none")}function rule_spamtest_select(e){var t=document.getElementById("rule_spamtest_op"+e);document.getElementById("rule_spamtest_target"+e).style.display=t.value?"":"none",$(t)[t.value?"removeClass":"addClass"]("rounded-right")}function rule_join_radio(e){$("#rules").css("display","any"==e?"none":"block")}function rule_adv_switch(e,t){var i=(t=$(t)).hasClass("hide"),e=$("#rule_advanced"+e);i?(e.get(0).style.display="none",t.removeClass("hide").addClass("show")):(e.get(0).style.display="",t.removeClass("show").addClass("hide"))}function rule_mime_select(e){var t=$("#rule_mime_type"+e),e=$("#rule_mime_param"+e+"_list");e.length&&(e[0].style.display="param"==t.val()?"":"none")}function action_type_select(e){var t,i=document.getElementById("action_type"+e).value,a={},s={mailbox:document.getElementById("action_mailbox"+e),target:document.getElementById("redirect_target"+e),target_area:document.getElementById("action_target_area"+e),flags:document.getElementById("action_flags"+e),vacation:document.getElementById("action_vacation"+e),forward:document.getElementById("action_forward"+e),set:document.getElementById("action_set"+e),notify:document.getElementById("action_notify"+e),addheader:document.getElementById("action_addheader"+e),deleteheader:document.getElementById("action_deleteheader"+e)};for(t in"fileinto"==i||"fileinto_copy"==i?a.mailbox=1:"redirect"==i||"redirect_copy"==i?a.target=1:i.match(/^reject|ereject$/)?a.target_area=1:i.match(/^(add|set|remove)flag$/)?a.flags=1:i.match(/^(vacation|forward|set|notify|addheader|deleteheader)$/)&&(a[i]=1),s)s[t]&&(s[t].style.display=a[t]?"":"none")}function vacation_action_select(){var e=$("#vacation_action").val();$("#action_target_span")["discard"==e||"keep"==e?"hide":"show"]()}function smart_field_init(i){if(window.UI&&UI.smart_field_init)return UI.smart_field_init(i);var e=i.id+"_list",a=$('<span class="listarea"></span>'),t=i.value?i.value.split("\n"):[""];$("#"+e).length||($.each(t,function(e,t){a.append(smart_field_row(t,e,i))}),a.attr("id",e),(i=$(i)).attr("disabled")?a.hide():i.prop("disabled",!0),i.data("hidden")&&a.hide(),i.after(a),i.hasClass("error")&&(a.addClass("error"),rcmail.managesieve_tip_register([[e,i.data("tip-class"),i.data("tip-msg")]])))}function smart_field_row(e,t,a){var i=$('<span class="listelement"><span class="reset"></span><input type="text"></span>'),e={value:e,name:a.name+"[]",size:$(a).data("size"),title:a.title,placeholder:$(a).attr("placeholder")};i.find("input").attr(e).keydown(function(e){var t=$(this);if(13==e.which){var i=smart_field_row("",(new Date).getTime(),a);t.parent().after(i),$("input",i).focus()}else if((8==e.which||46==e.which)&&""==t.val()){t=t.parent();if(1<t.parent().children().length)return(t.prev().length?t.prev():t.next()).children("input").focus(),t.remove(),!1}});return $('span[class="reset"]',i).click(function(){var e=$(this.parentNode);1<e.parent().children().length?e.remove():$("input",e).val("").focus()}),i}function smart_field_reset(i,e){if(window.UI&&UI.smart_field_reset)return UI.smart_field_reset(i,e);var t=i.id+"_list",e=e.length?e:[""];area=$("#"+t),area.empty(),$.each(e,function(e,t){area.append(smart_field_row(t,e,i))})}function sieve_formattime(e,t){for(var i,a="",s=rcmail.env.time_format||"H:i",n=0;n<s.length;n++)switch(i=s.charAt(n)){case"a":a+=12<=e?"pm":"am";break;case"A":a+=12<=e?"PM":"AM";break;case"g":case"h":a+=("h"==i&&e<10?"0":"")+e;break;case"G":a+=e;break;case"H":a+=(e<10?"0":"")+e;break;case"i":a+=(t<10?"0":"")+t;break;case"s":a+="00";default:a+=i}return a}function sieve_form_init(){var e=rcmail.gui_objects.sieveform;"plugin.managesieve"==rcmail.env.action&&"mail"==rcmail.env.task&&parent.rcmail.managesieve_dialog_resize(e),$('input[type="text"]',e).first().focus(),$('textarea[data-type="list"]',e).each(function(){smart_field_init(this)}),$('[name^="_header"]',e).each(function(){/([0-9]+)$/.test(this.id)&&rule_header_select(RegExp.$1)}),$.datepicker&&rcmail.env.date_format&&($.datepicker.setDefaults({dateFormat:rcmail.env.date_format,changeMonth:!0,showOtherMonths:!0,selectOtherMonths:!0,onSelect:function(e){$(this).focus().val(e)}}),$("input.datepicker").datepicker()),$("#vacation_timefrom, #vacation_timeto").attr("autocomplete","off").autocomplete({delay:100,minLength:1,source:function(e,t){for(var i=[],a=0;a<24;a++)i.push(sieve_formattime(a,0));return i.push(sieve_formattime(23,59)),t(i)},open:function(e,t){var i=$(this),a=i.val(),s=i.autocomplete("widget").css("width","10em"),n=i.data("ui-autocomplete").menu;a&&a.length&&s.children().each(function(){var e=$(this);0==e.text().indexOf(a)&&n._scrollIntoView(e)})},select:function(e,t){return $(this).val(t.item.value),!1}}).click(function(){$(this).autocomplete("search",$(this).val()||" ")}),$("input.error").each(function(){String(this.id).match(/([0-9]+)$/)&&$("#ruleadv"+RegExp.$1+".show").click()})}var cmeditor;function cmCreateErrorElem(e){var t=document.createElement("div");return t.style.color="#822",t.innerHTML="●",t.title=e,t}function cmScrollToError(){var e=$(".CodeMirror-lines .line-error"),t=$(".CodeMirror-scroll");e.parent();t.scrollTop(e.offset().top-t.offset().top-Math.round(t.height()/2))}function sieve_raw_editor_init(){var e=document.getElementById("rawfiltersettxt");e&&!cmeditor&&(cmeditor=CodeMirror.fromTextArea(e,{mode:"sieve",lineNumbers:!0,gutters:["CodeMirror-linenumbers","errorGutter"],styleActiveLine:!0}),$.each(rcmail.env.sieve_errors||[],function(e,t){var i=Number(t.line)-1;cmeditor.addLineClass(i,"background","line-error"),cmeditor.setGutterMarker(i,"errorGutter",cmCreateErrorElem(t.msg)),e||cmScrollToError()}))}window.rcmail&&rcmail.addEventListener("init",function(e){var t;"mail"==rcmail.env.task&&("show"!=rcmail.env.action?rcmail.env.message_commands.push("managesieve-create"):rcmail.enable_command("managesieve-create",!0)),"mail"!=rcmail.env.task&&!rcmail.env.action.startsWith("plugin.managesieve")||rcmail.env.framed||(rcmail.env.ms_tip_layer=$('<div id="managesieve-tip" class="popupmenu"></div>'),rcmail.env.ms_tip_layer.appendTo(document.body)),rcmail.register_command("plugin.managesieve-save",function(){rcmail.managesieve_save()}),rcmail.register_command("plugin.managesieve-act",function(){rcmail.managesieve_act()}),rcmail.register_command("plugin.managesieve-add",function(){rcmail.managesieve_add()}),rcmail.register_command("plugin.managesieve-del",function(){rcmail.managesieve_del()}),rcmail.register_command("plugin.managesieve-move",function(){rcmail.managesieve_move()}),rcmail.register_command("plugin.managesieve-setadd",function(){rcmail.managesieve_setadd()}),rcmail.register_command("plugin.managesieve-setdel",function(){rcmail.managesieve_setdel()}),rcmail.register_command("plugin.managesieve-setact",function(){rcmail.managesieve_setact()}),rcmail.register_command("plugin.managesieve-setget",function(){rcmail.managesieve_setget()}),rcmail.register_command("plugin.managesieve-seteditraw",function(){rcmail.managesieve_seteditraw()}),rcmail.env.action.startsWith("plugin.managesieve")&&(rcmail.gui_objects.sieveform?(rcmail.enable_command("plugin.managesieve-save",!0),sieve_form_init()):rcmail.gui_objects.sievesetrawform?(rcmail.enable_command("plugin.managesieve-save",!0),sieve_raw_editor_init()):(rcmail.enable_command("plugin.managesieve-add",!rcmail.env.sieveconnerror&&-1==$.inArray("new_filter",rcmail.env.managesieve_disabled_actions)),rcmail.enable_command("plugin.managesieve-setadd",!rcmail.env.sieveconnerror&&-1==$.inArray("new_set",rcmail.env.managesieve_disabled_actions))),t=rcmail.env.currentset,rcmail.gui_objects.filterslist&&(rcmail.filters_list=new rcube_list_widget(rcmail.gui_objects.filterslist,{multiselect:!1,draggable:!0,keyboard:!0}),rcmail.filters_list.addEventListener("select",function(e){rcmail.managesieve_select(e)}).addEventListener("keypress",function(e){rcmail.list_keypress(e,{del:"plugin.managesieve-del"})}).addEventListener("dragstart",function(e){rcmail.managesieve_dragstart(e)}).addEventListener("dragend",function(e){rcmail.managesieve_dragend(e)}).addEventListener("initrow",function(e){e.obj.onmouseover=function(){rcmail.managesieve_focus_filter(e)},e.obj.onmouseout=function(){rcmail.managesieve_unfocus_filter(e)}}).init()),rcmail.gui_objects.filtersetslist&&(rcmail.filtersets_list=new rcube_list_widget(rcmail.gui_objects.filtersetslist,{multiselect:!1,draggable:!1,keyboard:!0}),rcmail.filtersets_list.init().focus(),null!=t&&($("#filterset-name").text(t),t=rcmail.managesieve_setid(t),rcmail.filtersets_list.select(t)),rcmail.filtersets_list.addEventListener("select",function(e){rcmail.managesieve_setselect(e)}),t=rcmail.filtersets_list.rowcount,rcmail.enable_command("plugin.managesieve-set",!0),rcmail.enable_command("plugin.managesieve-setact",0<t&&-1==$.inArray("enable_disable_set",rcmail.env.managesieve_disabled_actions)),rcmail.enable_command("plugin.managesieve-setget",0<t&&-1==$.inArray("download_set",rcmail.env.managesieve_disabled_actions)),rcmail.enable_command("plugin.managesieve-setdel",1<t&&-1==$.inArray("delete_set",rcmail.env.managesieve_disabled_actions)),rcmail.enable_command("plugin.managesieve-seteditraw",0<t&&rcmail.env.raw_sieve_editor),$("tr",rcmail.gui_objects.filtersetslist).each(function(e,t){rcmail.managesieve_fixdragend(t)})))}),rcube_webmail.prototype.managesieve_add=function(){this.load_managesieveframe("_nav=hide",!0)},rcube_webmail.prototype.managesieve_del=function(){var s=this.filters_list.get_single_selection();this.confirm_dialog(this.get_label("managesieve.filterdeleteconfirm"),"delete",function(e,t){var i="_act=delete&_fid="+t.filters_list.rows[s].uid,a=t.set_busy(!0,"loading");t.http_post("plugin.managesieve-action",i,a)})},rcube_webmail.prototype.managesieve_act=function(){var e=this.filters_list.get_single_selection(),t=this.set_busy(!0,"loading");this.http_post("plugin.managesieve-action","_act=act&_fid="+this.filters_list.rows[e].uid,t)},rcube_webmail.prototype.managesieve_select=function(e){var t=e.get_single_selection();null!=t&&(t=e.rows[t].uid,this.load_managesieveframe("_fid="+t));t=void 0!==t&&null!=t;this.enable_command("plugin.managesieve-act",t),this.enable_command("plugin.managesieve-del",t&&-1==$.inArray("delete_filter",rcmail.env.managesieve_disabled_actions))},rcube_webmail.prototype.managesieve_setselect=function(e){this.enable_command("plugin.managesieve-setdel",1<e.rowcount&&-1==$.inArray("delete_set",rcmail.env.managesieve_disabled_actions)),this.enable_command("plugin.managesieve-setact",0<e.rowcount&&-1==$.inArray("enable_disable_set",rcmail.env.managesieve_disabled_actions)),this.enable_command("plugin.managesieve-setget",0<e.rowcount&&-1==$.inArray("delete_set",rcmail.env.managesieve_disabled_actions)),this.enable_command("plugin.managesieve-seteditraw",0<e.rowcount&&this.env.raw_sieve_editor),rcmail.env.contextmenu_opening||(this.show_contentframe(!1),this.filters_list.clear(!0),null!=(e=e.get_single_selection())&&(this.managesieve_list(this.env.filtersets[e]),$("#filterset-name").text(this.env.filtersets[e])))},rcube_webmail.prototype.managesieve_rowid=function(e){var t,i=this.filters_list.rows;for(t in i)if(null!=i[t]&&i[t].uid==e)return t},rcube_webmail.prototype.managesieve_setid=function(e){for(var t in this.env.filtersets)if(this.env.filtersets[t]==e)return t},rcube_webmail.prototype.managesieve_list=function(e){var t=this.set_busy(!0,"loading");this.http_post("plugin.managesieve-action","_act=list&_set="+urlencode(e),t)},rcube_webmail.prototype.managesieve_setget=function(){var e=this.filtersets_list.get_single_selection(),e=this.env.filtersets[e];this.goto_url("plugin.managesieve-action",{_act:"setget",_set:e},!1,!0)},rcube_webmail.prototype.managesieve_setact=function(){var e=this.filtersets_list.get_single_selection(),t=this.set_busy(!0,"loading"),i=this.env.filtersets[e],e=$("#rcmrow"+e).hasClass("disabled")?"setact":"deact";this.http_post("plugin.managesieve-action","_act="+e+"&_set="+urlencode(i),t)},rcube_webmail.prototype.managesieve_setdel=function(){var s=this.filtersets_list.get_single_selection();this.confirm_dialog(this.get_label("managesieve.setdeleteconfirm"),"delete",function(e,t){var i=t.env.filtersets[s],a=t.set_busy(!0,"loading");t.http_post("plugin.managesieve-action","_act=setdel&_set="+urlencode(i),a)})},rcube_webmail.prototype.managesieve_seteditraw=function(){var e=this.filtersets_list.get_single_selection(),e=this.env.filtersets[e];this.load_managesieveframe("_nav=hide&_seteditraw=1&_set="+urlencode(e),!0)},rcube_webmail.prototype.managesieve_setadd=function(){this.load_managesieveframe("_nav=hide&_newset=1",!0)},rcube_webmail.prototype.managesieve_updatelist=function(e,t){switch(this.set_busy(!0),e){case"del":var i=t.id;(s=this.filters_list).remove_row(this.managesieve_rowid(t.id)),this.show_contentframe(!1),this.reset_filters_list(),$("tr",this.filters_list.list).each(function(){var e;"none"!=this.style.display?(e=this.id.substr(6),$(this).off(),i<e&&(this.uid=String(e-1),$(this).attr("id","rcmrow"+this.uid))):$(this).detach()}),s.init();break;case"update":var a=$("#rcmrow"+this.managesieve_rowid(t.id));t.name&&$("td",a).text(t.name),t.disabled?a.addClass("disabled"):a.removeClass("disabled"),$("#fenabled",$("iframe").contents()).prop("checked",!t.disabled);break;case"add":var s=this.filters_list,a=$('<tr><td class="name"></td></tr>');$("td",a).text(t.name),a.attr("id","rcmrow"+t.id),t.disabled&&a.addClass("disabled"),s.insert_row(a.get(0)),s.highlight_row(t.id),this.enable_command("plugin.managesieve-del",-1==$.inArray("delete_rule",rcmail.env.managesieve_disabled_actions)),this.enable_command("plugin.managesieve-act",!0);break;case"list":var n,r,l,o,s=this.filters_list;for(n in t.clear&&s.clear(),t.list)o=t.list[n],r=document.createElement("TR"),l=document.createElement("TD"),$(l).text(o.name),l.className="name",r.id="rcmrow"+o.id,o.class&&(r.className=o.class),r.appendChild(l),s.insert_row(r);t.set?s.highlight_row(t.set):this.enable_command("plugin.managesieve-del","plugin.managesieve-act",!1);break;case"setact":i=this.managesieve_setid(t.name),a=$("#rcmrow"+i);t.active?(t.all&&$("tr",this.gui_objects.filtersetslist).addClass("disabled"),a.removeClass("disabled")):a.addClass("disabled");break;case"setdel":i=this.managesieve_setid(t.name);this.filters_list.clear(),this.show_contentframe(!1),this.enable_command("plugin.managesieve-setdel","plugin.managesieve-setact","plugin.managesieve-setget","plugin.managesieve-seteditraw",!1),this.filtersets_list.remove_row(i,!0),delete this.env.filtersets[i];break;case"setadd":var c,i="S"+(new Date).getTime(),s=this.filtersets_list,a=$('<tr class="disabled"><td class="name"></td></tr>');$("td",a).text(t.name),a.attr("id","rcmrow"+i),this.env.filtersets[i]=t.name,s.insert_row(a.get(0)),t.index!=s.rowcount-1&&(a.detach(),c=$("tr:visible",s.list).get(t.index),a.insertBefore(c)),s.select(i),this.managesieve_fixdragend(a);break;case"refresh":this.reset_filters_list(!0)}this.set_busy(!1)},rcube_webmail.prototype.reset_filters_list=function(e){this.filters_list.clear_selection(),this.enable_command("plugin.managesieve-act","plugin.managesieve-del",!1),e&&(e=this.filtersets_list.get_single_selection(),this.filters_list.clear(!0),this.managesieve_list(this.env.filtersets[e]))},rcube_webmail.prototype.load_managesieveframe=function(e,t){t&&this.reset_filters_list();t=this.get_frame_window(this.env.contentframe),e=this.url("plugin.managesieve-action","_framed=1"+(e?"&"+e:""));t&&this.location_href(e,t,!0)},rcube_webmail.prototype.managesieve_dragstart=function(e){var t=this.filters_list.get_single_selection();this.drag_active=!0,this.drag_filter=t},rcube_webmail.prototype.managesieve_dragend=function(e){var t;this.drag_active&&(this.drag_filter_target&&(t=this.set_busy(!0,"loading"),this.show_contentframe(!1),this.http_post("plugin.managesieve-action","_act=move&_fid="+this.drag_filter+"&_to="+this.drag_filter_target,t)),this.drag_active=!1)},rcube_webmail.prototype.managesieve_fixdragend=function(e){var t=this;$(e).on("mouseup"+(bw.iphone||bw.ipad?" touchend":""),function(e){t.drag_active&&t.filters_list.drag_mouse_up(e)})},rcube_webmail.prototype.managesieve_focus_filter=function(e){var t=e.id.replace(/^rcmrow/,"");this.drag_active&&t!=this.drag_filter&&(this.drag_filter_target=t,$(e.obj).addClass(t<this.drag_filter?"filtermoveup":"filtermovedown"))},rcube_webmail.prototype.managesieve_unfocus_filter=function(e){this.drag_active&&($(e.obj).removeClass("filtermoveup filtermovedown"),this.drag_filter_target=null)},rcube_webmail.prototype.managesieve_save=function(){var e,t;"plugin.managesieve-vacation"!=this.env.action?"plugin.managesieve-forward"!=this.env.action?this.gui_objects.sieveform?(parent.rcmail&&parent.rcmail.filters_list&&"filtersetform"!=this.gui_objects.sieveform.name&&(null!=(e=parent.rcmail.filters_list.get_single_selection())&&(this.gui_objects.sieveform.elements._fid.value=parent.rcmail.filters_list.rows[e].uid)),this.gui_objects.sieveform.submit()):this.gui_objects.sievesetrawform&&this.gui_objects.sievesetrawform.submit():(t=$(this.gui_objects.sieveform).serialize(),this.http_post("plugin.managesieve-forward",t,this.display_message(this.get_label("managesieve.forward.saving"),"loading"))):(t=$(this.gui_objects.sieveform).serialize(),this.http_post("plugin.managesieve-vacation",t,this.display_message(this.get_label("managesieve.vacation.saving"),"loading")))},rcube_webmail.prototype.managesieve_ruleadd=function(e){this.http_post("plugin.managesieve-action","_act=ruleadd&_rid="+e)},rcube_webmail.prototype.managesieve_rulefill=function(e,t,i){var a;""!=e&&(a=$("#rules")[0],e=$("<div>").attr({class:"rulerow",id:"rulerow"+t}).html(e),this.managesieve_insertrow(a,e,i),$('textarea[data-type="list"]',e).each(function(){smart_field_init(this)}),this.managesieve_formbuttons(a))},rcube_webmail.prototype.managesieve_ruledel=function(a){$("#ruledel"+a).hasClass("disabled")||this.confirm_dialog(this.get_label("managesieve.ruledeleteconfirm"),"delete",function(e,t){var i=document.getElementById("rulerow"+a);i.parentNode.removeChild(i),t.managesieve_formbuttons(document.getElementById("rules"))})},rcube_webmail.prototype.managesieve_actionadd=function(e){this.http_post("plugin.managesieve-action","_act=actionadd&_aid="+e)},rcube_webmail.prototype.managesieve_actionfill=function(e,t,i){var a;""!=e&&(a=$("#actions")[0],e=$("<div>").attr({class:"actionrow",id:"actionrow"+t}).html(e),this.managesieve_insertrow(a,e,i),$('textarea[data-type="list"]',e).each(function(){smart_field_init(this)}),this.managesieve_formbuttons(a))},rcube_webmail.prototype.managesieve_actiondel=function(a){$("#actiondel"+a).hasClass("disabled")||this.confirm_dialog(this.get_label("managesieve.actiondeleteconfirm"),"delete",function(e,t){var i=document.getElementById("actionrow"+a);i.parentNode.removeChild(i),t.managesieve_formbuttons(document.getElementById("actions"))})},rcube_webmail.prototype.managesieve_insertrow=function(e,t,i){i=$("#"+("rules"==$(e).attr("id")?"rulerow":"actionrow")+i)[0];i?$(t).insertAfter(i):$(e).append(t),this.triggerEvent("managesieve.insertrow",{obj:t})},rcube_webmail.prototype.managesieve_formbuttons=function(e){e=$("a.delete",e);e.removeClass("disabled"),1==e.length&&e.addClass("disabled")},rcube_webmail.prototype.managesieve_vacation_addresses=function(e){var t=this.set_busy(!0,"loading");this.http_post("plugin.managesieve-action",{_act:"addresses",_aid:e},t)},rcube_webmail.prototype.managesieve_vacation_addresses_update=function(e,t){smart_field_reset($("#vacation_addresses,#action_addresses"+(e||"")).get(0),t)},rcube_webmail.prototype.managesieve_tip_register=function(e){if(window.UI&&UI.form_errors)return UI.form_errors(e);var t,r=parent.rcmail,l=(r?parent.rcmail:rcmail).env.ms_tip_layer;for(t in e)$("#"+e[t][0]).data("tip-class",e[t][1]).data("tip-msg",e[t][2]).mouseleave(function(e){l.hide()}).mouseenter(function(e){var t=$(this),i=t.offset(),a=i.left,s=i.top-12,n=t.width(),t=$("<span>").addClass(t.data("tip-class")).text(t.data("tip-msg"));r&&(s+=(i=$("mail"==rcmail.env.task?"#sievefilterform > iframe":"#filter-box",parent.document).offset()).top,a+=i.left),l.html("").append(t),s-=l.height(),l.css({left:a,top:s,minWidth:n-2+"px"}).show()})},rcube_webmail.prototype.managesieve_create=function(e){var a,s,n,t;e||"show"==this.env.action?this.env.sieve_headers&&this.env.sieve_headers.length&&(t={},a=this.get_label("managesieve.newfilter"),s=$('<div id="sievefilterform" class="propform"></div>'),n={minWidth:600,minHeight:250,height:300},s.append($("<fieldset>").append($("<legend>").text(this.get_label("managesieve.usedata"))).append($('<ul class="proplist">'))),$.each(this.env.sieve_headers,function(e,t){var i={type:"checkbox",name:"headers[]",id:"sievehdr"+e,value:e,checked:!0},a=rcmail.env.sieve_headers[e][0]+": "+rcmail.env.sieve_headers[e][1];$("ul",s).append($("<li>").append($("<input>").attr(i)).append($("<label>").attr("for","sievehdr"+e).text(a)))}),t[this.get_label("managesieve.nextstep")]=function(){var t,e,i=$('input[name="headers[]"]:checked',s);i.length?(t=rcmail.get_task_url("mail"),t=rcmail.add_url(t,"_action","plugin.managesieve"),t=rcmail.add_url(t,"_framed",1),i.map(function(){var e=rcmail.env.sieve_headers[this.value];t=rcmail.add_url(t,"r["+this.value+"]",e[0]+":"+e[1])}),e={},i=$("<iframe>").attr({src:t,frameborder:0}),e[rcmail.get_label("save")]=function(){$("iframe",s).get(0).contentWindow.rcmail.managesieve_save()},e[rcmail.get_label("cancel")]=function(){$(this).dialog("destroy")},s.dialog("destroy"),rcmail.env.managesieve_dialog=s=rcmail.show_popup_dialog(i,a,e,$.extend(n,{button_classes:["mainaction save","cancel"]}))):rcmail.alert_dialog(rcmail.get_label("managesieve.nodata"))},t[this.get_label("cancel")]=function(){$(this).dialog("destroy")},this.env.managesieve_dialog=s=this.show_popup_dialog(s,a,t,$.extend(n,{button_classes:["mainaction next","cancel"]}))):(e=this.message_list.get_single_selection(),t=this.set_busy(!0,"loading"),this.http_post("plugin.managesieve-action",{_uid:e},t))},rcube_webmail.prototype.managesieve_dialog_close=function(){this.env.managesieve_dialog.dialog("destroy")},rcube_webmail.prototype.managesieve_dialog_resize=function(e){var t=this.env.managesieve_dialog,i=$(window),a=$(e);width=$("fieldset",e).first().width(),height=a.height(),w=i.width(),h=i.height(),height<100||t.dialog("option",{height:Math.min(h-20,height+120),width:Math.min(w-20,width+65)})};