var init_tree = 0; var selected; function unorphanize(root, element) { var ok = false; for (var i=0; i .expandable, .mainfoldertree > .collapsable')){ $('.filetree span.folder.selected').removeClass('selected'); $(target).children('.folder').addClass('selected'); } selected = target.attr('id'); change_folder(target.attr('id'), child.attr('title')); }); folders_html.find('[id="'+selected+'"]').children().addClass("selected").end().end().find("li:first").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"})); }, refreshPositions: true, scroll: true, scrollSensitivity: 100, scrollSpeed: 100, containment: "#divAppbox" }).end().droppable({ //DROP DE PASTAS over : function(a, b){ //INICIO : SE A PASTA CONTER FILHAS EXPANDE if(($(this)[0] != $(this).parent().find(".head_folder")[0])) if($(this).prev()[0]) if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ $(this).prev().trigger("click"); } //FIM : SE A PASTA CONTER FILHAS EXPANDE //SETA BORDA EM VOLTA DA PASTA $(this).css("border", "1px solid black"); }, out : function(){ //RETIRA BORDA EM VOLTA DA PASTA $(this).css("border", ""); }, drop : function(me, target){ $(me.target).css("border", ""); if($(me.target).parent().attr('id') == undefined){ var folder_to = 'INBOX'; var to_folder_title = get_lang("Inbox"); }else{ var folder_to = $(me.target).parent().attr('id'); var to_folder_title = $(me.target).attr('title'); } var folder_to_move = target.draggable.parent().attr('id'); var border_id = target.draggable.find("input[type=hidden]").attr("name"); // Mensagens : SE O DROP VIER DA LISTA DE MENSAGENS : if(folder_to_move == "tbody_box"){ move_msgs2(get_current_folder(), 'selected', 0, folder_to, to_folder_title,true); return refresh(); } //SE FOR DE UMA PESQUISA RAPIDA else if(target.draggable.parents('[id^="content_id_"]')[0]){ move_search_msgs("content_id_"+border_id, folder_to, to_folder_title); return refresh(); } // Mensagens : SE O DROP VIER DE UMA ABA ABERTA else if(folder_to_move == "border_tr"){ var id_msg = border_id.substring("_"); folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder()); move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true); return refresh(); } // SE O DROP VIER DA LISTA DE PASTAS else{ var teste = folder_to_move.split(cyrus_delimiter); teste = folder_to+cyrus_delimiter+teste[teste.length-1]; //VERIFICA SE EXISTE UMA MENSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS if(valid_tabs(target.draggable.parent().find("li"), folder_to_move)){ return; } //FIM : VERIFICA SE EXISTE UMA MENSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS; // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA PARA O MESMO LOCAL if(teste == folder_to_move){ return alert(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 alert(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(target.draggable.parent().find(".selected")[0]){ return alert(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(target.draggable.parent().find('[id="'+folder_to+'"]')[0]){ return alert(get_lang("It's not possible to move this folder to its subfolders!")); } //teste = teste.split(cyrus_delimiter); if($('[id="'+teste+'"]').length){ return alert(get_lang("Can not move this folder to this location, because the target has already a folder with this name")); } $(me.target).addClass("folders_loading"); $.ajax({ url : "controller.php?action=$this.imap_functions.move_folder&folder_to_move="+folder_to_move+"&folder_to="+folder_to, success : function(){ cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); write_msg(get_lang("The folder was successfully moved")); } }); } } }).hover( function(){ //CASO A LI NÃO TENHA UM MENU FLUTUANTE AINDA, O MENU É ADICIONADO! if(!$(this).children(":last").hasClass("float-menu") && !$(this).children(":last").hasClass("new_folder")){ var folder_ = $(this); var folder_name; if(folder_.parent().attr('id')){ folder_name = folder_.parent().attr('id').split(cyrus_delimiter); folder_name = folder_name[folder_name.length -1]; }else folder_name = "Root"; DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", {name_folder : folder_name}, function(html){ //FUNÇÃO DO MENU FLUTUANTE EDITAR < BEGIN $(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 alert(get_lang("It's not possible rename this folder, because it is being used in the moment!")); if($(this).parents(".closed:first").find(".selected").length) return alert(get_lang("It's not possible rename this folder, because its subfolder is being used in the moment!")); $(this).parents(".closed:first").find("span:first").empty().append("") $(".new_folder").focus().keydown(function(event){ if(event.keyCode == 13){ if($(this).val() != ""){ if($(this).val().match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){ return alert(get_lang("cannot create folder. try other folder name")); } var new_name = folder_id.replace(/[a-zA-Z0-9á-úÁ-Ú]+$/gi, $(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"); $.ajax({ url : "controller.php?action=$this.imap_functions.ren_mailbox", type : "POST", data : "current="+folder_id+"&rename="+new_name, success : function(){ write_msg(get_lang("The folder was successfully rename")); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } }); } }else if( event.keyCode == 27){ if(confirm(get_lang("Do you want to cancel the folder edition?"))) draw_new_tree_folder(); else{ $(".new_folder").focus().val(name); } } }).focusout(function(){ if(confirm(get_lang("Do you want to cancel the folder edition?"))) draw_new_tree_folder(); else{ $(".new_folder").focus().val(name); } }).val(name); }) //FUNÇÃO DO MENU FLUTUANTE EDITAR < END //FUNÇÃO DO MENU FLUTUANTE EXCLUIR < BEGIN .end().find(".float-menu-remove").click(function(){ var folder_id = $(this).parents(".closed:first").find(".folder").addClass("folders_loading").end().attr('id'); var folder_name = $.trim($(this).parents(".closed:first").find(".folder").text().split("[")[0]); if($(this).parents(".closed:first").find("ul").length){ $(this).parents(".closed:first").find(".folder").removeClass("folders_loading"); return alert(get_lang("Delete/move subfolders first")); } if($(this).parents(".closed:first").find(".selected").length){ $(this).parents(".closed:first").find(".folder").removeClass("folders_loading"); return alert(get_lang("It's not possible delete this folder, because it is being used in the moment!")); } var confirm_text = get_lang("Do you wish to exclude the folder "); if(!confirm(confirm_text + folder_name)){ $(this).parents(".closed:first").find(".folder").removeClass("folders_loading"); return; } $.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")); } write_msg(get_lang("The folder %1 was successfully removed", folder_name)); cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } }); }) //FUNÇÃO DO MENU FLUTUANTE EXCLUIR < END //FUNÇÃO DO MENU FLUTUANTE NOVA PASTA < BEGIN .end().find(".float-menu-new").click(function(){ 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 }); } selected_li.find(".new_folder").Watermark("Nova Pasta").focus().keydown(function(event){ if(event.keyCode == 13){ if($(this).val().match(/[\\\!\@\#\$\%\&\*\+\(\)]/gi)){ return alert(get_lang("cannot create folder. try other folder name")); } $(".new_folder").parent().addClass("folders_loading"); $.ajax({ url : "controller.php?action=$this.imap_functions.create_mailbox", type : "POST", data : "newp="+($(this).val() != "" ? $(this).val() : get_lang("New Folder"))+"&base_path="+(selected_li.attr('id')? selected_li.attr('id') : "INBOX"), success : function(data){ data = connector.unserialize(data); if(data == "Mailbox already exists"){ write_msg(get_lang("Mailbox already exists")); } cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } }); }else if( event.keyCode == 27){ if(confirm(get_lang("Do you want to cancel the folder creation?"))) cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } }).focusout(function(){ if(confirm(get_lang("Do you want to cancel the folder creation?"))) cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); }); }); //FUNÇÃO DO MENU FLUTUANTE NOVA PASTA < END }); } if(!$(".new_folder").length) $(this).find(".float-menu:first").removeClass("hidden"); }, function(){ $(this).find(".float-menu:first").addClass("hidden"); } ); $("#new_m").html($('.selected').find(".folder_unseen").html() ? $('.selected').find(".folder_unseen").html() : "0").css("color", "red"); if(init_tree < 2){ init_tree++; cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); } }); //TODO : REMOVER VC DAQUI //TO-DO : Finalizar Mouse over da barra de pastas. /*$(".collapse_folders_td").mouseenter(function(){ if($(".collapse_folders").attr('title') == "Expandir"){ $("#folderscol").removeClass( "hidden"); resizeWindow(); $("#folderscol").mouseleave(function(){ if($(".collapse_folders").attr('title') == "Expandir"){ $("#folderscol").addClass( "hidden"); resizeWindow(); } }); } });*/ //}refresh(); }