source: sandbox/2.5.0-expresso1/prototype/modules/mail/js/foldertree.js @ 7261

Revision 7261, 30.8 KB checked in by thiago, 12 years ago (diff)

Ticket #3088 - Uma parte da exportação de mensagem foi concluida.

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