Ignore:
Timestamp:
10/08/13 16:20:46 (11 years ago)
Author:
douglas
Message:

Ticket #0000 - Copiadas as alterações do Trunk. Versão final 2.5.1.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.5/prototype/modules/mail/js/foldertree.js

    r8117 r8232  
    108108} 
    109109 
    110 function draw_new_tree_folder(callback, force){ 
    111  
    112     var folders =  normalizeFolder( Folder.get( false, force ) ); 
    113  
    114 if(preferences.use_local_messages == 1){ 
    115  
    116     if(expresso_mail_archive.folders && !expresso_offline && expresso_mail_archive.enabled == true) { //MailArchive 
    117         //pega pastas locais do mailarchiver e insere no array de pastas 
     110function refreshTreeview(){ 
     111    //Atualização e correção dos ícones expandir/contrair 
     112    $.each($('.treeview').find('.expandable, .collapsable').filter(':not(.lastExpandable,.lastCollapsable)'),function(i,v){ 
     113      if ( $(v).find('ul').css('display') == "block" ){ 
     114        $(v).removeClass().addClass('collapsable');  
     115        $(v).find('.hitarea:first').removeClass().addClass('hitarea collapsable-hitarea') 
     116      } 
     117    }); 
     118    //Última árvore de pastas 
     119    $.each($('.treeview').find('.lastExpandable,.lastCollapsable'),function(i,v){ 
     120      if ( $(v).find('ul').css('display') == "block" ){ 
     121        $(v).removeClass().addClass('collapsable lastCollapsable');  
     122        $(v).find('.hitarea:first').removeClass('expandable-hitarea').addClass('collapsable-hitarea'); 
     123        $(v).find('.hitarea:first').removeClass('lastExpandable-hitarea').addClass('lastCollapsable-hitarea'); 
     124      } 
     125    }); 
     126} 
     127 
     128function draw_new_tree_folder(callback, force) 
     129{ 
     130 
     131    var folders = normalizeFolder(Folder.get(false, force)); 
     132 
     133    if(preferences.use_local_messages == 1) 
     134    { 
     135 
     136        if(expresso_mail_archive.folders && !expresso_offline && expresso_mail_archive.enabled == true) 
     137        { //MailArchive 
     138            //pega pastas locais do mailarchiver e insere no array de pastas 
    118139            expresso_mail_archive.getFoldersList("home"); 
    119140            treeFolders = expresso_mail_archive.folders; 
    120141 
    121             for(var i=0; i<treeFolders.length; i++ ){ 
     142            for(var i = 0; i < treeFolders.length; i++) 
     143            { 
    122144                mount_children_localfolders_list(treeFolders[i]); 
    123145            } 
    124              
    125             for(var i = 0; i < treeFolders.length; i++){ 
     146 
     147            for(var i = 0; i < treeFolders.length; i++) 
     148            { 
    126149                folders.push(treeFolders[i]); 
    127150            } 
    128   
    129     } 
    130 } 
    131  
    132     if(!selected){ 
     151 
     152        } 
     153    } 
     154 
     155    if(!selected) 
     156    { 
    133157        selected = "INBOX"; 
    134158    } 
     
    137161    var tree2 = new Array(); 
    138162    var tree3 = new Array(); 
    139       
    140     for (var i=0; i<folders.length; i++) { 
    141           
    142         if(/*/^INBOX/.test(folders[i].id)*/folders[i].id.substr(0,5) == "INBOX") { 
    143             if (!unorphanize(tree1, folders[i])) { 
     163     
     164    for(var i = 0; i < folders.length; i++) 
     165    { 
     166         
     167        if(/*/^INBOX/.test(folders[i].id)*/folders[i].id.substr(0,5) == "INBOX") 
     168        { 
     169            if(!unorphanize(tree1, folders[i])) 
     170            { 
    144171                folders[i].children = new Array(); 
    145172 
     
    147174            } 
    148175        } 
    149         else if (/*/^user/.test(folders[i].id)*/folders[i].id.substr(0,4) == "user") { 
    150             if (!unorphanize(tree2, folders[i])) { 
     176        else if(/*/^user/.test(folders[i].id)*/folders[i].id.substr(0,4) == "user") 
     177        { 
     178            if(!unorphanize(tree2, folders[i])) 
     179            { 
    151180                folders[i].children = new Array(); 
    152181                tree2.push(folders[i]); 
    153182            } 
    154183        } 
    155         else if (/*/^local_messages/.test(folders[i].id)*/folders[i].id.substr(0,14) == "local_messages") { 
    156             
    157                 tree3.push(folders[i]); 
    158              
    159         } 
    160     } 
    161      
    162     for(var i =0; i<tree1.length; i++){ 
     184        else if(/*/^local_messages/.test(folders[i].id)*/folders[i].id.substr(0,14) == "local_messages") 
     185        { 
     186 
     187            tree3.push(folders[i]); 
     188 
     189        } 
     190    } 
     191 
     192    for(var i = 0; i < tree1.length; i++) 
     193    { 
    163194        count_unseen_children(tree1[i]); 
    164195    } 
    165     for(var i =0; i<tree2.length; i++){ 
     196    for(var i = 0; i < tree2.length; i++) 
     197    { 
    166198        count_unseen_children(tree2[i]); 
    167199    } 
    168     for(var i =0; i<tree3.length; i++){ 
     200    for(var i = 0; i < tree3.length; i++) 
     201    { 
    169202        count_unseen_children(tree3[i]); 
    170203    } 
     
    174207    var shared_acls = {}; 
    175208 
    176     $.each(cp_tree2, function(index, value){ 
     209    $.each(cp_tree2, function(index, value) 
     210    { 
    177211        shared_acls[value.id] = value.acl_share; 
    178212    }); 
    179      
    180     if(preferences.use_local_messages == 1){ 
    181       $("#content_folders").removeClass("menu-degrade").parent().removeClass("image-menu"); 
    182       mail_archive_url = mail_archive_protocol + "://" + mail_archive_host + ":" + mail_archive_port + "/admin"; 
    183     } 
    184      
    185     var html = DataLayer.render('../prototype/modules/mail/templates/detailedfoldertree.ejs', {folders: [tree1, tree2, tree3]}); 
    186     var folders_html = $("#content_folders").html(html).find(".mainfoldertree").treeview({ 
    187             persist: "cookie", 
    188             animated: "fast" 
    189     }).find(".folder").unbind("click").click(function(event){ 
    190  
    191         if ($(this).next().hasClass("local-connect")) { 
     213 
     214    if(preferences.use_local_messages == 1) 
     215    { 
     216        $("#content_folders").removeClass("menu-degrade").parent().removeClass("image-menu"); 
     217        mail_archive_url = mail_archive_protocol + "://" + mail_archive_host + ":" + mail_archive_port + "/admin"; 
     218    } 
     219 
     220    var html = DataLayer.render('../prototype/modules/mail/templates/detailedfoldertree.ejs', { 
     221        folders: [tree1, tree2, tree3] 
     222    }); 
     223    var folders_html = $("#content_folders").html(html).find(".mainfoldertree").treeview( 
     224    { 
     225        persist: "cookie", 
     226        animated: "fast" 
     227    }).find(".folder").unbind("click").click(function(event) 
     228    { 
     229 
     230        if($(this).next().hasClass("local-connect")) 
     231        { 
    192232            return; 
    193233        } 
    194234 
    195         if ($(this).hasClass("local-folder")) { 
     235        if($(this).hasClass("local-folder")) 
     236        { 
    196237            return; 
    197238        } 
    198          
     239 
    199240        // MUDANÇA DE PASTAS! 
    200         var target = $(this);    
    201          
     241        var target = $(this); 
     242 
    202243        if($(".folders-loading").length) 
     244        { 
    203245            return; 
    204          
     246        } 
     247 
    205248        if($(event.target).parent().is(".float-menu")) 
     249        { 
    206250            return; 
    207              
    208         if( target.is('.collapsable-hitarea, .expandable-hitarea, .lastCollapsable-hitarea, .lastExpandable-hitarea, .treeview ,.folder_unseen,.ui-icon, .float-menu, .new_folder, .folders-loading, .head_folder, .shared-folders') ) 
     251        } 
     252 
     253        if(target.is('.collapsable-hitarea, .expandable-hitarea, .lastCollapsable-hitarea, .lastExpandable-hitarea, .treeview ,.folder_unseen,.ui-icon, .float-menu, .new_folder, .folders-loading, .head_folder, .shared-folders')) 
     254        { 
    209255            return; 
    210          
    211         if( target.parent().find(".new_folder").length) 
     256        } 
     257 
     258        if(target.parent().find(".new_folder").length) 
     259        { 
    212260            return; 
    213              
    214         if( !target.attr('id') ) 
     261        } 
     262 
     263        if(!target.attr('id')) 
     264        { 
    215265            target = target.parent(); 
    216         if (target[0] == $(".mainfoldertree")[0]) return; 
     266        } 
     267        if(target[0] == $(".mainfoldertree")[0]) 
     268        { 
     269            return; 
     270        } 
     271 
    217272        var uiId = target.attr('id'); 
    218273        var child = target.find('.folder'); 
    219            
    220         if(!target.is('.mainfoldertree > .expandable-hitarea, .mainfoldertree > .collapsable-hitarea')){ 
     274 
     275        if(!target.is('.mainfoldertree > .expandable-hitarea, .mainfoldertree > .collapsable-hitarea')) 
     276        { 
    221277            $('.filetree span.folder.selected').removeClass('selected'); 
    222278            $(target).children('.folder').addClass('selected'); 
     
    224280        $(this).addClass("folders-loading"); 
    225281        selected = target.attr('id'); 
    226         change_folder(target.attr('id'), child.attr('title'));   
    227  
    228         $.ajax({ 
    229               url : "controller.php?"+ $.param( { action: "$this.imap_functions.get_folders_list", folder: target.attr('id') } ), 
    230               success : function(data){ 
    231                   data = connector.unserialize(data); 
    232  
    233                   if(data) 
     282        change_folder(target.attr('id'), child.attr('title')); 
     283     
     284        $.ajax( 
     285        { 
     286            url: "controller.php?" + $.param( 
     287            { 
     288                action: "$this.imap_functions.get_folders_list", 
     289                folder: target.attr('id') 
     290            }), 
     291            success: function(data) 
     292            { 
     293                data = connector.unserialize(data); 
     294 
     295                if(data) 
     296                { 
    234297                    build_quota(data); 
    235               } 
     298                } 
     299            } 
    236300        }); 
    237301 
    238     }).filter('.followup-messages').click(function(event, ui){ 
     302    }).filter('.followup-messages').click(function(event, ui) 
     303    { 
    239304        search_emails("UNDELETED KEYWORD \"$Followupflagged\""); 
    240305    }).end().end(); 
    241  
    242     $('.upper').droppable({ 
    243         over: function(event, ui){ 
    244             $('#content_folders').autoscroll({ 
     306     
     307    refreshTreeview(); 
     308     
     309    $('.upper').droppable( 
     310    { 
     311        over: function(event, ui) 
     312        { 
     313            $('#content_folders').autoscroll( 
     314            { 
    245315                direction: 'up', 
    246316                step: 150, 
     
    248318            }); 
    249319        }, 
    250         out: function(event, ui){ 
     320        out: function(event, ui) 
     321        { 
    251322            $('#content_folders').autoscroll('destroy'); 
    252323        } 
    253324    }); 
    254325 
    255     $('.lower').droppable({ 
    256         over: function(event, ui){ 
    257             $('#content_folders').autoscroll({ 
     326    $('.lower').droppable( 
     327    { 
     328        over: function(event, ui) 
     329        { 
     330            $('#content_folders').autoscroll( 
     331            { 
    258332                direction: 'down', 
    259333                step: 150, 
     
    261335            }); 
    262336        }, 
    263         out: function(event, ui){ 
     337        out: function(event, ui) 
     338        { 
    264339            $('#content_folders').autoscroll('destroy'); 
    265340        } 
     
    268343 
    269344 
    270     folders_html.find('[id="'+selected+'"]').children().addClass("selected"); 
    271     $(".folder").not(".head_folder").not(".shared-folders").not(".shared-folders + ul .folder").parent().find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({ 
     345    folders_html.find('[id="' + selected + '"]').children().addClass("selected"); 
     346    $(".folder") 
     347    .not(".head_folder") 
     348    .not(".shared-folders") 
     349    .not(".shared-folders + ul .folder") 
     350    .parent() 
     351    .find(".folder") 
     352    .not(".head_folder,.inbox,.drafts,.sent,.spam,.trash") 
     353    .draggable( 
     354    { 
    272355        // DRAG DE PASTAS 
    273         start : function(){ 
     356        start: function() 
     357        { 
    274358            $(this).css("color", "gray"); 
    275359            $('.upper, .lower').show(); 
    276             $(".lower").css("top", ($("#content_folders").height()-18) + $("#content_folders").offset().top); 
     360            $(".lower").css("top", ($("#content_folders").height() - 18) + $("#content_folders").offset().top); 
    277361        }, 
    278         stop : function(){ 
     362        stop: function() 
     363        { 
    279364            $(this).css("color", ""); 
    280365            $('.upper, .lower').hide(); 
    281366        }, 
    282367        revert: "invalid", 
    283         helper: function(event){ 
    284             if($.trim(($(this).text().split("["))[0]).length > 18) 
    285                 return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($(this).text().split("["))[0]).substring(0,18) + "...", type: "folder"})); 
    286             return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($(this).text().split("["))[0]), type: "folder"})); 
     368        helper: function(event) 
     369        { 
     370            if($.trim(($(this).text().split("["))[0]).length > 18) return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', { 
     371                texto: (($(this).text().split("["))[0]).substring(0, 18) + "...", 
     372                type: "folder" 
     373            })); 
     374            return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', { 
     375                texto: (($(this).text().split("["))[0]), 
     376                type: "folder" 
     377            })); 
    287378        }, 
    288379        delay: 150, 
    289380        refreshPositions: true, 
    290         zIndex : 2700, 
     381        zIndex: 2700, 
    291382        //scroll: true, 
    292383        //scrollSensitivity: 100, 
     
    294385        containment: $("#divAppbox") 
    295386    }); 
    296     $(".folder").not(".head_folder").not(".shared-folders").parent().find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").end().droppable({ 
     387    $(".folder") 
     388    .not(".head_folder") 
     389    .not(".shared-folders") 
     390    .parent() 
     391    .find(".folder") 
     392    .not(".head_folder,.inbox,.drafts,.sent,.spam,.trash") 
     393    .end() 
     394    .droppable( 
     395    { 
    297396        //DROP DE PASTAS 
    298         over : function(a, b){ 
     397        over: function(a, b) 
     398        { 
    299399            //INICIO : SE A PASTA CONTER FILHAS EXPANDE  
     400            $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "green"); 
    300401            over = $(this); 
    301402            $(this).addClass("folder-over"); 
    302             if(($(this)[0] != $(this).parent().find(".head_folder")[0])) 
    303                 if($(this).prev()[0]) 
    304                     if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ 
    305                         setTimeout(function(){ 
    306                             if(over.hasClass("folder-over")){ 
    307                                 over.prev().trigger("click"); 
    308                             } 
    309                         }, 500); 
    310                          
     403            if(($(this)[0] != $(this).parent().find(".head_folder")[0])) if($(this).prev()[0]) if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]) 
     404            { 
     405                setTimeout(function() 
     406                { 
     407                    if(over.hasClass("folder-over")) 
     408                    { 
     409                        over.prev().trigger("click"); 
    311410                    } 
     411                }, 500); 
     412 
     413            } 
    312414            //FIM : SE A PASTA CONTER FILHAS EXPANDE            
    313             //$("#content_folders").stop().scrollTo($(this), {axis:'y', margin:true, offset:-50, duration:400});       
    314415            //SETA BORDA EM VOLTA DA PASTA 
    315416            // 
    316417        }, 
    317         out : function(){ 
     418        out: function(a, b) 
     419        { 
    318420            //RETIRA BORDA EM VOLTA DA PASTA 
     421            $(b.helper).find(".draggin-folder,.draggin-mail").css("color", ""); 
    319422            $(this).removeClass("folder-over"); 
    320423        }, 
    321         drop : function(event, ui){ 
     424        drop: function(event, ui) 
     425        { 
    322426            $(this).removeClass("folder-over"); 
    323427 
    324             if($(this).parent().attr('id') == undefined){ 
     428            if($(this).parent().attr('id') == undefined) 
     429            { 
    325430                var folder_to = 'INBOX'; 
    326431                var to_folder_title = get_lang("Inbox"); 
    327             }else{ 
     432            } 
     433            else 
     434            { 
    328435                var folder_to = $(this).parent().attr('id'); 
    329436                var to_folder_title = $(this).attr('title'); 
    330             }        
     437            } 
    331438            var folder_to_move = ui.draggable.parent().attr('id'); 
    332439            var border_id = ui.draggable.find("input[type=hidden]").attr("name"); 
    333440            // eventnsagens : SE O DROP VIER DA LISTA DE eventNSAGENS : 
    334             if(folder_to_move == "tbody_box"){ 
    335                 move_msgs2(get_current_folder(), 'selected', 0, folder_to, to_folder_title,true); 
     441            if(folder_to_move == "tbody_box") 
     442            { 
     443                move_msgs2(get_current_folder(), 'selected', 0, folder_to, to_folder_title, true); 
    336444                //Correção para realinhamento da grid de mensagens no navegador Chrome. 
    337                 if(is_webkit){ 
     445                if(is_webkit) 
     446                { 
    338447                    var table = $('#table_box'); 
    339448                    $('#divScrollMain_0').html(''); 
     
    344453            } 
    345454            //SE FOR DE UMA PESQUISA RAPIDA 
    346             else if(ui.draggable.parents('[id^="content_id_"]')[0]){ 
    347                 move_search_msgs("content_id_"+border_id, folder_to, to_folder_title); 
     455            else if(ui.draggable.parents('[id^="content_id_"]')[0]) 
     456            { 
     457                move_search_msgs("content_id_" + border_id, folder_to, to_folder_title); 
    348458                return; 
    349459            } 
    350460            // eventnsagens : SE O DROP VIER DE UMA ABA ABERTA 
    351             else if(folder_to_move == "border_tr"){ 
     461            else if(folder_to_move == "border_tr") 
     462            { 
    352463                var id_msg = border_id.split("_")[0]; 
    353                 folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder()); 
     464                folder = $("#input_folder_" + border_id + "_r")[0] ? $("#input_folder_" + border_id + "_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id] : get_current_folder()); 
    354465                alternate_border(border_id); 
    355                 move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true); 
     466                move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title, true); 
    356467                return; 
    357468            } 
    358469            // SE O DROP VIER DA LISTA DE PASTAS 
    359             else{ 
    360                                 if($(ui.draggable[0]).parent().find("input").val() == "localFolder" && $(this).parents("li").find("input").first().val() != "localFolder")  
    361                 {  
    362                     return write_msg(get_lang("It isn't possible to send a folder by Archiver to My folders"));  
    363                 }  
    364                 else if(!$(ui.draggable[0]).parent().find("input").val() && $(this).parents("li").find("input").first().val() == "localFolder")  
    365                 {  
    366                     return write_msg(get_lang("It isn't possible to send a folder by My folders to Archiver"));  
    367                 }  
    368                 var folder_to_exist = folder_to_move.split(cyrus_delimiter);     
    369                 folder_to_exist = folder_to+cyrus_delimiter+folder_to_exist[folder_to_exist.length-1]; 
    370                  
     470            else 
     471            { 
     472                if($(ui.draggable[0]).parent().find("input").val() == "localFolder" && $(this).parents("li").find("input").first().val() != "localFolder") 
     473                { 
     474                    return write_msg(get_lang("It isn't possible to send a folder by Archiver to My folders")); 
     475                } 
     476                else if(!$(ui.draggable[0]).parent().find("input").val() && $(this).parents("li").find("input").first().val() == "localFolder") 
     477                { 
     478                    return write_msg(get_lang("It isn't possible to send a folder by My folders to Archiver")); 
     479                } 
     480                var folder_to_exist = folder_to_move.split(cyrus_delimiter); 
     481                folder_to_exist = folder_to + cyrus_delimiter + folder_to_exist[folder_to_exist.length - 1]; 
     482 
    371483                //VERIFICA SE EXISTE UMA eventNSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS 
    372  
    373                 if(valid_tabs(ui.draggable.parent().find("li"), folder_to_move)){ 
     484                if(valid_tabs(ui.draggable.parent().find("li"), folder_to_move)) 
     485                { 
    374486                    return; 
    375487                } 
    376488                //FIM : VERIFICA SE EXISTE UMA eventNSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS; 
    377                  
    378489                // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA PARA O eventSMO LOCAL 
    379                 if(folder_to_exist == folder_to_move){ 
     490                if(folder_to_exist == folder_to_move) 
     491                { 
    380492                    return write_msg(get_lang("Thie folder is already in this place")); 
    381493                } 
    382                  
     494 
    383495                // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA ABERTA NO momentO 
    384                 if(folder_to_move == get_current_folder()){ 
     496                if(folder_to_move == get_current_folder()) 
     497                { 
    385498                    return write_msg(get_lang("It's not possible move this folder, because it is being used in the moment!")); 
    386499                } 
    387                  
     500 
    388501                // VALIDA SE O USUARIO ESTA TENTANDO MOVER UMA PASTA FILHA DA PASTA ABERTA NO momentO 
    389                 if(ui.draggable.parent().find(".selected")[0]){ 
     502                if(ui.draggable.parent().find(".selected")[0]) 
     503                { 
    390504                    return write_msg(get_lang("It's not possible move this folder, because its subfolder is being used in the moment!")); 
    391505                } 
    392                  
     506 
    393507                // VALIDA SE O USUARIO ESTA TENTANDO MOVER UMA PASTA PAI PARA DENTRO DE UMA FILHA 
    394                 if(ui.draggable.parent().find('[id="'+folder_to+'"]')[0]){ 
     508                if(ui.draggable.parent().find('[id="' + folder_to + '"]')[0]) 
     509                { 
    395510                    return write_msg(get_lang("It's not possible to move this folder to its subfolders!")); 
    396                 }                    
    397                  
    398                 if($('[id="'+folder_to_exist+'"]').length){ 
     511                } 
     512 
     513                if($('[id="' + folder_to_exist + '"]').length) 
     514                { 
    399515                    return write_msg(get_lang("Can not move this folder to this location, because the target has already a folder with this name")); 
    400516                } 
    401                  
     517 
    402518                $(this).addClass("folders-loading"); 
    403519 
    404520 
    405                 if($(this).parents("li").find("input").first().val() == "localFolder"){ 
     521                if($(this).parents("li").find("input").first().val() == "localFolder") 
     522                { 
    406523                    var idFolder = $(this).parent().attr("id").split("_")[2]; 
    407524 
    408525                    expresso_mail_archive.moveFolder(idFolder, folder_to_move.split("_")[2]); 
    409                      cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    410                 } else { 
    411                     $.ajax({ 
    412                         url : "controller.php?"+ $.param( { action: "$this.imap_functions.move_folder", folder_to_move: folder_to_move, folder_to: folder_to } ), 
    413                         success : function(data){ 
     526                    cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     527                } 
     528                else 
     529                { 
     530                    $.ajax( 
     531                    { 
     532                        url: "controller.php?" + $.param( 
     533                        { 
     534                            action: "$this.imap_functions.move_folder", 
     535                            folder_to_move: folder_to_move, 
     536                            folder_to: folder_to 
     537                        }), 
     538                        success: function(data) 
     539                        { 
    414540                            cExecute("$this.imap_functions.get_folders_list&onload=true", force_update_menu); 
    415541                            data = connector.unserialize(data); 
    416                             if(data == "Permission denied"){ 
     542                            if(data == "Permission denied") 
     543                            { 
    417544                                write_msg(get_lang("Permission denied")); 
    418                             }else if(data){ 
     545                            } 
     546                            else if(data) 
     547                            { 
    419548                                write_msg(get_lang("The folder was successfully moved")); 
    420                             } else { 
     549                            } 
     550                            else 
     551                            { 
    421552                                write_msg(get_lang("ERROR moving your folder.")); 
    422553                            } 
     
    427558        } 
    428559    }); 
    429     $(".folder").not(".shared-folders, .followup-messages").parent().find(".folder").hover( 
    430         function(){ 
    431             //CASO A LI NÃO TENHA UM eventNU FLUTUANTE AINDA, O eventNU É ADICIONADO! 
    432             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*/ 
    433                 var folder_ = $(this); 
    434                 var folder_name; 
    435                 var shared = { 
    436                     head : false, 
    437                     valid : false 
    438                 }; 
    439                 if(folder_.parent().attr('id')){ 
    440                     folder_name = folder_.parent().attr('id').split(cyrus_delimiter); 
    441                     folder_name = folder_name[folder_name.length -1]; 
    442                     shared.valid = folder_.parent().attr('id').search("user/") == 0 ? true : false; 
    443                 }else 
    444                     folder_name = "Root"; 
    445                  
    446                 if(shared.valid){ 
    447                     shared.head = folder_.parent().attr('id').split(cyrus_delimiter).length == 2 ?  true : false; 
    448                     var folder_name_parts = folder_.parent().attr('id').split(cyrus_delimiter); 
    449                     var acls = shared_acls[folder_name_parts[0]+cyrus_delimiter+folder_name_parts[1]]; 
    450                 } 
    451  
    452                 html = DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", {name_folder : folder_name, flag : shared, acl : acls});                    
    453                     //FUNÇÃO DO eventNU FLUTUANTE EDITAR < BEGIN 
    454                 var esc = false; 
    455                 $(folder_).append(html).find(".float-menu-edit").click(function(){ 
    456                     var folder_id = $(this).parents(".closed:first").attr('id'); 
    457                     var name = $.trim($(this).parents(".closed:first").find("span:first").text().split("[")[0]); 
    458                     if($(this).parents(".closed:first").find("span:first").hasClass("selected")) 
    459                         return write_msg(get_lang("It's not possible rename this folder, because it is being used in the moment!")); 
    460                     if($(this).parents(".closed:first").find("span.selected").length) 
    461                         return write_msg(get_lang("It's not possible rename this folder, because its subfolder is being used in the moment!"));  
    462                     if(valid_tabs($(this).parents("li:first").find("li"), folder_id)) 
    463                         return; 
    464                     $(this).parents(".closed:first").find("span:first").empty().append("<input class='new_folder folder' type='text' maxlength='100'></input>"); 
    465                     $(".new_folder").focus().keydown(function(event){ 
    466                         event.stopPropagation(); 
    467                         if(event.keyCode == 13){ 
    468                             if($(this).val() != ""){ 
    469                                 /* Verifica se existe caracteres especiais no nome da pasta ou se existe "local_" 
    470                                  * em parte do nome (palavra reservada para pastas locais) */ 
    471                                 if($(this).val().match(/[\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi) || $(this).val().indexOf("local_") != -1){ 
    472                                     return write_msg(get_lang("cannot create folder. try other folder name")); 
    473                                 } 
    474                                 var new_name = folder_id.replace(/[a-zA-Z0-9á-úÁ-Ú,=^\s_-]+$/, $(this).val()); 
    475                                 if($('[id="'+new_name+'"]').length){ 
    476                                     $(".folders-loading").removeClass("folders-loading"); 
    477                                     write_msg(get_lang("Mailbox already exists")); 
    478                                     return draw_new_tree_folder(); 
    479                                 } 
    480                                 $(".new_folder").parent().addClass("folders-loading"); 
    481                                  
    482                                 if($(this).parents("li").first().attr("id").indexOf("local_messages_") != -1){ 
    483                                     var idFolder = $(this).parents("li").first().attr("id").split("_")[2]; 
    484                                     expresso_mail_archive.renameFolder(idFolder, new_name); 
    485                                      cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    486                                 } else { 
    487  
    488                                 $.ajax({ 
    489                                     url : "controller.php?action=$this.imap_functions.ren_mailbox", 
    490                                     type : "POST", 
    491                                     data : "current="+folder_id+"&rename="+new_name, 
    492                                     success : function(data){ 
     560    $(".folder") 
     561    .not(".shared-folders, .followup-messages") 
     562    .parent() 
     563    .find(".folder") 
     564    .not($('#message-attach-dialog').find('.folder')) 
     565    .hover( 
     566    function() 
     567    { 
     568        //CASO A LI NÃO TENHA UM eventNU FLUTUANTE AINDA, O eventNU É ADICIONADO! 
     569        if(!$(this).children(":last").hasClass("float-menu") && !$(this).children(":last").hasClass("new_folder") && !($(this).next().hasClass("local-connect"))) 
     570        { /*se houver a classe local-connect, não adiciona o botão de conectar*/ 
     571            var folder_ = $(this); 
     572            var folder_name; 
     573            var shared = { 
     574                head: false, 
     575                valid: false 
     576            }; 
     577            if(folder_.parent().attr('id')) 
     578            { 
     579                folder_name = folder_.parent().attr('id').split(cyrus_delimiter); 
     580                folder_name = folder_name[folder_name.length - 1]; 
     581                shared.valid = folder_.parent().attr('id').search("user"+cyrus_delimiter) == 0 ? true : false; 
     582            } 
     583            else folder_name = "Root"; 
     584 
     585            if(shared.valid) 
     586            { 
     587                shared.head = folder_.parent().attr('id').split(cyrus_delimiter).length == 2 ? true : false; 
     588                var folder_name_parts = folder_.parent().attr('id').split(cyrus_delimiter); 
     589                var acls = shared_acls[folder_name_parts[0] + cyrus_delimiter + folder_name_parts[1]]; 
     590            } 
     591 
     592            html = DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", { 
     593                name_folder: folder_name, 
     594                flag: shared, 
     595                acl: acls 
     596            }); 
     597            //FUNÇÃO DO eventNU FLUTUANTE EDITAR < BEGIN 
     598            var esc = false; 
     599            $(folder_).append(html).find(".float-menu-edit").click(function() 
     600            { 
     601                var folder_id = $(this).parents(".closed:first").attr('id'); 
     602                var name = $.trim($(this).parents(".closed:first").find("span:first").text().split("[")[0]); 
     603                if($(this).parents(".closed:first").find("span:first").hasClass("selected")) 
     604                { 
     605                    return write_msg(get_lang("It's not possible rename this folder, because it is being used in the moment!")); 
     606                } 
     607                if($(this).parents(".closed:first").find("span.selected").length) 
     608                { 
     609                    return write_msg(get_lang("It's not possible rename this folder, because its subfolder is being used in the moment!")); 
     610                } 
     611                if(valid_tabs($(this).parents("li:first").find("li"), folder_id)) 
     612                { 
     613                    return; 
     614                } 
     615                $(this).parents(".closed:first").find("span:first").empty().append("<input class='new_folder folder' type='text' maxlength='100'></input>"); 
     616                $(".new_folder").focus().keydown(function(event) 
     617                { 
     618                    event.stopPropagation(); 
     619                    if(event.keyCode == 13) 
     620                    { 
     621                        if($(this).val() != "") 
     622                        { 
     623                            /* Verifica se existe caracteres especiais no nome da pasta ou se existe "local_" 
     624                             * em parte do nome (palavra reservada para pastas locais) */ 
     625                            if($(this).val().match(/[\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi) || $(this).val().indexOf("local_") != -1) 
     626                            { 
     627                                return write_msg(get_lang("cannot create folder. try other folder name")); 
     628                            } 
     629                            var new_name = folder_id.replace(/[a-zA-Z0-9á-úÁ-Ú,=^\s_-]+$/, $(this).val()); 
     630                            if($('[id="' + new_name + '"]').length) 
     631                            { 
     632                                $(".folders-loading").removeClass("folders-loading"); 
     633                                write_msg(get_lang("Mailbox already exists")); 
     634                                return draw_new_tree_folder(); 
     635                            } 
     636                            $(".new_folder").parent().addClass("folders-loading"); 
     637 
     638                            if($(this).parents("li").first().attr("id").indexOf("local_messages_") != -1) 
     639                            { 
     640                                var idFolder = $(this).parents("li").first().attr("id").split("_")[2]; 
     641                                expresso_mail_archive.renameFolder(idFolder, new_name); 
     642                                cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     643                            } 
     644                            else 
     645                            { 
     646                                $.ajax( 
     647                                { 
     648                                    url: "controller.php?action=$this.imap_functions.ren_mailbox", 
     649                                    type: "POST", 
     650                                    data: "current=" + folder_id + "&rename=" + new_name, 
     651                                    success: function(data) 
     652                                    { 
    493653                                        data = connector.unserialize(data); 
    494                                         if(data == "Permission denied"){ 
     654                                        if(data == "Permission denied") 
     655                                        { 
    495656                                            $(".folders-loading").removeClass("folders-loading"); 
    496657                                            cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     
    502663                                }); 
    503664 
    504                                 } 
    505                             }else{ 
    506                                 $(".new_folder").focusout(); 
    507                             } 
    508                         }else if( event.keyCode == 27){ 
    509                             draw_new_tree_folder(); 
    510                         } 
    511                     }).focusout(function(){ 
     665                            } 
     666                        } 
     667                        else 
     668                        { 
     669                            $(".new_folder").focusout(); 
     670                        } 
     671                    } 
     672                    else if(event.keyCode == 27) 
     673                    { 
    512674                        draw_new_tree_folder(); 
    513                     }).val(name); 
    514                 }) 
    515                 //FUNÇÃO DO eventNU FLUTUANTE EDITAR < END 
    516                 //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < BEGIN 
    517                 .end().find(".float-menu-remove").click(function(){ 
    518                      
    519                     var folder_id = $(this).parents(".closed:first").attr('id'); 
    520                     var folder_name = "<strong>"+$.trim($(this).parents(".closed:first").find(".folder").text().split("[")[0])+"</strong>"; 
    521                      
    522                     if(valid_tabs($(this).parents("li:first").find("li"), folder_id)) 
    523                         return; 
    524                     $(this).parents(".closed:first").find(".folder").addClass("folders-loading");  
    525                      
    526                     if($(this).parents(".closed:first").find("ul").length){ 
    527                         $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); 
    528                         return write_msg(get_lang("Delete/move subfolders first")); 
    529675                    } 
    530                     if($(this).parents(".closed:first").find("span.selected").length){ 
    531                         $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); 
    532                         return write_msg(get_lang("It's not possible delete this folder, because it is being used in the moment!"));  
    533                     } 
    534                     var folder_span = $(this); 
    535                     var confirm_text = get_lang("Do you wish to exclude the folder "); 
    536  
    537                     $.Zebra_Dialog(confirm_text+folder_name, { 
    538                         'type': 'question', 
    539                         'overlay_opacity': '0.5', 
    540                                                 'custom_class': 'custom-zebra-filter', 
    541                         'buttons':  [get_lang('Yes'), get_lang('No')], 
    542                         'onClose':  function(caption) { 
    543  
    544                             if(caption == get_lang('Yes')){ 
    545                                 if(folder_span.parents("li").find("input").first().val() == "localFolder"){ 
    546                                     var idFolder = folder_span.parents("li").first().attr("id").split("_")[2]; 
    547                                     expresso_mail_archive.deleteFolder(idFolder, folder_name); 
    548                                      cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    549                                 } else { 
    550                                 $.ajax({ 
    551                                     url : "controller.php?action=$this.imap_functions.delete_mailbox", 
     676                }).focusout(function() 
     677                { 
     678                    draw_new_tree_folder(); 
     679                }).val(name); 
     680            }) 
     681            //FUNÇÃO DO eventNU FLUTUANTE EDITAR < END 
     682            //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < BEGIN 
     683            .end().find(".float-menu-remove").click(function() 
     684            { 
     685 
     686                var folder_id = $(this).parents(".closed:first").attr('id'); 
     687                var folder_name = "<strong>" + $.trim($(this).parents(".closed:first").find(".folder").text().split("[")[0]) + "</strong>"; 
     688 
     689                if(valid_tabs($(this).parents("li:first").find("li"), folder_id)) 
     690                { 
     691                    return; 
     692                } 
     693                $(this).parents(".closed:first").find(".folder").addClass("folders-loading"); 
     694 
     695                if($(this).parents(".closed:first").find("ul").length) 
     696                { 
     697                    $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); 
     698                    return write_msg(get_lang("Delete/move subfolders first")); 
     699                } 
     700                if($(this).parents(".closed:first").find("span.selected").length) 
     701                { 
     702                    $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); 
     703                    return write_msg(get_lang("It's not possible delete this folder, because it is being used in the moment!")); 
     704                } 
     705                var folder_span = $(this); 
     706                var confirm_text = get_lang("Do you wish to exclude the folder "); 
     707 
     708                $.Zebra_Dialog(confirm_text + folder_name, { 
     709                    'type': 'question', 
     710                    'overlay_opacity': '0.5', 
     711                    'custom_class': 'custom-zebra-filter', 
     712                    'buttons': [get_lang('Yes'), get_lang('No')], 
     713                    'onClose': function(caption) 
     714                    { 
     715 
     716                        if(caption == get_lang('Yes')) 
     717                        { 
     718                            if(folder_span.parents("li").find("input").first().val() == "localFolder") 
     719                            { 
     720                                var idFolder = folder_span.parents("li").first().attr("id").split("_")[2]; 
     721                                expresso_mail_archive.deleteFolder(idFolder, folder_name); 
     722                                cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     723                            } 
     724                            else 
     725                            { 
     726                                $.ajax( 
     727                                { 
     728                                    url: "controller.php?action=$this.imap_functions.delete_mailbox", 
    552729                                    type: "POST", 
    553                                     data : "del_past="+folder_id, 
    554                                     success : function(data){ 
     730                                    data: "del_past=" + folder_id, 
     731                                    success: function(data) 
     732                                    { 
    555733                                        data = connector.unserialize(data); 
    556                                         if(data == "Mailbox does not exist"){ 
     734                                        if(data == "Mailbox does not exist") 
     735                                        { 
    557736                                            $(".folders-loading").removeClass("folders-loading"); 
    558737                                            return write_msg(get_lang("Mailbox does not exist")); 
    559                                         }else if(data == "Permission denied"){ 
     738                                        } 
     739                                        else if(data == "Permission denied") 
     740                                        { 
    560741                                            $(".folders-loading").removeClass("folders-loading"); 
    561742                                            cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     
    566747                                    } 
    567748                                }); 
     749                            } 
     750                        } 
     751                        else 
     752                        { 
     753                            folder_span.parents(".closed:first").find(".folder").removeClass("folders-loading"); 
     754                            return; 
     755                        } 
     756                    } 
     757                }); 
     758            }) 
     759            //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < END 
     760            //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < BEGIN 
     761            .end().find(".float-menu-new").click(function() 
     762            { 
     763                $(this).parents(".float-menu").hide(); 
     764                var selected_li = $(this).parents(".closed:first"); 
     765                if(selected_li.find("ul:first").length) 
     766                { 
     767                    var new_folder = $("<li><input class='new_folder folder' type='text' maxlength='100'></input></li>").appendTo(selected_li.find("ul:first")); 
     768                    if(selected_li.find(".expandable-hitarea").length) 
     769                    { 
     770                        selected_li.find(".expandable-hitarea").trigger('click'); 
     771                    } 
     772                    selected_li.find("ul:first").treeview( 
     773                    { 
     774                        add: new_folder 
     775                    }); 
     776                } 
     777                else if(selected_li.length) 
     778                { 
     779                    var new_folder = $("<ul><li><input class='new_folder folder' type='text' maxlength='100'></input></li></ul>").appendTo(selected_li); 
     780                    selected_li.treeview( 
     781                    { 
     782                        add: new_folder 
     783                    }); 
     784                } 
     785                else 
     786                { 
     787                    selected_li = $(this).parents("li:first"); 
     788                    if($(this).parents(".head_folder").parent().find(".expandable-hitarea").length) 
     789                    { 
     790                        $(this).parents(".head_folder").parent().find(".expandable-hitarea").trigger('click'); 
     791                    } 
     792                    var new_folder = $("<ul><li><input class='new_folder folder' type='text' maxlength='100'></input></li></ul>").appendTo(selected_li); 
     793                    selected_li.treeview( 
     794                    { 
     795                        add: new_folder 
     796                    }); 
     797                } 
     798                var existsIdenticalFolder = false; 
     799                selected_li.find(".new_folder").Watermark("Nova Pasta").focus().keydown(function(event) 
     800                { 
     801                    event.stopPropagation(); 
     802 
     803                    existsIdenticalFolder = false; 
     804 
     805                    var ok = false; 
     806                    var makeChildren = function(auxNameFolder, father) 
     807                        { 
     808                            if(auxNameFolder.length == 0) return true; 
     809 
     810 
     811                            if(auxNameFolder[0] == "") 
     812                            { 
     813                                auxNameFolder.shift(); 
     814                                makeChildren(auxNameFolder, father); 
     815                                return true; 
     816                            } 
     817                            if(ok == false) 
     818                            { 
     819                                expresso_mail_archive.createFolder((father ? father : "inbox"), auxNameFolder[0]); 
     820                            } 
     821 
     822                            expresso_mail_archive.getFoldersList(father); 
     823 
     824                            for(var ii = 0; ii < expresso_mail_archive.folders.length; ii++) 
     825                            { 
     826                                if(auxNameFolder[0] == expresso_mail_archive.folders[ii].name) 
     827                                { 
     828                                    auxNameFolder.shift(); 
     829                                    save = expresso_mail_archive.folders; 
     830                                    expresso_mail_archive.createFolder(expresso_mail_archive.folders[ii].id, auxNameFolder[0]); 
     831                                    expresso_mail_archive.folders = save; 
     832                                    ok = true; 
     833                                    makeChildren(auxNameFolder, expresso_mail_archive.folders[ii].id); 
     834                                    return true; 
    568835                                } 
    569                             }else{ 
    570                                 folder_span.parents(".closed:first").find(".folder").removeClass("folders-loading"); 
    571                                 return; 
    572                             } 
    573                         } 
    574                     }); 
    575                     /* if(!confirm(confirm_text + folder_name)){ 
    576                         $(this).parents(".closed:first").find(".folder").removeClass("folders-loading"); 
    577                         return; 
    578                     } */ 
    579                 }) 
    580                 //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < END 
    581                 //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < BEGIN 
    582                 .end().find(".float-menu-new").click(function(){ 
    583                     $(this).parents(".float-menu").hide(); 
    584                     var selected_li = $(this).parents(".closed:first"); 
    585                     if(selected_li.find("ul:first").length){ 
    586                         var new_folder = $("<li><input class='new_folder folder' type='text' maxlength='100'></input></li>").appendTo(selected_li.find("ul:first"));                                 
    587                         if(selected_li.find(".expandable-hitarea").length){ 
    588                             selected_li.find(".expandable-hitarea").trigger('click'); 
    589                         } 
    590                         selected_li.find("ul:first").treeview({ 
    591                             add: new_folder 
    592                         }); 
    593                     }else if(selected_li.length){ 
    594                         var new_folder = $("<ul><li><input class='new_folder folder' type='text' maxlength='100'></input></li></ul>").appendTo(selected_li);                                 
    595                         selected_li.treeview({ 
    596                             add: new_folder 
    597                         }); 
    598                     }else{ 
    599                         selected_li = $(this).parents(".head_folder").parent(); 
    600                         if($(this).parents(".head_folder").parent().find(".expandable-hitarea").length){ 
    601                             $(this).parents(".head_folder").parent().find(".expandable-hitarea").trigger('click'); 
    602                         } 
    603                         var new_folder = $("<ul><li><input class='new_folder folder' type='text' maxlength='100'></input></li></ul>").appendTo(selected_li);                                 
    604                         selected_li.treeview({ 
    605                             add: new_folder 
    606                         }); 
     836                            } 
     837                        } 
     838 
     839 
     840                    if(event.keyCode == 13) 
     841                    { 
     842                        /* Verifica se existe caracteres especiais no nome da pasta ou se existe "local_" 
     843                         * em parte do nome (palavra reservada para pastas locais) */ 
     844                        if($(this).val().match(/[\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi) || $(this).val().indexOf("local_") != -1) 
     845                        { 
     846                            return write_msg(get_lang("cannot create folder. try other folder name")); 
     847                        } 
     848                        if($(this).parents("li").find("input[type=hidden]").val() == "localFolder") 
     849                        { 
     850 
     851                            $(".new_folder").parent().addClass("folders-loading"); 
     852 
     853                            var folderName = $(this).val(); 
     854                            var folder = (folderName != "" ? folderName : get_lang("New Folder")); 
     855                            var father = typeof(selected_li.attr('id')) != "undefined" ? selected_li.attr('id').split("_")[2] : "home"; 
     856 
     857                            $(this).parents(".treeview:first").find("li").each(function() 
     858                            { 
     859                                var eachFolder = $(this).find("span:first").text().trim(); 
     860                                if(folder == eachFolder) 
     861                                { 
     862                                    existsIdenticalFolder = true; 
     863                                    return false; 
     864                                } 
     865                            }); 
     866 
     867                            if(existsIdenticalFolder) 
     868                            { 
     869                                event.stopPropagation(); 
     870                                write_msg(get_lang("Mailbox already exists")); 
     871                                draw_new_tree_folder(); 
     872                                return false; 
     873                            } 
     874 
     875                            if(folderName.indexOf("/") != -1) 
     876                            { 
     877                                auxNameFolder = folderName.split("/"); 
     878 
     879                                makeChildren(auxNameFolder, father); 
     880                            } 
     881                            else 
     882                            { 
     883                                var folder = (folderName != "" ? folderName : get_lang("New Folder")); 
     884                                create_new_local_folder((selected_li.attr('id') ? selected_li.attr('id') : "inbox"), folder); 
     885                            } 
     886 
     887                            cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     888                        } 
     889                        else 
     890                        { 
     891                            if($('[id="' + (selected_li.attr('id') ? selected_li.attr('id') : "INBOX") + cyrus_delimiter + $(this).val() + '"]').length) 
     892                            { 
     893                                $(".folders-loading").removeClass("folders-loading"); 
     894                                write_msg(get_lang("Mailbox already exists")); 
     895                                return draw_new_tree_folder(); 
     896                            } 
     897                            $(".new_folder").parent().addClass("folders-loading"); 
     898                            create_new_folder(($(this).val() != "" ? $(this).val() : get_lang("New Folder")), (selected_li.attr('id') ? selected_li.attr('id') : "INBOX")); 
     899                        } 
     900 
    607901                    } 
    608                     var existsIdenticalFolder = false; 
    609                     selected_li.find(".new_folder").Watermark("Nova Pasta").focus().keydown(function(event){ 
    610                         event.stopPropagation(); 
    611  
    612                         existsIdenticalFolder = false; 
    613  
    614                     var ok = false; 
    615                     var makeChildren = function(auxNameFolder, father){ 
    616                         if(auxNameFolder.length == 0) return true; 
    617  
    618  
    619                         if(auxNameFolder[0] == ""){ 
    620                             auxNameFolder.shift(); 
    621                             makeChildren(auxNameFolder, father); 
    622                             return true; 
    623                         } 
    624                         if(ok == false) 
    625                             expresso_mail_archive.createFolder((father ? father : "inbox"), auxNameFolder[0]); 
    626                          
    627                         expresso_mail_archive.getFoldersList(father); 
    628  
    629                         for(var ii =0; ii<expresso_mail_archive.folders.length; ii++){ 
    630                             if(auxNameFolder[0] == expresso_mail_archive.folders[ii].name){ 
    631                                  auxNameFolder.shift(); 
    632                                  save = expresso_mail_archive.folders; 
    633                                  expresso_mail_archive.createFolder(expresso_mail_archive.folders[ii].id, auxNameFolder[0]); 
    634                                  expresso_mail_archive.folders = save;  
    635                                  ok = true; 
    636                                  makeChildren(auxNameFolder, expresso_mail_archive.folders[ii].id); 
    637                                  return true; 
    638                             } 
    639                         } 
     902                    else if(event.keyCode == 27) 
     903                    { 
     904                        draw_new_tree_folder(); 
    640905                    } 
    641906 
    642  
    643                         if(event.keyCode == 13){ 
    644                             /* Verifica se existe caracteres especiais no nome da pasta ou se existe "local_" 
    645                              * em parte do nome (palavra reservada para pastas locais) */ 
    646                             if($(this).val().match(/[\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi) || $(this).val().indexOf("local_") != -1){ 
    647                                 return write_msg(get_lang("cannot create folder. try other folder name")); 
    648                             } 
    649                             if($(this).parents("li").find("input[type=hidden]").val() == "localFolder"){ 
    650  
    651                                  $(".new_folder").parent().addClass("folders-loading"); 
    652  
    653                                  var folderName = $(this).val(); 
    654                                  var folder = (folderName != "" ? folderName : get_lang("New Folder")); 
    655                                  var father = typeof(selected_li.attr('id')) != "undefined" ? selected_li.attr('id').split("_")[2] : "home"; 
    656  
    657                                  $(this).parents(".treeview:first").find("li").each(function(){ 
    658                                      var eachFolder = $(this).find("span:first").text().trim(); 
    659                                      if(folder == eachFolder){ 
    660                                         existsIdenticalFolder = true; 
    661                                         return false; 
    662                                      }   
    663                                  }); 
    664  
    665                                  if(existsIdenticalFolder){ 
    666                                     event.stopPropagation(); 
    667                                     write_msg(get_lang("Mailbox already exists")); 
    668                                     draw_new_tree_folder(); 
    669                                     return false; 
    670                                  } 
    671  
    672                                  if(folderName.indexOf("/") != -1){ 
    673                                     auxNameFolder = folderName.split("/"); 
    674  
    675                                     makeChildren(auxNameFolder, father); 
    676                                  } else { 
    677                                      var folder = (folderName != "" ? folderName : get_lang("New Folder")); 
    678                                      create_new_local_folder((selected_li.attr('id') ? selected_li.attr('id') : "inbox") , folder); 
    679                                  } 
    680  
    681                                  cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    682                             } else { 
    683                                 if($('[id="'+ (selected_li.attr('id')? selected_li.attr('id') : "INBOX") + cyrus_delimiter + $(this).val()+'"]').length){ 
    684                                     $(".folders-loading").removeClass("folders-loading"); 
    685                                     write_msg(get_lang("Mailbox already exists")); 
    686                                     return draw_new_tree_folder(); 
    687                                 } 
    688                                 $(".new_folder").parent().addClass("folders-loading"); 
    689                                 create_new_folder(($(this).val() != "" ? $(this).val() : get_lang("New Folder")), (selected_li.attr('id')? selected_li.attr('id') : "INBOX")); 
    690                             } 
    691  
    692                         }else if( event.keyCode == 27){ 
    693                             draw_new_tree_folder(); 
    694                         } 
    695  
    696                     }).focusout(function(){ 
    697                         if(!existsIdenticalFolder){ 
    698                             draw_new_tree_folder(); 
    699                         } 
    700                          
    701                     }); 
    702                 }).end().find(".float-menu-export").click(function(){ 
    703                     //proxy_mensagens.export_all_messages($(this).parents("li:first").attr("id")) 
    704  
    705                     var name_box = $(this).parents("li:first").attr("id"); 
    706  
    707                     var name_folder = name_box.split(cyrus_delimiter)[name_box.split(cyrus_delimiter).length-1]; 
    708  
    709  
    710                     var hand_export = function(data){ 
    711                                                 clean_msg(); 
    712                         if(!data){ 
     907                }).focusout(function() 
     908                { 
     909                    if(!existsIdenticalFolder) 
     910                    { 
     911                        draw_new_tree_folder(); 
     912                    } 
     913 
     914                }); 
     915            }).end().find(".float-menu-export").click(function() 
     916            { 
     917                var name_box = $(this).parents("li:first").attr("id"); 
     918 
     919                var name_folder = name_box.split(cyrus_delimiter)[name_box.split(cyrus_delimiter).length - 1]; 
     920 
     921 
     922                var hand_export = function(data) 
     923                    { 
     924                        clean_msg(); 
     925                        if(!data) 
     926                        { 
    713927                            write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')) 
    714                         }else if(data["empty_folder"] || data == "empty_folder"){ 
     928                        } 
     929                        else if(data["empty_folder"] || data == "empty_folder") 
     930                        { 
    715931                            write_msg(get_lang("The selected folder is empty.")); 
    716                         }else 
    717                                                         download_attachments(null, null, data, null,null, name_folder +'.zip');                                          
     932                        } 
     933                        else download_attachments(null, null, data, null, null, name_folder + '.zip'); 
    718934                    } 
    719                     if($(this).parents("li:first").find("input[type=hidden]:first").val() == "localFolder"){                         
    720                           expresso_mail_archive.listMessages(name_box.split("_")[2]); 
    721                           var msgsArchive = expresso_mail_archive.messageslisted; 
    722                          
    723                            buildExportArchiver(msgsArchive, name_box); 
    724  
    725                     } else { 
    726                           cExecute("$this.exporteml.export_all",hand_export,"folder="+name_box);   
    727                     } 
    728                     write_msg(get_lang('You must wait while the messages will be exported...'),true);         
    729                 }); 
    730                 //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < END 
    731             } 
    732             if(!$(".new_folder").length){ 
    733                 $(this).find(".float-menu:first").css("display", ""); 
    734             } 
    735         }, 
    736         function(){ 
    737             $(this).find(".float-menu:first").hide(); 
    738         } 
    739     ); 
    740     $("#new_m").html($('.selected').find(".folder_unseen").html() ? $('.selected').find(".folder_unseen").html() : "0").css("color", "red"); 
     935                if($(this).parents("li:first").find("input[type=hidden]:first").val() == "localFolder") 
     936                { 
     937                    expresso_mail_archive.listMessages(name_box.split("_")[2]); 
     938                    var msgsArchive = expresso_mail_archive.messageslisted; 
     939 
     940                    buildExportArchiver(msgsArchive, name_box); 
     941 
     942                } 
     943                else 
     944                { 
     945                    cExecute("$this.exporteml.export_all", hand_export, "folder=" + name_box); 
     946                } 
     947                write_msg(get_lang('You must wait while the messages will be exported...'), true); 
     948            }); 
     949            //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < END 
     950        } 
     951        if(!$(".new_folder").length) 
     952        { 
     953            $(this).find(".float-menu:first").css("display", ""); 
     954        } 
     955    }, function() 
     956    { 
     957        $(this).find(".float-menu:first").hide(); 
     958    }); 
     959    $("#new_m") 
     960    .html($('.selected .message_unseen_count:first .folder_unseen').html() ? $('.selected .message_unseen_count:first .folder_unseen').html() : "0") 
     961    .css("color", "red"); 
    741962} 
Note: See TracChangeset for help on using the changeset viewer.