source: trunk/prototype/modules/mail/js/foldertree.js @ 7414

Revision 7414, 29.9 KB checked in by marcosw, 12 years ago (diff)

Ticket #3088 - Realização de merge da melhoria do MailArchiver?

  • Property svn:executable set to *
Line 
1var init_tree = 0;
2var selected;
3var over;
4var cp_tree1;
5var cp_tree2;
6//Marcosw início
7var cp_tree3;
8//Marcosw fim
9var mail_archive_url;
10function unorphanize(root, element) {
11    var ok = false;
12    var f = 0;
13    for (var i=0; i<root.length; i++) {
14        if (root[i].id == element.parentFolder) {
15            element.children = new Array();
16            root[i].children.push(element);
17            return true;
18        } else if (ok = unorphanize(root[i].children, element)) {
19            break;
20        }
21    }
22    return ok;
23}
24
25function mount_children_localfolders_list(folder){
26    folder.children = new Array();
27    folder.id_search = folder.id;
28    folder.id = 'local_messages_'+folder.id,
29    folder.commonName =  folder.name,
30    folder.parentId = folder.parentid,
31    folder.type = 'localFolder',
32    folder.name = folder.id,
33    folder.messageCount = {
34                             total: folder.messages,
35                             unseen: folder.unseen
36                          }
37
38    if(folder.haschild){
39        expresso_mail_archive.getFoldersList(folder.id_search);
40        folder.children = expresso_mail_archive.folders;
41
42        for(var i = 0; i < folder.children.length; i++){
43            mount_children_localfolders_list(folder.children[i]);
44        }
45
46    }
47}
48
49function count_unseen_children(folder){
50
51    if(folder.children.length){
52        for(var i=0; i< folder.children.length; i++){
53           
54                if(folder.children[i].children.length)
55                folder.children[i]['children_unseen'] = (folder.children[i]['children_unseen'] ? folder.children[i]['children_unseen'] : 0) + count_unseen_children(folder.children[i]);   
56           
57            folder['children_unseen'] = (folder['children_unseen'] ? folder['children_unseen'] : 0)+ (folder.children[i]['children_unseen'] ? folder.children[i]['children_unseen'] : 0) + parseInt(folder.children[i].messageCount.unseen);           
58        }
59        return folder['children_unseen'];
60    } else {
61        return parseInt(folder.messageCount.unseen);
62    }
63}
64
65function valid_tabs(children_of_this_folder, folder_to_move){
66    var borders_open = $("#border_tr").children();
67
68    var error = false;
69    for(var i = 1; i <= borders_open.length -2; i ++){
70        //VERIFICA A CADA FILHO DA PASTA SE ESTA eventNSAGEM E DESTA PASTA
71        $.each(children_of_this_folder, function(index, value){
72            if($(children_of_this_folder[index]).attr('id') == openTab.imapBox[$(borders_open[i]).find("input[type=hidden]").attr("name")]){
73                error = true;
74                write_msg(get_lang("One or more messages from any sub-folder are open"));
75                return error;
76               
77            }
78        });
79        if(error){
80            return error;
81        }
82        //VERIFICA SE EXISTE NA PASTA A SER MOVIDA
83        if(openTab.imapBox[$(borders_open[i]).find("input[type=hidden]").attr("name")] == folder_to_move){
84            error = true;
85            write_msg(get_lang("One or more messages from this folder are open"));
86            return error;
87        }
88    }
89}
90
91function draw_new_tree_folder(callback){
92    var folders = DataLayer.get("folder", true);   
93
94if(preferences.use_local_messages != 0){
95
96    if(expresso_mail_archive.folders && !expresso_offline && expresso_mail_archive.enabled == true) { //MailArchive
97        //pega pastas locais do mailarchiver e insere no array de pastas
98            expresso_mail_archive.getFoldersList("home");
99            treeFolders = expresso_mail_archive.folders;
100
101            for(var i=0; i<treeFolders.length; i++ ){
102                mount_children_localfolders_list(treeFolders[i]);
103            }
104           
105            for(var i = 0; i < treeFolders.length; i++){
106                folders.push(treeFolders[i]);
107            }
108 
109    }
110}
111
112    if(!selected){
113        selected = "INBOX";
114    }
115
116    var tree1 = new Array();
117    var tree2 = new Array();
118    var tree3 = new Array();
119    for (var i=0; i<folders.length; i++) {
120        if (/^INBOX/.test(folders[i].id)) {
121            if (!unorphanize(tree1, folders[i])) {
122                folders[i].children = new Array();
123
124                tree1.push(folders[i]);
125            }
126        }
127        else if (/^user/.test(folders[i].id)) {
128            if (!unorphanize(tree2, folders[i])) {
129                folders[i].children = new Array();
130                tree2.push(folders[i]);
131            }
132        }
133        else if (/^local_messages/.test(folders[i].id)) {
134           
135                tree3.push(folders[i]);
136           
137        }
138    }
139   
140    for(var i =0; i<tree1.length; i++){
141        count_unseen_children(tree1[i]);
142    }
143    for(var i =0; i<tree2.length; i++){
144        count_unseen_children(tree2[i]);
145    }
146    for(var i =0; i<tree3.length; i++){
147        count_unseen_children(tree3[i]);
148    }
149    cp_tree1 = tree1;
150    cp_tree2 = tree2;
151    //Marcosw inicio
152    cp_tree3 = tree3;
153    //Marcosw fim
154    var shared_acls = {};
155
156    $.each(cp_tree2, function(index, value){
157        shared_acls[value.id] = value.acl_share;
158    });
159
160    $("#content_folders").removeClass("menu-degrade").parent().removeClass("image-menu");
161    mail_archive_url = mail_archive_protocol + "://" + mail_archive_host + ":" + mail_archive_port + "/admin";
162    var html = DataLayer.render('../prototype/modules/mail/templates/detailedfoldertree.ejs', {folders: [tree1, tree2, tree3]});
163    var folders_html = $("#content_folders").html(html).find(".mainfoldertree").treeview({
164            persist: "cookie",
165            animated: "fast"
166    }).find(".folder").unbind("click").click(function(event){
167
168        if ($(this).next().hasClass("local-connect")) {
169            return;
170        }
171
172        if ($(this).hasClass("local-folder")) {
173            return;
174        }
175       
176        // MUDANÇA DE PASTAS!
177        var target = $(this);   
178       
179        if($(".folders-loading").length)
180            return;
181       
182        if($(event.target).parent().is(".float-menu"))
183            return;
184           
185        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') )
186            return;
187       
188        if( target.parent().find(".new_folder").length)
189            return;
190           
191        if( !target.attr('id') )
192            target = target.parent();
193        if (target[0] == $(".mainfoldertree")[0]) return;
194        var uiId = target.attr('id');
195        var child = target.find('.folder');
196         
197        if(!target.is('.mainfoldertree > .expandable-hitarea, .mainfoldertree > .collapsable-hitarea')){
198            $('.filetree span.folder.selected').removeClass('selected');
199            $(target).children('.folder').addClass('selected');
200        }
201        $(this).addClass("folders-loading");
202        selected = target.attr('id');
203        change_folder(target.attr('id'), child.attr('title')); 
204
205        $.ajax({
206              url : "controller.php?"+ $.param( { action: "$this.imap_functions.get_folders_list", folder: target.attr('id') } ),
207              success : function(data){
208                  data = connector.unserialize(data);
209
210                  if(data)
211                    build_quota(data);
212              }
213        });
214
215    }).filter('.followup-messages').click(function(event, ui){
216        search_emails("UNDELETED KEYWORD \"$Followupflagged\"");
217    }).end().end();
218   
219    folders_html.find('[id="'+selected+'"]').children().addClass("selected");
220    $(".folder").not(".head_folder").not(".shared-folders").parent().find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({
221        // DRAG DE PASTAS
222        start : function(){
223            $(this).css("color", "gray");
224        },
225        stop : function(){
226            $(this).css("color", "");
227        },
228        revert: "invalid",
229        helper: function(event){
230            if($.trim(($(this).text().split("["))[0]).length > 18)
231                return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($(this).text().split("["))[0]).substring(0,18) + "...", type: "folder"}));
232            return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($(this).text().split("["))[0]), type: "folder"}));
233        },
234        delay: 150,
235        refreshPositions: true,
236        zIndex : 2700,
237        //scroll: true,
238        //scrollSensitivity: 100,
239        //scrollSpeed: 100,
240        containment: "#divAppbox"
241    }).end().droppable({
242        //DROP DE PASTAS
243        over : function(a, b){
244            //INICIO : SE A PASTA CONTER FILHAS EXPANDE
245            over = $(this);
246            $(this).addClass("folder-over");
247            if(($(this)[0] != $(this).parent().find(".head_folder")[0]))
248                if($(this).prev()[0])
249                    if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){
250                        setTimeout(function(){
251                            if(over.hasClass("folder-over"))
252                                over.prev().trigger("click");
253                        }, 500);
254                       
255                    }
256            //FIM : SE A PASTA CONTER FILHAS EXPANDE
257           
258            //SETA BORDA EM VOLTA DA PASTA
259        },
260        out : function(){
261            //RETIRA BORDA EM VOLTA DA PASTA
262            $(this).removeClass("folder-over");
263        },
264        drop : function(event, ui){
265            $(this).removeClass("folder-over");
266            if($(this).parent().attr('id') == undefined){
267                var folder_to = 'INBOX';
268                var to_folder_title = get_lang("Inbox");
269            }else{
270                var folder_to = $(this).parent().attr('id');
271                var to_folder_title = $(this).attr('title');
272            }       
273            var folder_to_move = ui.draggable.parent().attr('id');
274            var border_id = ui.draggable.find("input[type=hidden]").attr("name");
275            // eventnsagens : SE O DROP VIER DA LISTA DE eventNSAGENS :
276            if(folder_to_move == "tbody_box"){
277                move_msgs2(get_current_folder(), 'selected', 0, folder_to, to_folder_title,true);
278                return refresh();
279            }
280            //SE FOR DE UMA PESQUISA RAPIDA
281            else if(ui.draggable.parents('[id^="content_id_"]')[0]){
282                move_search_msgs("content_id_"+border_id, folder_to, to_folder_title);
283                return refresh();
284            }
285            // eventnsagens : SE O DROP VIER DE UMA ABA ABERTA
286            else if(folder_to_move == "border_tr"){
287                var id_msg = border_id.split("_")[0];
288                folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder());
289                alternate_border(border_id);
290                move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true);
291                return refresh();
292            }
293            // SE O DROP VIER DA LISTA DE PASTAS
294            else{
295                var folder_to_exist = folder_to_move.split(cyrus_delimiter);   
296                folder_to_exist = folder_to+cyrus_delimiter+folder_to_exist[folder_to_exist.length-1];
297               
298                //VERIFICA SE EXISTE UMA eventNSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS
299
300                if(valid_tabs(ui.draggable.parent().find("li"), folder_to_move)){
301                    return;
302                }
303                //FIM : VERIFICA SE EXISTE UMA eventNSAGENS ABERTA NESTA PASTA E NAS SUAS FILHAS;
304               
305                // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA PARA O eventSMO LOCAL
306                if(folder_to_exist == folder_to_move){
307                    return write_msg(get_lang("Thie folder is already in this place"));
308                }
309               
310                // VALIDA SE O USUARIO ESTA TENTANDO MOVER A PASTA ABERTA NO momentO
311                if(folder_to_move == get_current_folder()){
312                    return write_msg(get_lang("It's not possible move this folder, because it is being used in the moment!"));
313                }
314               
315                // VALIDA SE O USUARIO ESTA TENTANDO MOVER UMA PASTA FILHA DA PASTA ABERTA NO momentO
316                if(ui.draggable.parent().find(".selected")[0]){
317                    return write_msg(get_lang("It's not possible move this folder, because its subfolder is being used in the moment!"));
318                }
319               
320                // VALIDA SE O USUARIO ESTA TENTANDO MOVER UMA PASTA PAI PARA DENTRO DE UMA FILHA
321                if(ui.draggable.parent().find('[id="'+folder_to+'"]')[0]){
322                    return write_msg(get_lang("It's not possible to move this folder to its subfolders!"));
323                }                   
324               
325                if($('[id="'+folder_to_exist+'"]').length){
326                    return write_msg(get_lang("Can not move this folder to this location, because the target has already a folder with this name"));
327                }
328               
329                $(this).addClass("folders-loading");
330
331
332                if($(this).parent().parent().parent().find("input").val() == "localFolder"){
333                    var idFolder = $(this).parent().attr("id").split("_")[2];
334
335                    expresso_mail_archive.moveFolder(idFolder, folder_to_move.split("_")[2]);
336                     cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
337                } else {
338                    $.ajax({
339                        url : "controller.php?"+ $.param( { action: "$this.imap_functions.move_folder", folder_to_move: folder_to_move, folder_to: folder_to } ),
340                        success : function(data){
341                            cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
342                            data = connector.unserialize(data);
343                            if(data == "Permission denied"){
344                                write_msg(get_lang("Permission denied"));
345                            }else if(data){
346                                write_msg(get_lang("The folder was successfully moved"));
347                            } else {
348                                write_msg(get_lang("ERROR moving your folder."));
349                            }
350                        }
351                    });
352                }
353            }
354        }
355    });
356    $(".folder").not(".shared-folders").parent().find(".folder").hover(
357        function(){
358            //CASO A LI NÃO TENHA UM eventNU FLUTUANTE AINDA, O eventNU É ADICIONADO!
359            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*/
360                var folder_ = $(this);
361                var folder_name;
362                var shared = {
363                    head : false,
364                    valid : false
365                };
366                if(folder_.parent().attr('id')){
367                    folder_name = folder_.parent().attr('id').split(cyrus_delimiter);
368                    folder_name = folder_name[folder_name.length -1];
369                    shared.valid = folder_.parent().attr('id').search("user/") == 0 ? true : false;
370                }else
371                    folder_name = "Root";
372               
373                if(shared.valid){
374                    shared.head = folder_.parent().attr('id').split(cyrus_delimiter).length == 2 ?  true : false;
375                    var folder_name_parts = folder_.parent().attr('id').split(cyrus_delimiter);
376                    var acls = shared_acls[folder_name_parts[0]+cyrus_delimiter+folder_name_parts[1]];
377
378                }
379
380                html = DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", {name_folder : folder_name, flag : shared, acl : acls});                   
381                    //FUNÇÃO DO eventNU FLUTUANTE EDITAR < BEGIN
382                var esc = false;
383                $(folder_).append(html).find(".float-menu-edit").click(function(){
384                    var folder_id = $(this).parents(".closed:first").attr('id');
385                    var name = $.trim($(this).parents(".closed:first").find("span:first").text().split("[")[0]);
386                    if($(this).parents(".closed:first").find("span:first").hasClass("selected"))
387                        return write_msg(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
388                    if($(this).parents(".closed:first").find(".selected").length)
389                        return write_msg(get_lang("It's not possible rename this folder, because its subfolder is being used in the moment!"));
390                    if(valid_tabs($(this).parents("li:first").find("li"), folder_id))
391                        return;
392                    $(this).parents(".closed:first").find("span:first").empty().append("<input class='new_folder folder' type='text' maxlength='100'></input>");
393                    $(".new_folder").focus().keydown(function(event){
394                        event.stopPropagation();
395                       
396                        if(event.keyCode == 13){
397                            if($(this).val() != ""){
398
399                                if($(this).val().match(/[\/\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi)){
400                                    return write_msg(get_lang("cannot create folder. try other folder name"));
401                                }
402                                var new_name = folder_id.replace(/[a-zA-Z0-9á-úÁ-Ú^\s_-]+$/, $(this).val());
403                                if($('[id="'+new_name+'"]').length){
404                                    $(".folders-loading").removeClass("folders-loading");
405                                    write_msg(get_lang("Mailbox already exists"));
406                                    return draw_new_tree_folder();
407                                }
408                                $(".new_folder").parent().addClass("folders-loading");
409
410                                if($(this).parent().parent().parent().find("input").val() == "localFolder"){
411                                    var idFolder = $(this).parent().parent().attr("id").split("_")[2];
412                                    expresso_mail_archive.renameFolder(idFolder, new_name);
413                                     cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
414                                } else {
415
416                                $.ajax({
417                                    url : "controller.php?action=$this.imap_functions.ren_mailbox",
418                                    type : "POST",
419                                    data : "current="+folder_id+"&rename="+new_name,
420                                    success : function(data){
421                                        data = connector.unserialize(data);
422                                        if(data == "Permission denied"){
423                                            $(".folders-loading").removeClass("folders-loading");
424                                            cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
425                                            return write_msg(get_lang("Permission denied"));
426                                        }
427                                        write_msg(get_lang("The folder was successfully rename"));
428                                        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
429                                    }
430                                });
431
432                                }
433                            }else{
434                                $(".new_folder").focusout();
435                            }
436                        }else if( event.keyCode == 27){
437                            draw_new_tree_folder();
438                        }
439                    }).focusout(function(){
440                        draw_new_tree_folder();
441                    }).val(name);
442                })
443                //FUNÇÃO DO eventNU FLUTUANTE EDITAR < END
444                //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < BEGIN
445                .end().find(".float-menu-remove").click(function(){
446                   
447                    var folder_id = $(this).parents(".closed:first").attr('id');
448                    var folder_name = "<strong>"+$.trim($(this).parents(".closed:first").find(".folder").text().split("[")[0])+"</strong>";
449                   
450                    if(valid_tabs($(this).parents("li:first").find("li"), folder_id))
451                        return;
452                    $(this).parents(".closed:first").find(".folder").addClass("folders-loading");
453                   
454                    if($(this).parents(".closed:first").find("ul").length){
455                        $(this).parents(".closed:first").find(".folder").removeClass("folders-loading");
456                        return write_msg(get_lang("Delete/move subfolders first"));
457                    }
458                    if($(this).parents(".closed:first").find(".selected").length){
459                        $(this).parents(".closed:first").find(".folder").removeClass("folders-loading");
460                        return write_msg(get_lang("It's not possible delete this folder, because it is being used in the moment!"));
461                    }
462                    var folder_span = $(this);
463                    var confirm_text = get_lang("Do you wish to exclude the folder ");
464
465                    $.Zebra_Dialog(confirm_text+folder_name, {
466                        'type':     'question',
467                        'overlay_opacity': '0.5',
468                        'buttons':  [get_lang('Yes'), get_lang('No')],
469                        'onClose':  function(caption) {
470
471                            if(caption == get_lang('Yes')){
472                                if(folder_span.parent().parent().parent().find("input").val() == "localFolder"){
473                                    var idFolder = folder_span.parent().parent().parent("li").attr("id").split("_")[2];
474                                    expresso_mail_archive.deleteFolder(idFolder);
475                                     cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
476                                } else {
477                                $.ajax({
478                                    url : "controller.php?action=$this.imap_functions.delete_mailbox",
479                                    type: "POST",
480                                    data : "del_past="+folder_id,
481                                    success : function(data){
482                                        data = connector.unserialize(data);
483                                        if(data == "Mailbox does not exist"){
484                                            $(".folders-loading").removeClass("folders-loading");
485                                            return write_msg(get_lang("Mailbox does not exist"));
486                                        }else if(data == "Permission denied"){
487                                            $(".folders-loading").removeClass("folders-loading");
488                                            cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
489                                            return write_msg(get_lang("Permission denied"));
490                                        }
491                                        write_msg(get_lang("The folder %1 was successfully removed", folder_name));
492                                        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
493                                    }
494                                });
495                                }
496                            }else{
497                                folder_span.parents(".closed:first").find(".folder").removeClass("folders-loading");
498                                return;
499                            }
500                        }
501                    });
502                    /* if(!confirm(confirm_text + folder_name)){
503                        $(this).parents(".closed:first").find(".folder").removeClass("folders-loading");
504                        return;
505                    } */
506                })
507                //FUNÇÃO DO eventNU FLUTUANTE EXCLUIR < END
508                //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < BEGIN
509                .end().find(".float-menu-new").click(function(){
510                    $(this).parents(".float-menu").hide();
511                    var selected_li = $(this).parents(".closed:first");
512                    if(selected_li.find("ul:first").length){
513                        var new_folder = $("<li><input class='new_folder folder' type='text' maxlength='100'></input></li>").appendTo(selected_li.find("ul:first"));                               
514                        if(selected_li.find(".expandable-hitarea").length){
515                            selected_li.find(".expandable-hitarea").trigger('click');
516                        }
517                        selected_li.find("ul:first").treeview({
518                            add: new_folder
519                        });
520                    }else if(selected_li.length){
521                        var new_folder = $("<ul><li><input class='new_folder folder' type='text' maxlength='100'></input></li></ul>").appendTo(selected_li);                               
522                        selected_li.treeview({
523                            add: new_folder
524                        });
525                    }else{
526                        selected_li = $(this).parents(".head_folder").parent();
527                        if($(this).parents(".head_folder").parent().find(".expandable-hitarea").length){
528                            $(this).parents(".head_folder").parent().find(".expandable-hitarea").trigger('click');
529                        }
530                        var new_folder = $("<ul><li><input class='new_folder folder' type='text' maxlength='100'></input></li></ul>").appendTo(selected_li);                               
531                        selected_li.treeview({
532                            add: new_folder
533                        });
534                    }
535                   
536                    selected_li.find(".new_folder").Watermark("Nova Pasta").focus().keydown(function(event){
537                        event.stopPropagation();
538
539
540                        if(event.keyCode == 13){
541
542                            if($(this).parent().parent().parent().find("input[type=hidden]").val() == "localFolder"){
543
544                                 $(".new_folder").parent().addClass("folders-loading");
545
546                                 var folderName = $(this).val();
547                                 var folder = (folderName != "" ? folderName : get_lang("New Folder"));
548
549                                 create_new_local_folder((selected_li.attr('id') ? selected_li.attr('id') : "inbox") , folder);
550                                 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);
551                            } else {
552
553                                if($(this).val().match(/[\`\~\^\<\>\|\\\"\!\@\#\$\%\&\*\+\(\)\[\]\{\}\?;:]/gi)){
554                                    return write_msg(get_lang("cannot create folder. try other folder name"));
555                                }
556                                if($('[id="'+ (selected_li.attr('id')? selected_li.attr('id') : "INBOX") + cyrus_delimiter + $(this).val()+'"]').length){
557                                    $(".folders-loading").removeClass("folders-loading");
558                                    write_msg(get_lang("Mailbox already exists"));
559                                    return draw_new_tree_folder();
560                                }
561                                $(".new_folder").parent().addClass("folders-loading");
562                                create_new_folder(($(this).val() != "" ? $(this).val() : get_lang("New Folder")), (selected_li.attr('id')? selected_li.attr('id') : "INBOX"));
563                            }
564
565                        }else if( event.keyCode == 27){
566                            draw_new_tree_folder();
567                        }
568
569
570
571                    }).focusout(function(){
572                        draw_new_tree_folder();
573                    });
574                }).end().find(".float-menu-export").click(function(){
575                    //proxy_mensagens.export_all_messages($(this).parents("li:first").attr("id"))
576
577                    var name_box = $(this).parents("li:first").attr("id");
578
579                    var name_folder = name_box.split(cyrus_delimiter)[name_box.split(cyrus_delimiter).length-1];
580
581
582                    var hand_export = function(data){
583                        if(!data){
584                            write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'))
585                        }else if(data["empty_folder"] || data == "empty_folder"){
586                            write_msg(get_lang("The selected folder is empty."));
587                        }else
588                          download_attachments(null, null, data, null,null, name_folder +'.zip');
589                    }
590                    if($(this).parents("li:first").find("input[type=hidden]:first").val() == "localFolder"){                       
591                          expresso_mail_archive.listMessages(name_box.split("_")[2]);
592                          var msgsArchive = expresso_mail_archive.messageslisted;
593                       
594                           buildExportArchiver(msgsArchive, name_box);
595
596                    } else {
597                          cExecute("$this.exporteml.export_all",hand_export,"folder="+name_box); 
598                    }
599                    write_msg(get_lang('You must wait while the messages will be exported...'));       
600                });
601                //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < END
602            }
603            if(!$(".new_folder").length){
604                $(this).find(".float-menu:first").css("display", "");
605            }
606        },
607        function(){
608            $(this).find(".float-menu:first").hide();
609        }
610    );
611    $("#new_m").html($('.selected').find(".folder_unseen").html() ? $('.selected').find(".folder_unseen").html() : "0").css("color", "red");
612}
Note: See TracBrowser for help on using the repository browser.