view plugins/advanced_search/advanced_search.min.js @ 34:50ac5484d514

one fix to distro
author Charlie Root
date Sun, 27 May 2018 16:53:56 -0400
parents
children
line wrap: on
line source

(function($){$.stack={date_criteria:{},flag_criteria:{},email_criteria:{},row:null,messages:null};var search_loading="";$(document).on("change","#button_display_option",function(e){var img=$("img",$(this).closest("p"));var src=img.attr("src");if(this.value=="messagemenu"){src=src.replace("menu_location_b.jpg","menu_location_a.jpg")}else{src=src.replace("menu_location_a.jpg","menu_location_b.jpg")}img.attr("src",src)});$(document).on("change","#_show_message_mbox_info, #_show_message_label_header",function(e){var img=$("img",$(this).closest("p"));if($(this).is(":checked")){img.removeClass("disabled")}else{img.addClass("disabled")}});rcmail.addEventListener("plugin.show",function(r){$.stack.date_criteria=r.date_criteria;$.stack.flag_criteria=r.flag_criteria;$.stack.email_criteria=r.email_criteria;$.stack.row=r.row;$.stack.html=r.html;var $html=$(r.html);var saved_searches_label=rcmail.gettext("saved_searches","advanced_search");var saved_searches='<span class="saved_searches"> <label for="select_saved_search">'+saved_searches_label+': <select name="select_saved_search" id="select_saved_search"><option value=""></option></select></label></span>';title=$("<div>"+r.title+saved_searches+"<div>");var saved_searches_select=$("[name=select_saved_search]",title);if(r.saved_searches.length){var i;for(i in r.saved_searches){saved_searches_select.append('<option value="'+r.saved_searches[i]+'">'+r.saved_searches[i]+"</option>")}}$html.dialog({width:640,height:300,resizable:true,draggable:true,title:title,dialogClass:"advanced_search_dialog",close:function(){$("body").css("overflow","auto")},create:function(){$("body").css("overflow","hidden")}});saved_searches_select.bind("blur click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select",function(e){e.stopPropagation()});saved_searches_select.bind("mouseenter",function(e){saved_searches_select.focus()});saved_searches_select.bind("change",function(e){var search_name=$(this).val();if(search_name==""){$("#adsearch-popup").html($.stack.html)}else{rcmail.http_request("plugin.get_saved_search",{search_name:search_name});$("[name=delete]","#adsearch-popup").show()}})});rcmail.addEventListener("plugin.load_saved_search",function(search){var $form=$("#adsearch-popup form"),$tr=$("tr",$("tbody",$form)).not(":first").not(":last"),$last=$("tr:last",$("tbody",$form));saved_search=search.search,data=[];$tr.remove();$("[name=folder]",$form).val(search.folder);$("[name=subfolder]",$form).prop("checked",search.sub_folders=="true");$("span.sub-folders",$form).css("display",search.folder=="all"?"none":"inline");var i=0;for(i;i<saved_search.length;i++){var row;if(i==0){row=$("<tr>"+$("tr:eq(1)",$.stack.html).html()+"</tr>")}else{row=$($.stack.row)}$("[name=method]",row).val(saved_search[i].method);$("[name=filter]",row).val(saved_search[i].filter);$("[name=not]",row).prop("checked",saved_search[i]["not"]=="true");$("[name=filter-exclude]",row).prop("checked",saved_search[i]["excluded"]=="true");$last.before(row);$("[name=filter]",row).trigger("change");$("[name=filter-val]",row).val(saved_search[i]["filter-val"])}});rcmail.addEventListener("plugin.advanced_search_add_header",function(evt){if($("#messagelistcontainer #rcavbox1").length==0){var Mbox=rcmail.gettext("mbox","advanced_search");$("#messagelistcontainer table.fixedcopy thead tr:first").append('<td class="mbox" id="rcavbox1"><span class="mbox">'+Mbox+"</span></td>");$("#messagelistcontainer table#messagelist thead tr:first").append('<td class="mbox" id="rcavbox2"><span class="mbox">'+Mbox+"</span></td>")}});rcmail.addEventListener("plugin.advanced_search_del_header",function(evt){$("#messagelistcontainer #rcavbox1").remove();$("#messagelistcontainer #rcavbox2").remove()});rcube_webmail.prototype.advanced_search_add_mbox=function(mbox,count,showMbox){if(!this.gui_objects.messagelist||!this.message_list){return false}var colspan=showMbox==true?9:8;$(rcmail.message_list.list).append('<tr class="aslabel_mbox"><td><span class="aslabel_found">'+count+'</span></td><td colspan="'+colspan+'">'+mbox+"</td></tr>")};rcube_webmail.prototype.advanced_search_active=function(param){var page=param.replace("_page=","");rcmail.http_request("plugin.trigger_search_pagination",{_page:page})};var get_search_data=function(){var $form=$("#adsearch-popup form"),$tr=$("tr",$("tbody",$form)).not(":first").not(":last"),data=[];if($tr.length){$tr.each(function(){var item={not:$("input[name=not]",$(this)).prop("checked"),excluded:$("input[name=filter-exclude]",$(this)).prop("checked"),filter:$("option:selected",$("select[name=filter]",$(this))).val(),"filter-val":$("input[name=filter-val]",$(this)).val()};if($("select[name=method]",$(this)).length){item.method=$("option:selected",$("select[name=method]",$(this))).val()}data.push(item)})}return data};$(document).on("click","input[name=search]",function(e){e.preventDefault();rcmail.clear_message_list();$.stack.messages=$("tr",$("tbody","#messagelist"));var $form=$("#adsearch-popup form");search_loading=rcmail.set_busy(true,"loading");rcmail.http_request("plugin.trigger_search",{search:get_search_data(),current_folder:rcmail.env.mailbox,folder:$("select[name=folder]",$form).val(),sub_folders:$("input[name=subfolder]",$form).prop("checked")});$("#adsearch-popup").closest("div.ui-dialog-content").dialog("close")});$(document).on("click","input[name=reset]",function(e){e.preventDefault();$("#adsearch-popup").html($.stack.html);$("[name=select_saved_search]").val("")});$(document).on("click","button[name=add]",function(e){e.preventDefault();$(this).closest("tr").after($.stack.row)});$(document).on("click","button[name=delete]",function(e){e.preventDefault();$(this).closest("tr").remove()});$(document).on("click","select[name=filter]",function(e){var $row_input=$(this).nextUntil("tr","input[name=filter-val]"),old_avs_type=$row_input.data("avs_type");if($.inArray($(this).val(),$.stack.date_criteria)>=0){if(old_avs_type!=="date"){$row_input.val("");$row_input.datepicker({dateFormat:rcmail.env.date_format})}$row_input.data("avs_type","date")}else if($.inArray($(this).val(),$.stack.email_criteria)>=0){if(old_avs_type!=="email"){rcmail.init_address_input_events($row_input,"");rcmail.addEventListener("autocomplete_insert",function(e){e.field.value=e.insert.replace(/.*<(\S*?@\S*?)>.*/,"$1")})}$row_input.data("avs_type","email")}else if($.inArray($(this).val(),$.stack.flag_criteria)>=0){if(old_avs_type!=="flag_criteria"){$row_input.val("");$row_input.hide()}$row_input.data("avs_type","flag_criteria")}else{$row_input.data("avs_type","none")}switch(old_avs_type){case"date":if($row_input.data("avs_type")!=="date"&&$row_input.hasClass("hasDatepicker")){$row_input.datepicker("destroy")}break;case"email":if($row_input.data("avs_type")!=="email"){$row_input.removeAttr("autocomplete");$row_input.unbind("keydown");$row_input.unbind("keypress")}break;case"flag_criteria":if($row_input.data("avs_type")!=="flag_criteria"&&!$row_input.is(":visible")){$row_input.show()}break}});$(document).on("click","select[name=folder]",function(e){$("span.sub-folders",$(this).closest("form")).css("display",$(this).val()=="all"?"none":"inline")});$(document).on("click","a.icon.advanced-search, a.button.advanced-search",function(e){e.preventDefault();if(!$("#adsearch-popup").length){rcmail.http_request("plugin.display_advanced_search")}else{$("#adsearch-popup").closest("div.ui-dialog-content").dialog("open")}});$(document).on("keydown keypress","#adsearch-popup",function(e){e.stopPropagation()});$(document).on("click","#adsearch-popup input.delete_search",function(e){e.stopPropagation();e.preventDefault();var search_name=$("[name=select_saved_search]").val();var txt={};txt["cancel"]=rcmail.get_label("advanced_search.cancel");txt["delete"]=rcmail.get_label("advanced_search.delete");$("<p><strong>"+search_name+"</strong></p>").dialog({resizable:true,height:180,modal:true,title:rcmail.gettext("advanced_search.deletesearch"),buttons:[{text:txt["delete"],click:function(){rcmail.http_request("plugin.delete_search",{search_name:search_name});$("[value="+search_name+"]","[name=select_saved_search]").remove();$("[name=select_saved_search]").val("").trigger("change");$(this).dialog("close")}},{text:txt["cancel"],click:function(){$(this).dialog("close")}}]})});$(document).on("click","#save_the_search",function(e){e.stopPropagation();e.preventDefault();var labelName=rcmail.gettext("name","advanced_search");var labelSave=rcmail.gettext("save","advanced_search");var labelCancel=rcmail.gettext("cancel","advanced_search");var save_search="<table>"+"  <tr><td>"+labelName+' </td><td><input type="text" name="search_name" /></td></tr>'+'  <tr><td></td><td><input type="submit" class="button mainaction" value="'+labelSave+'" /> <input type="reset" class="button reset" value="'+labelCancel+'" /></td></tr>'+"</table>";save_search=$(save_search);$("[name=search_name]",save_search).val($("[name=select_saved_search]").val());save_search.dialog({title:rcmail.gettext("advanced_search.save_the_search"),dialogClass:"saveTheSearch",close:function(){$(this).remove()},width:$("#adsearch-popup").width(),height:$("#adsearch-popup").height(),modal:true});$(".mainaction",save_search).bind("click",function(e){e.preventDefault();e.stopPropagation();var search_name=$("[name=search_name]",save_search).val();var $form=$("#adsearch-popup form");rcmail.http_request("plugin.save_search",{search:get_search_data(),search_name:search_name,folder:$("select[name=folder]",$form).val(),sub_folders:$("input[name=subfolder]",$form).prop("checked")});var isNewSearch=true;$("[name=select_saved_search] option").each(function(e){if($(this).attr("value")==search_name){isNewSearch=false}});if(isNewSearch){$("[name=select_saved_search]").append('<option value="'+search_name+'">'+search_name+"</option>");$("[name=select_saved_search]").val(search_name)}save_search.dialog("close")});$(".reset",save_search).bind("click",function(e){e.preventDefault();e.stopPropagation();save_search.dialog("close")})});var advanced_search_redirect_draft_messages=function(check){if(rcmail.env.search_request=="advanced_search_active"){if(rcmail.task=="mail"){uid=rcmail.get_single_uid();if(uid&&(!rcmail.env.uid||uid!=rcmail.env.uid||check)){if(rcmail.env.mailbox==rcmail.env.drafts_mailbox||check){url={_mbox:this.env.mailbox,_search:"advanced_search_active"};url[this.env.mailbox==this.env.drafts_mailbox?"_draft_uid":"_uid"]=uid;this.goto_url("compose",url,true)}}}return true}return false};var advanced_search_perform_action=function(props,action){var raw_selection=rcmail.message_list.get_selection();var md5_folders=rcmail.env.as_md5_folders;var i;var selections={};for(i in raw_selection){raw_selection[i];var parts=raw_selection[i].split("__MB__");var mid=parts[0];var md5Mbox=parts[1];var mbox=md5_folders[md5Mbox];if(!selections[mbox]){selections[mbox]=[]}selections[mbox].push(mid)}if(i!=undefined){if(rcmail.env.action=="show"){lock=rcmail.set_busy(true,"movingmessage")}else{rcmail.show_contentframe(false)}rcmail.enable_command(rcmail.env.message_commands,false);var j;for(j in selections){rcmail.select_folder(j,"",true);rcmail.env.mailbox=j;var uids=selections[j].join(",");var lock=false,post_data=rcmail.selection_post_data({_target_mbox:props.id,_uid:uids});rcmail._with_selected_messages(action,post_data,lock)}rcmail.env.uid=undefined;rcmail.message_list.selection=[]}};var advanced_search_check_multi_mbox=function(){var raw_selection=rcmail.message_list.get_selection();var md5_folders=rcmail.env.as_md5_folders;var i;var mcount=0;var selections={};for(i in raw_selection){raw_selection[i];var parts=raw_selection[i].split("__MB__");var mid=parts[0];var md5Mbox=parts[1];var mbox=md5_folders[md5Mbox];if(!selections[mbox]){selections[mbox]=[];mcount++}selections[mbox].push(mid)}return{isMulti:mcount>1,selections:selections}};rcmail.addEventListener("init",function(){rcmail.register_command("plugin.advanced_search",true,true);rcmail.enable_command("plugin.advanced_search",true);rcmail.addEventListener("plugin.search_complete",function(r){rcmail.set_busy(false,"loading",search_loading);rcmail.addEventListener("beforeedit",function(command){rcmail.env.framed=true;if(advanced_search_redirect_draft_messages(true)){return false}});rcmail.message_list.addEventListener("dblclick",function(o){advanced_search_redirect_draft_messages()});rcmail.message_list.addEventListener("select",function(list){if(rcmail.env.search_request=="advanced_search_active"){if(list.selection.length==1){var parts=list.selection[0].split("__MB__");var mid=parts[0];var md5Mbox=parts[1];var mbox=rcmail.env.as_md5_folders[md5Mbox];rcmail.env.uid=mid;if(rcmail.env.mailbox!=mbox){var ex=[];li=rcmail.get_folder_li(mbox,"",true);parent=$(li).parents(".mailbox");parent.each(function(){div=$(this.getElementsByTagName("div")[0]);a=$(this.getElementsByTagName("a")[0]);if(div.hasClass("collapsed")){ex.push($(a).attr("rel"))}});for(var i=ex.length-1;i>=0;i--){rcmail.command("collapse-folder",ex[i])}rcmail.select_folder(mbox,"",true);rcmail.env.mailbox=mbox}return false}}});rcmail.addEventListener("beforemoveto",function(props){if(rcmail.env.search_request=="advanced_search_active"){advanced_search_perform_action(props,"moveto");return false}});rcmail.addEventListener("beforedelete",function(props){if(rcmail.env.search_request=="advanced_search_active"){advanced_search_perform_action(props,"delete");return false}});rcmail.addEventListener("beforemark",function(flag){if(rcmail.env.search_request=="advanced_search_active"){var res=advanced_search_check_multi_mbox();var i;var sel=res.selections;for(i in sel){var uids=sel[i].join(",");var lock=false;var post_data={_uid:uids,_flag:flag,_mbox:i,_remote:1};rcmail.http_post("mark",post_data,lock)}var raw_selection=rcmail.message_list.get_selection();for(i in raw_selection){var key=raw_selection[i];switch(flag){case"read":rcmail.message_list.rows[key].unread=0;break;case"unread":rcmail.message_list.rows[key].unread=1;break;case"flagged":rcmail.message_list.rows[key].flagged=1;break;case"unflagged":rcmail.message_list.rows[key].flagged=0;break}}var messages=[];var selections=rcmail.message_list.get_selection();var j;for(j in selections){messages.push("#rcmrow"+selections[j])}var selector=messages.join(", ");var selection=$(selector);switch(flag){case"read":selection.removeClass("unread");break;case"unread":selection.addClass("unread");break;case"flagged":selection.addClass("flagged");$("td.flag span",selection).removeClass("unflagged").addClass("flagged");break;case"unflagged":selection.removeClass("flagged");$("td.flag span",selection).removeClass("flagged").addClass("unflagged");break;default:break}return false}});rcmail.addEventListener("beforeforward",function(props){if(rcmail.env.search_request=="advanced_search_active"&&rcmail.message_list.selection.length>1){var res=advanced_search_check_multi_mbox();if(res.isMulti==true){return false}else{var i,url,sel=res.selections;for(i in sel){url="&_forward_uid="+sel[i].join(",")+"&_mbox="+i}url+="&_attachment=1&_action=compose";window.location=location.pathname+rcmail.env.comm_path+url;return false}}});rcmail.addEventListener("beforeforward-attachment",function(props){if(rcmail.env.search_request=="advanced_search_active"&&rcmail.message_list.selection.length>1){var res=advanced_search_check_multi_mbox();if(res.isMulti==true){return false}else{var i,url,sel=res.selections;for(i in sel){url="&_forward_uid="+sel[i].join(",")+"&_mbox="+i}url+="&_attachment=1&_action=compose";window.location=location.pathname+rcmail.env.comm_path+url;return false}}});rcmail.addEventListener("beforetoggle_flag",function(props){if(rcmail.env.search_request=="advanced_search_active"){var flag=$(props).hasClass("unflagged")?"flagged":"unflagged";var tr=$(props).closest("tr");var id=tr.attr("id").replace("rcmrow","");var parts=id.split("__MB__");var lock=false;var mbox=rcmail.env.as_md5_folders[parts[1]];var post_data={_uid:parts[0],_flag:flag,_mbox:mbox,_remote:1};rcmail.http_post("mark",post_data,lock);if(flag=="flagged"){tr.addClass("flagged");$("td.flag span",tr).removeClass("unflagged").addClass("flagged");rcmail.message_list.rows[id].flagged=1}else{tr.removeClass("flagged");$("td.flag span",tr).removeClass("flagged").addClass("unflagged");rcmail.message_list.rows[id].flagged=0}return false}})})})})(jQuery);