source: sandbox/2.5.1-evolucao/expressoMail1_2/js/abas.js @ 8119

Revision 8119, 28.7 KB checked in by thiago, 11 years ago (diff)

Ticket #3436 - Problema ao mudar de pasta e clicar em arquivar.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1var BordersArray = new Array();
2BordersArray[0] = new setBorderAttributes(0);
3var countBorders = 0;
4var partMsgs = new Array();
5var msgAttachments = new Array();
6var uidsSave = new Array();
7var zebraDiscardEventDialog = false;
8var saveBorderError = new Array();
9
10function setBorderAttributes(ID)
11{
12    this.border_id = "border_id_"+ID;
13    this.sequence = ID;
14}
15
16
17function alternate_border(ID)
18{
19   
20
21    msg_selected = false;//Controle da seleção de mensagens
22    if(isNaN(ID))
23        if(preferences.use_shortcuts == "1")
24            select_msg((ID.split("_"))[0]);
25    if( document.getElementById("div_menu_c3") != null )
26    {
27        //div que contém divs de paginação de todas abas de listagem possíveis (listagem de pasta e listagem de pesquisa)
28        var node = document.getElementById("div_menu_c3").firstChild;
29        //Se for diferente da aba de listagem, remove a paginação
30        if(currentTab != 0){
31            //Enquanto node for true (retorna false se não houver mais elementos)
32            while ( node ) {
33                node.style.display = "none";
34                node = node.nextSibling;
35            }
36        }
37       
38        if( document.getElementById("span_paging"+ID) != null )
39            document.getElementById("span_paging"+ID).style.display = "block";
40    }
41   
42    if ( typeof win == 'object' && win.close && win.close.constructor == Function ){
43            var search_win = document.getElementById( 'window_QuickCatalogSearch' );
44            if(search_win){
45                search_win.style.visibility = 'hidden';
46            }
47            win.close( );
48        }
49       
50    if (! Element('border_id_'+ID))
51        return false; // Not possible to alternate
52    show_hide_span_paging(ID);
53    spanD = Element("span_D");
54    if (spanD)
55        spanD.style.display = (openTab.type[ID] == 0 ? '' : 'none');
56
57    var footer_menu = Element("footer_menu");   
58    var aba = Element('border_id_'+ID);
59    if (footer_menu != null) {
60        footer_menu.style.display = (openTab.type[ID] != 4 ? '' : 'none');
61        var alternate_menu = document.getElementById('localOption');
62       
63        if(alternate_menu != null && alternate_menu != 'undefined'){ //Quando Carregado o expresso mail
64            if(openTab.imapBox[ID]!= null && openTab.imapBox[ID]!= 'undefined' ){ //Quando abrir uma Nova Mensagem
65                if((openTab.imapBox[ID].indexOf("local_") >= 0)){                       
66                        alternate_menu.title = get_lang("Unarchive");
67                        alternate_menu.removeAttribute("onclick");
68                        if(!is_ie)
69                            alternate_menu.setAttribute("onclick",  'expresso_local_messages.unarchive_msgs(\''+openTab.imapBox[ID]+'\', null)');
70                        else{
71                            alternate_menu.onclick = function(){
72                                expresso_local_messages.unarchive_msgs(openTab.imapBox[ID], null);
73                            }
74                        }
75                        alternate_menu.innerHTML = get_lang("Unarchive");
76                       
77                    }else{
78                        alternate_menu.title = get_lang("Archive");
79                        alternate_menu.removeAttribute("onclick");
80                        if(!is_ie)
81                            alternate_menu.setAttribute("onclick", 'archive_msgs(\''+openTab.imapBox[ID]+'\', null)');     
82                        else{
83                            alternate_menu.onclick = function(){
84                                archive_msgs(openTab.imapBox[ID], null);
85                            }   
86                        }
87                        alternate_menu.innerHTML = get_lang("Archive");
88                    }
89                   
90            }
91        }
92       
93        if((aba.id.indexOf("_r") < 0) && (aba.id.indexOf("_0") < 0) && (aba.id.indexOf("id_search_") < 0) && (aba.id.indexOf("_s") < 0)){
94            spanD.style.display = 'none';
95            footer_menu.style.display = 'none';         
96        }
97    }
98
99
100    var len = BordersArray.length;
101    for (var i=0; i < len; i++)
102    {
103        m = document.getElementById(BordersArray[i].border_id);
104        if ((m)&&(m.className == 'menu-sel'))
105        {
106            m.className = 'menu';
107            c = document.getElementById("content_id_"+BordersArray[i].sequence);
108            c.style.display = 'none';
109            if(Element("font_border_id_"+BordersArray[i].sequence))
110                Element("font_border_id_"+BordersArray[i].sequence).className = 'font-menu';   
111
112        }
113    }
114
115    m = Element("border_id_"+ID);
116    if (m)
117        m.className = 'menu-sel';
118    if(Element("font_border_id_" + ID))
119        Element("font_border_id_" + ID).className = 'font-menu-sel';
120    var c = Element("content_id_"+ID)
121    if (c)
122        c.style.display = '';
123
124
125    // hide the DropDrowContact, if necessary
126    window_DropDownContacts = Element('tipDiv');
127    if ((window_DropDownContacts)&&(window_DropDownContacts.style.visibility != 'hidden')){
128        window_DropDownContacts.style.visibility = 'hidden';
129    }
130
131    numBox = getNumBoxFromTabId(ID);
132    if (typeof(ID)=='number') {
133                 numBox = ID;
134         }
135         else {
136             if (ID.match("search_"))
137             {
138                 if (ID.match("search_local_msg"))
139                 {
140                         var p = ID.search(/[0-9]/);
141                         numBox =  ID.substr(p);
142                 }
143                 else
144                 {
145                         numBox = ID.substr(7);
146                 }
147             }
148         }
149    currentTab=ID;
150    if( document.getElementById('to_'+ID) && document.getElementById('to_'+ID).type == "textarea"){
151        document.getElementById('to_'+ID).focus();
152    }
153    if (ID == 0){
154        updateSelectedMsgs();
155    }
156    RichTextEditor.setEditable(ID);
157    resizeWindow();
158
159    return ID;
160}
161
162function create_border(borderTitle, id_value, search)
163{
164    borderTitle = ( ( borderTitle && borderTitle.constructor == String && borderTitle.length > 0 ) ? borderTitle : ' ' );
165    borderTitle = html_entities(borderTitle);   
166    var resize = false;
167        resize = resize_borders();
168        if (!resize){
169            var str_continue = '';
170            var bolContinue = true;
171            str_continue = '\n' + get_lang('You must manually close one of your tabs before opening a new one');
172            if (preferences.auto_close_first_tab == 1){
173                var children = Element('border_tr').childNodes;
174                var bolDelete = true;
175                for (var i=0; i<children.length; i++) {
176                    if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank'))
177                    {
178                        bolDelete = true;
179                        var num_child = children[i].id.toString().substr(10);
180                        alternate_border(num_child);
181                        if (editTest(num_child)){
182                            bolDelete = false;
183                        }
184                        if (bolDelete || bolContinue){
185                            str_fechar = '\n' + get_lang('Reached maximum tab limit. Want to close this tab');
186                            var confirmacao = confirm(str_fechar);
187                            if(confirmacao){
188                            bolContinue = false;
189                            delete_border(num_child, 'false');
190                            break;
191                            }else{
192                                return 'maximo';
193                        }
194                    }
195                }
196            }
197            }else{         
198                alert(get_lang('Reached maximum tab limit') + str_continue );
199                return 'maximo';
200            }
201        }
202   
203    if (! id_value){ // Is new message?
204        var ID = parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1;
205            if(isNaN(ID)){
206                var aux = BordersArray[(BordersArray.length-1)].sequence.split("_");
207                ID = parseInt(aux[1]) + 1;
208            }
209        }else
210    {
211        if (Element("border_id_"+id_value)) // It's opened already!
212            return alternate_border(id_value);
213       
214        var ID = id_value;
215        if(isNaN(ID) && ID.indexOf("search_local") >= 0){
216            if(current_folder.indexOf("local") >= 0)
217                openTab.imapBox[ID] = current_folder;
218            else
219                openTab.imapBox[ID] = 'local_search';
220        }else if(isNaN(ID) && ID.indexOf("search_") >= 0){
221            if(current_folder.indexOf("local") < 0)
222                openTab.imapBox[ID] = current_folder;
223            else
224                openTab.imapBox[ID] = 'search';
225        }else if( (currentTab != 0) && isNaN(currentTab) && (currentTab.indexOf("search") >= 0) && (ID.indexOf("msg") < 0) ) {
226            var id_border = currentTab.replace(/[a-zA-Z_]+/, "");
227            ID_TR = ID.toString().substr(0,ID.toString().indexOf("_r"));
228            var tr = Element(ID_TR) ? Element(ID_TR) : Element(ID_TR+"_s"+id_border);
229            openTab.imapBox[ID] = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name'));
230        }else
231            openTab.imapBox[ID] = current_folder;
232    }
233    td = document.createElement("TD");
234    td.id="border_id_" + ID;
235    if(resize)
236    {
237        td.setAttribute("width", parseInt(resize)+"px");
238        td.style.width = parseInt(resize)+"px";
239    }
240    else
241        td.setAttribute("width", "200px");
242
243    td.setAttribute("align", "right");
244    td.onclick = function(){alternate_border(ID);resizeWindow()};
245    td.setAttribute("noWrap","true");
246    td.setAttribute("role",get_current_folder());
247    td.title = borderTitle;
248    borderTitle = borderTitle ?  borderTitle : id_value ? get_lang("No Subject") : " "  ;
249    td.value = borderTitle;
250    if (borderTitle.length > 21)
251        borderTitle = borderTitle.substring(0,21) + "...";
252
253    if ( resize )
254        borderTitle = borderTitle.substring(0, resize*0.08);
255   
256    var cc = search;
257    if(!cc){
258        if(isNaN(ID)){
259            var is_local = ID.match('.*_local_.*');
260            if(!is_local)
261                cc = document.getElementById("em_message_search").value;
262            else{
263                if (currentTab == 0)
264                    cc = "";
265                else
266                    cc = document.getElementsByName(currentTab)[0].value;
267            }
268        }else{
269            cc ="";
270        }
271    }
272    td.innerHTML = "<div><div id='font_border_id_" + ID+"' class='font-menu'>" +
273                                borderTitle +
274                            "</div>\n\
275                            <div style='float:right;'>\n\
276                                <img onmousedown='javascript:return false' style='cursor:pointer' onclick=delete_border('" + ID + "','false') src='templates/"+template+"/images/close_button.gif'/>\n\ " +
277                            "</div>\n\ " +
278                            "<input type=\"hidden\" name=\""+ ID+"\" value=\""+cc+"\"></div>";     
279    bb = document.getElementById("border_blank");
280    parent_bb = bb.parentNode; //Pego o tbody
281    parent_bb.insertBefore(td, bb);
282
283    if((typeof(id_value) == 'string') && id_value.match(/_r/)){
284        $(td).draggable({
285            start : function(){
286                $('.upper, .lower').show();
287                $(".lower").css("top", ($("#content_folders").height()-18) + $("#content_folders").offset().top);
288                /* Habilitar anexar mensagem por drag-and-drop, se a aba atual for editável, 
289                ou seja, nem de leitura (2), nem de lista de mensagens (0):*/
290                var current_tab_type = openTab.type[currentTab];
291                if (current_tab_type != 0 && current_tab_type != 2){
292                    var dropzone = $("#fileupload_msg" + currentTab + "_droopzone");
293                    dropzone.show();
294                    dropzone.prev().hide();
295                    dropzone.droppable({
296                        over: function (event, ui){
297                            dropzone.addClass('hover in');
298                            $(ui.helper).find(".draggin-folder,.draggin-mail").css("color", "green");
299                        },
300                        out: function (event, ui) {
301                            dropzone.removeClass('hover in');
302                            $(ui.helper).find(".draggin-folder,.draggin-mail").css("color", "");
303                        },
304                        drop: function (event, ui) {
305                            var border_id = ui.draggable.find("input[type=hidden]").attr("name");
306                            var id_msg = border_id.split("_")[0];
307                            var folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder());
308                            attach_message(folder, id_msg); /* Anexa a mensagem especificada (por folder e id_msg)
309                                                               na mensagem sendo criada.*/
310                        }
311                    });
312                }
313                if($(".shared-folders").length){
314                    $(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({
315                        over : function(a, b){                     
316                            //SETA BORDA EM VOLTA DA PASTA
317                            $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "green");
318                            over = $(this);
319                            $(this).addClass("folder-over");
320                            if(($(this)[0] != $(this).parent().find(".head_folder")[0]))
321                                if($(this).prev()[0])
322                                    if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){
323                                        setTimeout(function(){
324                                            if(over.hasClass("folder-over"))
325                                                over.prev().trigger("click");
326                                        }, 500);
327                                       
328                                    }
329                            //$("#content_folders").stop().scrollTo($(this), {axis:'y', margin:true, offset:-50, duration:400});
330                        },
331                        out : function(a,b){
332                            //RETIRA BORDA EM VOLTA DA PASTA
333                            $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "");
334                            $(this).removeClass("folder-over");
335                        },
336                        //accept: ".draggin_mail",
337                        drop : function(event, ui){
338                            $(this).css("border", "0");
339                            if($(this).parent().attr('id') == undefined){
340                                var folder_to = 'INBOX';
341                                var to_folder_title = get_lang("Inbox");
342                            }else{
343                                var folder_to = $(this).parent().attr('id');
344                                var to_folder_title = $(this).attr('title');
345                            }       
346                            var folder_to_move = ui.draggable.parent().attr('id');
347                            var border_id = ui.draggable.find("input[type=hidden]").attr("name");
348                            if(folder_to_move == "border_tr"){
349                                var id_msg = border_id.split("_")[0];
350                                folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder());
351                                move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true);
352                                return refresh();
353                            }
354                        }
355                    });
356                }
357            },
358            stop :function(){
359                $('.upper, .lower').hide();
360                $(".shared-folders").parent().find(".folder").droppable("destroy");
361                /* Habilitar anexar mensagem por drag-and-drop, se a aba atual for editável, 
362                ou seja, nem de leitura (2), nem de lista de mensagens (0):*/
363                var current_tab_type = openTab.type[currentTab];
364                if (current_tab_type != 0 && current_tab_type != 2){
365                    var dropzone = $("#fileupload_msg" + currentTab + "_droopzone");
366                    dropzone.hide();
367                    dropzone.prev().show();
368                }
369            },
370            helper: function(event){
371                if( borderTitle.length > 18 )
372                    return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle.substring(0,18) + "...", type: "messages"})+"</td>");
373                else
374                    return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle, type: "messages"})+"</td>");
375            },
376            delay: 150,
377            cursorAt: {top: 5, left: 56},
378            refreshPositions: true ,
379            containment: "#divAppbox"
380        });
381    }
382        //_dragArea.makeDragged(td, id_value,td.value);
383
384    BordersArray[BordersArray.length] = new setBorderAttributes(ID);
385
386    var div = document.createElement("DIV");
387    div.id = "content_id_" + ID;
388    div.className = "conteudo";
389    div.style.display='';
390
391    div.style.overflow = "hidden";
392
393    Element("exmail_main_body").insertBefore(div,Element("footer_menu"));       
394    if (!is_ie)
395        resizeWindow();
396    alternate_border(ID);
397    uidsSave[ID] = [];
398    saveBorderError[ID] = false;
399    return ID;
400}
401
402function resize_borders()
403{
404    var numBorders = count_borders();
405
406    if (numBorders > 8)
407        return false;
408
409    return redim_borders(numBorders+1);
410}
411
412function count_borders()
413{
414    var numBorders = 0;
415    var children = Element('border_tr').childNodes;
416    for (var i=0; i<children.length; i++) {
417        if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank'))
418        numBorders++;
419    }
420
421    return numBorders;
422}
423
424function redim_borders(numBorders)
425{
426    var children = Element('border_tr').childNodes;
427    var clientWidth = (window.document.body.clientWidth - findPosX(Element("exmail_main_body"))) - Element("border_id_0").clientWidth - 30;
428    var newWidthTD = (clientWidth/numBorders)-6;
429    newWidthTD = newWidthTD > 200 ? 200 : (newWidthTD < 50 ? 50 : newWidthTD);
430    children = Element('border_tr').childNodes;
431    for (var i=0; i<children.length; i++) {
432        if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')){
433            $(children[i]).css("width", newWidthTD);
434            $(children[i]).find('div:first').css("width", newWidthTD);
435            set_border_caption(children[i].id, children[i].title, newWidthTD);
436        }
437    }
438    return newWidthTD;
439}
440
441
442
443
444function set_border_caption(border_id, title, border_width)
445{
446        var border = document.getElementById(border_id);
447        if (border_width == null)
448        {
449            border_width = border.clientWidth;
450        }
451    var caption = "";
452    if (border != null){
453        Element("font_"+border.id).style.width = (border_width - 35)+'px';
454        Element("font_"+border.id).innerHTML = title;
455    }
456    return(title);
457}
458
459
460function draftTests(ID, msg_sent){
461        if( openTab.toPreserve[ID] = false)
462        {
463            close_delete(ID, msg_sent);
464            delete(openTab.type[ID]);
465        }   
466        else 
467        {
468             var msg = 'Existem alterações não salvas na mensagem.';
469             var buttons = ['Descartar alterações', 'Salvar e fechar' ,'Cancelar'];
470             var width = 371;
471             if($('#fileupload_msg'+ID).find('.in-progress').length)
472             {
473                 msg = 'Existem anexos sendo enviados para o servidor.';
474                 buttons = ['Descartar alterações e anexos', 'Salvar estado atual fechar', 'Continuar editando'];
475                 width = 560;
476             }
477             zebraDiscardEventDialog = true;
478             window.setTimeout(function() {
479                $.Zebra_Dialog(msg, {
480                            'type':     'question',
481                            'overlay_opacity': '0.5',
482                            'custom_class': 'custom-zebra-filter',
483                            'buttons':  buttons,
484                            'width' : width,
485                            'onClose':  function(clicked) {
486                                    if(clicked == 'Cancelar'){
487                                        if (RichTextEditor.plain[id] != true)
488                                            setTimeout("RichTextEditor.focus("+ID+")",100);                 
489                                        else 
490                                            $('#body_'+ID).focus();
491                                    }
492                                    if(clicked == 'Descartar alterações' || clicked == 'Descartar alterações e anexos' ) {
493                                        if (openTab.imapBox[ID] && !openTab.toPreserve[ID])
494                                            openTab.toPreserve[ID] = false;
495
496                                        delete(openTab.type[ID]);
497                                        close_delete(ID, msg_sent);
498                                       
499                                    }
500                                    else if(clicked == 'Salvar e fechar' || clicked == 'Salvar estado atual fechar')
501                                    {
502                                        save_msg(ID);
503                                        openTab.toPreserve[ID] = false;
504                                   
505                                        close_delete(ID, msg_sent);
506                                        delete(openTab.type[ID]);
507                                    }   
508                                    else{
509
510                                        Element("border_id_"+ID).onclick = function () {alternate_border(ID);};
511                                        var setFocus = function(ID){
512                                                        if ($.trim($("#to_"+ID).val()) == "")
513                                                                $("#to_"+ID).focus();
514                                                        else if ($("#tr_cc_"+ID).css('display') != 'none' && $.trim($("#cc_"+ID).val()) == "")
515                                                                $("#cc_"+ID).focus();
516                                                        else if ($("#tr_cco_"+ID).css('display') != 'none' && $.trim($("#cco_"+ID).val()) == "")
517                                                                $("#cco_"+ID).focus();     
518                                                        else if ($.trim($("#subject_"+ID).val()) == "")
519                                                                $("#subject_"+ID).focus();
520                                                        else{
521                                                                if (RichTextEditor.plain[id] != true)
522                                                                        setTimeout("RichTextEditor.focus("+ID+")",100);                 
523                                                                else 
524                                                                        $('#body_'+ID).focus();
525                                                        }
526                                                }
527                                                setFocus(ID); 
528                                    }
529                                    window.setTimeout(function() {
530                                            zebraDiscardEventDialog = false;
531                                    }, 500);
532                            }})}, 300);   
533        }
534   
535}
536
537function editTest(ID){
538    var body = document.getElementById('body_'+ ID);
539    var content = $('#content_id_'+ ID);
540    if (body)
541    {
542        var save_link = content.find(".save");
543        if (openTab.toPreserve[ID] == undefined)
544                openTab.toPreserve[ID] = false;
545        if (((! openTab.toPreserve[ID] && ! ID.toString().match("_r")) || ((body.contentWindow) == 'object' && body.contentWindow.document.designMode.toLowerCase() == 'on')) && (save_link.onclick != ''))
546        {
547            return true;
548        }
549    }
550    return false;
551}
552
553function delete_border(ID, msg_sent)
554{
555    var borderElem = Element("border_id_" + ID);
556    if (borderElem){
557        borderElem.onclick = null;
558    }else{
559        return false;
560    }
561
562    if($("#content_id_"+ID+" textarea[name=input_to]").length ){
563        if($("#content_id_"+ID+" .save").is(':disabled') ) {
564             close_delete(ID, msg_sent);
565        } else if( $("#content_id_"+ID+" .save").is(':enabled') ) {
566             return(draftTests(ID, msg_sent));
567        }
568    } else {
569        close_delete(ID, msg_sent);
570    }
571
572    delete(openTab.type[ID]);
573    //refresh();
574    return true;
575     
576    /*var bolExecuteClose = true;
577    var borderElem = Element("border_id_" + ID);
578    if (borderElem){
579            borderElem.onclick = null; // It's avoid a FF3 bug
580        }else{
581            return false;
582        }
583    if (msg_sent == 'false')
584    {
585            if (editTest(ID)){
586                bolExecuteClose = false;
587                if(zebraDiscardEventDialog === false)
588                    return(draftTests(ID, msg_sent));
589            }
590    }
591   
592       
593        if (bolExecuteClose)
594        {
595            close_delete(ID, msg_sent);
596        }
597        delete(openTab.type[ID]);
598        return true;*/
599         
600}
601
602function close_delete(ID, msg_sent)
603{
604    openTab.toPreserve[ID] = false;
605        // Limpa o autosave
606            if (preferences.auto_save_draft == 1 && autoSaveControl.timer[ID] !== null )
607            {
608                autoSaveControl.status[ID] = null;
609                clearInterval(autoSaveControl.timer[ID]);
610            }
611        ////////////////////////////////
612       
613    hold_session = false;
614    if (exist_className(Element('border_id_'+ID),'menu-sel'))
615    {
616        if (BordersArray[BordersArray.length-2].sequence == ID)
617            this.alternate_border(0);
618        else
619            this.alternate_border(BordersArray[BordersArray.length-2].sequence);
620    }
621
622    // Remove TD, title
623    border = Element('border_id_' + ID);
624    border.parentNode.removeChild(border);
625    var j=0;
626    var new_BordersArray = new Array();
627    for (i=0;i<BordersArray.length;i++)
628        if (document.getElementById(BordersArray[i].border_id) != null){
629            new_BordersArray[j] = BordersArray[i];
630            j++;
631        }
632    if(j == 1)
633        Element("footer_menu").style.display = '';
634    BordersArray = new_BordersArray;
635
636    // Remove Div Content
637    content = Element('content_id_' + ID);
638    content.parentNode.removeChild(content);
639    if(is_webkit)
640        resizeWindow();
641    RichTextEditor.destroy( 'body_'+ID );
642        delete msgAttachments[ID];
643        //Caso for uma mensagem anexada tem que deletar ela da lixeira apos fechar a aba
644            var isPartMsg = false;
645            if(!parseInt(id2))
646                return;
647            var id2 = ID.replace('_r','');
648            for(var ii = 0; ii < partMsgs.length; ii++)
649               if(partMsgs[ii] == id2){           
650                  isPartMsg = true;
651                  partMsgs[ii] = null;
652               }     
653
654            if(isPartMsg === true){
655                var handler_delete_msg = function(){};
656                cExecute ("$this.imap_functions.delete_msgs&folder=INBOX"+cyrus_delimiter+trashfolder+"&msgs_number="+id2,handler_delete_msg);
657            }
658        ///////////////////////////////////////////////////////////////////////////////////
659       
660    return true;
661}
662
663function getTabPrefix() { // define o prefixo para os checkboxes das mensagens
664    if (typeof(currentTab)!='number')
665        return currentTab+"_";
666    else
667        return "";
668}
669
670function getMessageIdFromRowId(row_id) { // extrai o id da mensagem do id da linha
671    var p = row_id.search("_s");
672    if (p>0)
673        return row_id.substr(0,p);
674    else
675        return row_id;
676}
677
678function getNumBoxFromTabId(tab_id) { // extrai o numBox do id da tab
679    if (typeof(tab_id)=='number') {
680        return tab_id;
681    }
682    else {
683        var p = tab_id.search(/[0-9]/);
684        return tab_id.substr(p);
685    }
686}
687
688function addAttachment(ID, att)
689{
690    if(typeof(msgAttachments[ID]) == 'undefined')
691            msgAttachments[ID] = [];
692
693        msgAttachments[ID].push(att);
694}
695
696function delAttachment(ID, att)
697{
698   
699    if(msgAttachments[ID] == undefined) return;
700    var len = msgAttachments[ID].length;
701    for(var i = 0; i < len; i++)
702    {
703        if(msgAttachments[ID][i] == att)
704        {
705            delete msgAttachments[ID][i];
706            break;
707        }
708    } 
709}
710
711function listAttachment(ID)
712{
713    return (typeof(msgAttachments[ID]) == 'undefined') ? '' : JSON.stringify(msgAttachments[ID]);
714}
Note: See TracBrowser for help on using the repository browser.