var init_tree = 0; var selected; var over; var cp_tree1; var cp_tree2; var cp_tree3; var mail_archive_url; function unorphanize(root, element) { var ok = false; var f = 0; for (var i=0; i .expandable-hitarea, .mainfoldertree > .collapsable-hitarea')){ $('.filetree span.folder.selected').removeClass('selected'); $(target).children('.folder').addClass('selected'); } $(this).addClass("folders-loading"); selected = target.attr('id'); change_folder(target.attr('id'), child.attr('title')); $.ajax({ url : "controller.php?"+ $.param( { action: "$this.imap_functions.get_folders_list", folder: target.attr('id') } ), success : function(data){ data = connector.unserialize(data); if(data) build_quota(data); } }); }).filter('.followup-messages').click(function(event, ui){ search_emails("UNDELETED KEYWORD \"$Followupflagged\""); }).end().end(); folders_html.find('[id="'+selected+'"]').children().addClass("selected"); $(".folder").not(".head_folder").not(".shared-folders").not(".shared-folders + ul .folder").parent().find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({ // DRAG DE PASTAS start : function(){ $(this).css("color", "gray"); }, stop : function(){ $(this).css("color", ""); }, revert: "invalid", helper: function(event){ if($.trim(($(this).text().split("["))[0]).length > 18) return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($(this).text().split("["))[0]).substring(0,18) + "...", type: "folder"})); return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($(this).text().split("["))[0]), type: "folder"})); }, delay: 150, refreshPositions: true, zIndex : 2700, //scroll: true, //scrollSensitivity: 100, //scrollSpeed: 100 containment: $("#divAppbox") }); $(".folder").not(".head_folder").not(".shared-folders").parent().find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").end().droppable({ //DROP DE PASTAS over : function(a, b){ //INICIO : SE A PASTA CONTER FILHAS EXPANDE over = $(this); $(this).addClass("folder-over"); if(($(this)[0] != $(this).parent().find(".head_folder")[0])) if($(this).prev()[0]) if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ setTimeout(function(){ if(over.hasClass("folder-over")){ over.prev().trigger("click"); } }, 1000); } //FIM : SE A PASTA CONTER FILHAS EXPANDE $("#content_folders").stop().scrollTo($(this), {axis:'y', margin:true, offset:-50, duration:400}); //SETA BORDA EM VOLTA DA PASTA // }, out : function(){ //RETIRA BORDA EM VOLTA DA PASTA $(this).removeClass("folder-over"); }, drop : function(event, ui){ $(this).removeClass("folder-over"); if ($(ui.draggable[0]).parent().find("input").val() == "localFolder" && $(this).parents("li").find("input").first().val() != "localFolder"){ return write_msg(get_lang("Ohh no, it isn't possible to send a folder by Archiver to My folders")); } else if ( !$(ui.draggable[0]).parent().find("input").val() && $(this).parents("li").find("input").first().val() == "localFolder") { return write_msg(get_lang("Ohh no, it isn't possible to send a folder by My folders to Archiver")); } if($(this).parent().attr('id') == undefined){ var folder_to = 'INBOX'; var to_folder_title = get_lang("Inbox"); }else{ var folder_to = $(this).parent().attr('id'); var to_folder_title = $(this).attr('title'); } var folder_to_move = ui.draggable.parent().attr('id'); var border_id = ui.draggable.find("input[type=hidden]").attr("name"); // eventnsagens : SE O DROP VIER DA LISTA DE eventNSAGENS : if(folder_to_move == "tbody_box"){ move_msgs2(get_current_folder(), 'selected', 0, folder_to, to_folder_title,true); return; } //SE FOR DE UMA PESQUISA RAPIDA else if(ui.draggable.parents('[id^="content_id_"]')[0]){ move_search_msgs("content_id_"+border_id, folder_to, to_folder_title); return; } // eventnsagens : SE O DROP VIER DE UMA ABA ABERTA else if(folder_to_move == "border_tr"){ var id_msg = border_id.split("_")[0]; folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder()); alternate_border(border_id); move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true); return; } // SE O DROP VIER DA LISTA DE PASTAS else{ var folder_to_exist = folder_to_move.split(cyrus_delimiter); folder_to_exist = folder_to+cyrus_delimiter+folder_to_exist[folder_to_exist.length-1]; //VERIFICA SE EXISTE UMA eventNSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS if(valid_tabs(ui.draggable.parent().find("li"), folder_to_move)){ return; } //FIM : VERIFICA SE EXISTE UMA eventNSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS; // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA PARA O eventSMO LOCAL if(folder_to_exist == folder_to_move){ return write_msg(get_lang("Thie folder is already in this place")); } // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA ABERTA NO momentO if(folder_to_move == get_current_folder()){ return write_msg(get_lang("It's not possible move this folder, because it is being used in the moment!")); } // VALIDA SE O USUARIO ESTA TENTANDO MOVER UMA PASTA FILHA DA PASTA ABERTA NO momentO if(ui.draggable.parent().find(".selected")[0]){ return write_msg(get_lang("It's not possible move this folder, because its subfolder is being used in the moment!")); } // VALIDA SE O USUARIO ESTA TENTANDO MOVER UMA PASTA PAI PARA DENTRO DE UMA FILHA if(ui.draggable.parent().find('[id="'+folder_to+'"]')[0]){ return write_msg(get_lang("It's not possible to move this folder to its subfolders!")); } if($('[id="'+folder_to_exist+'"]').length){ return write_msg(get_lang("Can not move this folder to this location, because the target has already a folder with this name")); } $(this).addClass("folders-loading"); if($(this).parents("li").find("input").first().val() == "localFolder"){ var idFolder = $(this).parent().attr("id").split("_")[2]; expresso_mail_archive.moveFolder(idFolder, folder_to_move.split("_")[2]); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } else { $.ajax({ url : "controller.php?"+ $.param( { action: "$this.imap_functions.move_folder", folder_to_move: folder_to_move, folder_to: folder_to } ), success : function(data){ cExecute("$this.imap_functions.get_folders_list&onload=true", force_update_menu); data = connector.unserialize(data); if(data == "Permission denied"){ write_msg(get_lang("Permission denied")); }else if(data){ write_msg(get_lang("The folder was successfully moved")); } else { write_msg(get_lang("ERROR moving your folder.")); } } }); } } } }); $(".folder").not(".shared-folders, .followup-messages").parent().find(".folder").hover( function(){ //CASO A LI NÃO TENHA UM eventNU FLUTUANTE AINDA, O eventNU É ADICIONADO! if(!$(this).children(":last").hasClass("float-menu") && !$(this).children(":last").hasClass("new_folder") && !($(this).next().hasClass("local-connect"))){ /*se houver a classe local-connect, não adiciona o botão de conectar*/ var folder_ = $(this); var folder_name; var shared = { head : false, valid : false }; if(folder_.parent().attr('id')){ folder_name = folder_.parent().attr('id').split(cyrus_delimiter); folder_name = folder_name[folder_name.length -1]; shared.valid = folder_.parent().attr('id').search("user/") == 0 ? true : false; }else folder_name = "Root"; if(shared.valid){ shared.head = folder_.parent().attr('id').split(cyrus_delimiter).length == 2 ? true : false; var folder_name_parts = folder_.parent().attr('id').split(cyrus_delimiter); var acls = shared_acls[folder_name_parts[0]+cyrus_delimiter+folder_name_parts[1]]; } html = DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", {name_folder : folder_name, flag : shared, acl : acls}); //FUNÇÃO DO eventNU FLUTUANTE EDITAR < BEGIN var esc = false; $(folder_).append(html).find(".float-menu-edit").click(function(){ var folder_id = $(this).parents(".closed:first").attr('id'); var name = $.trim($(this).parents(".closed:first").find("span:first").text().split("[")[0]); if($(this).parents(".closed:first").find("span:first").hasClass("selected")) return write_msg(get_lang("It's not possible rename this folder, because it is being used in the moment!")); if($(this).parents(".closed:first").find("span.selected").length) return write_msg(get_lang("It's not possible rename this folder, because its subfolder is being used in the moment!")); if(valid_tabs($(this).parents("li:first").find("li"), folder_id)) return; $(this).parents(".closed:first").find("span:first").empty().append(""); $(".new_folder").focus().keydown(function(event){ event.stopPropagation(); if(event.keyCode == 13){ if($(this).val() != ""){ /* Verifica se existe caracteres especiais no nome da pasta ou se existe "local_" * em parte do nome (palavra reservada para pastas locais) */ if($(this).val().match(/[\/\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi) || $(this).val().indexOf("local_") != -1){ return write_msg(get_lang("cannot create folder. try other folder name")); } var new_name = folder_id.replace(/[a-zA-Z0-9á-úÁ-Ú,=^\s_-]+$/, $(this).val()); if($('[id="'+new_name+'"]').length){ $(".folders-loading").removeClass("folders-loading"); write_msg(get_lang("Mailbox already exists")); return draw_new_tree_folder(); } $(".new_folder").parent().addClass("folders-loading"); if($(this).parents("li").find("input").first().val() == "localFolder"){ var idFolder = $(this).parents("li").first().attr("id").split("_")[2]; expresso_mail_archive.renameFolder(idFolder, new_name); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } else { $.ajax({ url : "controller.php?action=$this.imap_functions.ren_mailbox", type : "POST", data : "current="+folder_id+"&rename="+new_name, success : function(data){ data = connector.unserialize(data); if(data == "Permission denied"){ $(".folders-loading").removeClass("folders-loading"); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); return write_msg(get_lang("Permission denied")); } write_msg(get_lang("The folder was successfully rename")); cExecute("$this.imap_functions.get_folders_list&onload=true", force_update_menu); } }); } }else{ $(".new_folder").focusout(); } }else if( event.keyCode == 27){ draw_new_tree_folder(); } }).focusout(function(){ draw_new_tree_folder(); }).val(name); }) //FUNÇÃO DO eventNU FLUTUANTE EDITAR < END //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < BEGIN .end().find(".float-menu-remove").click(function(){ var folder_id = $(this).parents(".closed:first").attr('id'); var folder_name = ""+$.trim($(this).parents(".closed:first").find(".folder").text().split("[")[0])+""; if(valid_tabs($(this).parents("li:first").find("li"), folder_id)) return; $(this).parents(".closed:first").find(".folder").addClass("folders-loading"); if($(this).parents(".closed:first").find("ul").length){ $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); return write_msg(get_lang("Delete/move subfolders first")); } if($(this).parents(".closed:first").find("span.selected").length){ $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); return write_msg(get_lang("It's not possible delete this folder, because it is being used in the moment!")); } var folder_span = $(this); var confirm_text = get_lang("Do you wish to exclude the folder "); $.Zebra_Dialog(confirm_text+folder_name, { 'type': 'question', 'overlay_opacity': '0.5', 'custom_class': 'custom-zebra-filter', 'buttons': [get_lang('Yes'), get_lang('No')], 'onClose': function(caption) { if(caption == get_lang('Yes')){ if(folder_span.parents("li").find("input").first().val() == "localFolder"){ var idFolder = folder_span.parents("li").first().attr("id").split("_")[2]; expresso_mail_archive.deleteFolder(idFolder, folder_name); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } else { $.ajax({ url : "controller.php?action=$this.imap_functions.delete_mailbox", type: "POST", data : "del_past="+folder_id, success : function(data){ data = connector.unserialize(data); if(data == "Mailbox does not exist"){ $(".folders-loading").removeClass("folders-loading"); return write_msg(get_lang("Mailbox does not exist")); }else if(data == "Permission denied"){ $(".folders-loading").removeClass("folders-loading"); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); return write_msg(get_lang("Permission denied")); } write_msg(get_lang("The folder %1 was successfully removed", folder_name)); cExecute("$this.imap_functions.get_folders_list&onload=true", force_update_menu); } }); } }else{ folder_span.parents(".closed:first").find(".folder").removeClass("folders-loading"); return; } } }); /* if(!confirm(confirm_text + folder_name)){ $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); return; } */ }) //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < END //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < BEGIN .end().find(".float-menu-new").click(function(){ $(this).parents(".float-menu").hide(); var selected_li = $(this).parents(".closed:first"); if(selected_li.find("ul:first").length){ var new_folder = $("
  • ").appendTo(selected_li.find("ul:first")); if(selected_li.find(".expandable-hitarea").length){ selected_li.find(".expandable-hitarea").trigger('click'); } selected_li.find("ul:first").treeview({ add: new_folder }); }else if(selected_li.length){ var new_folder = $("").appendTo(selected_li); selected_li.treeview({ add: new_folder }); }else{ selected_li = $(this).parents(".head_folder").parent(); if($(this).parents(".head_folder").parent().find(".expandable-hitarea").length){ $(this).parents(".head_folder").parent().find(".expandable-hitarea").trigger('click'); } var new_folder = $("").appendTo(selected_li); selected_li.treeview({ add: new_folder }); } var existsIdenticalFolder = false; selected_li.find(".new_folder").Watermark("Nova Pasta").focus().keydown(function(event){ event.stopPropagation(); existsIdenticalFolder = false; var ok = false; var makeChildren = function(auxNameFolder, father){ if(auxNameFolder.length == 0) return true; if(auxNameFolder[0] == ""){ auxNameFolder.shift(); makeChildren(auxNameFolder, father); return true; } if(ok == false) expresso_mail_archive.createFolder((father ? father : "inbox"), auxNameFolder[0]); expresso_mail_archive.getFoldersList(father); for(var ii =0; ii\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi) || $(this).val().indexOf("local_") != -1){ return write_msg(get_lang("cannot create folder. try other folder name")); } if($(this).parents("li").find("input[type=hidden]").val() == "localFolder"){ $(".new_folder").parent().addClass("folders-loading"); var folderName = $(this).val(); var folder = (folderName != "" ? folderName : get_lang("New Folder")); var father = typeof(selected_li.attr('id')) != "undefined" ? selected_li.attr('id').split("_")[2] : "home"; $(this).parents(".treeview:first").find("li").each(function(){ var eachFolder = $(this).find("span:first").text().trim(); if(folder == eachFolder){ existsIdenticalFolder = true; return false; } }); if(existsIdenticalFolder){ event.stopPropagation(); write_msg(get_lang("Mailbox already exists")); draw_new_tree_folder(); return false; } if(folderName.indexOf("/") != -1){ auxNameFolder = folderName.split("/"); makeChildren(auxNameFolder, father); } else { var folder = (folderName != "" ? folderName : get_lang("New Folder")); create_new_local_folder((selected_li.attr('id') ? selected_li.attr('id') : "inbox") , folder); } cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } else { if($('[id="'+ (selected_li.attr('id')? selected_li.attr('id') : "INBOX") + cyrus_delimiter + $(this).val()+'"]').length){ $(".folders-loading").removeClass("folders-loading"); write_msg(get_lang("Mailbox already exists")); return draw_new_tree_folder(); } $(".new_folder").parent().addClass("folders-loading"); create_new_folder(($(this).val() != "" ? $(this).val() : get_lang("New Folder")), (selected_li.attr('id')? selected_li.attr('id') : "INBOX")); } }else if( event.keyCode == 27){ draw_new_tree_folder(); } }).focusout(function(){ if(!existsIdenticalFolder){ draw_new_tree_folder(); } }); }).end().find(".float-menu-export").click(function(){ //proxy_mensagens.export_all_messages($(this).parents("li:first").attr("id")) var name_box = $(this).parents("li:first").attr("id"); var name_folder = name_box.split(cyrus_delimiter)[name_box.split(cyrus_delimiter).length-1]; var hand_export = function(data){ clean_msg(); if(!data){ write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')) }else if(data["empty_folder"] || data == "empty_folder"){ write_msg(get_lang("The selected folder is empty.")); }else download_attachments(null, null, data, null,null, name_folder +'.zip'); } if($(this).parents("li:first").find("input[type=hidden]:first").val() == "localFolder"){ expresso_mail_archive.listMessages(name_box.split("_")[2]); var msgsArchive = expresso_mail_archive.messageslisted; buildExportArchiver(msgsArchive, name_box); } else { cExecute("$this.exporteml.export_all",hand_export,"folder="+name_box); } write_msg(get_lang('You must wait while the messages will be exported...'),true); }); //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < END } if(!$(".new_folder").length){ $(this).find(".float-menu:first").css("display", ""); } }, function(){ $(this).find(".float-menu:first").hide(); } ); $("#new_m").html($('.selected').find(".folder_unseen").html() ? $('.selected').find(".folder_unseen").html() : "0").css("color", "red"); }