Changeset 7514


Ignore:
Timestamp:
11/13/12 16:02:49 (7 years ago)
Author:
angelo
Message:

Ticket #3192 - Possibilitar a visualizacao para impressao de mensagem sem que a mesma seja aberta

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/main.js

    r7501 r7514  
    37763776} 
    37773777 
    3778 function print_all(){ 
    3779     if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    3780         alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    3781         return true; 
    3782     } 
    3783         if (openTab.type[currentTab] == 2) 
    3784                 return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab); 
    3785  
    3786         if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    3787                 return print_search_msg(); 
    3788         } 
    3789                  
     3778/*PERMITE A IMPRESSÃO DE UMA LISTA DE MENSAGENS E SEU CONTEÚDO*/ 
     3779function print_messages_bodies(){ 
     3780        var messages = {}; 
     3781        messages[get_current_folder()] = get_selected_messages().split(','); 
     3782 
     3783        var print_bodies = function (data){ 
     3784                data = data[get_current_folder()]; 
     3785                var print_width = screen.width - 200; 
     3786                var x = ((screen.width - print_width) / 2); 
     3787                var y = ((screen.height - 400) / 2) - 35; 
     3788                var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y); 
     3789                if(window_print == null) { 
     3790                        alert(get_lang("The Anti Pop-Up is enabled. Allow this site (%1) for print.",document.location.hostname)); 
     3791                        return; 
     3792                } 
     3793                var header = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
     3794                + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>'; 
     3795                window_print.document.write(header); 
     3796                var printData ='<body style="overflow:auto">' + cabecalho + '</h4><hr>'; 
     3797                window_print.document.write(printData); 
     3798                var newRow = function(label,data){ 
     3799                        return "<tr><td width=7%><font size='2'><b>"+label+" </b></font></td><td><font size='2'>"+data+"</font></td></tr>"; 
     3800                } 
     3801                /*INSERE AS MENSAGENS NO DOCUMENTO DE IMPRESSÃO*/ 
     3802                $.each(data,function(index,message){ 
     3803                        var html = "<table><tbody>"; 
     3804                        if(message.sender) 
     3805                                for(var i=0; i<message.sender.length; i++){      
     3806                                        html += newRow(get_lang('Sent by')+":",message.sender[i]); 
     3807                                } 
     3808                        if(message.from) 
     3809                                for(var i=0; i<message.from.length; i++){        
     3810                                        html += newRow(get_lang('From')+":",message.from[i]); 
     3811                                } 
     3812                        if(message.toaddress2) { 
     3813                                html += newRow(get_lang('To')+":",message.toaddress2); 
     3814                        } 
     3815                        if (message.cc) { 
     3816                                html += newRow(get_lang('Cc')+":",message.cc); 
     3817                        } 
     3818                        if (message.bcc) { 
     3819                                html += newRow(get_lang('Cco')+":",message.bcc); 
     3820                        } 
     3821                        if(message.smalldate) 
     3822                                html += newRow(get_lang('Date')+":",message.smalldate); 
     3823                                 
     3824                        html += newRow(get_lang('Subject')+":",message.subject);                 
     3825                        /*LISTA DE ANEXOS*/ 
     3826                        if (message.attachments && message.attachments.length) { 
     3827                        var img = '<img style="margin-bottom : -5px; cursor : pointer;" src="templates/'+template+'/images/new.png">'; 
     3828                        var atts = ""; 
     3829                        $.each(message.attachments,function(index,attach){ 
     3830                                atts += " | " + attach.name + "("+ formatBytes(attach.fsize) +") " + img + " | "; 
     3831                        }); 
     3832                        html += newRow(get_lang('Attachments: '),atts);        
     3833                    } 
     3834                        html += '</tbody></table>'; 
     3835                        if (message.body){ 
     3836                                html += "<hr>" + message.body; 
     3837                    } 
     3838                    html += "<hr>"; 
     3839                        window_print.document.write(html); 
     3840                }); 
     3841                window_print.document.close(); 
     3842                window_print.print(); 
     3843        } 
     3844        $.ajax({                         
     3845                        url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessages", 
     3846                                details: "all", 
     3847                messages : messages, 
     3848                                }), 
     3849                        success: function(data){ 
     3850                                data = connector.unserialize(data); 
     3851                                if(data){ 
     3852                  print_bodies(data); 
     3853                                } 
     3854                        }, 
     3855                        beforeSend: function( jqXHR, settings ){ 
     3856                                connector.showProgressBar(); 
     3857                        }, 
     3858                        complete: function( jqXHR, settings ){ 
     3859                                connector.hideProgressBar(); 
     3860                        } 
     3861                });      
     3862} 
     3863 
     3864function print_messages_list(){ 
    37903865        var folder= Element('border_id_0').innerHTML; 
    37913866        //var thead = Element('divScrollHead_'+numBox).firstChild.firstChild.innerHTML;  
     
    37933868        msgs_number = get_selected_messages(); 
    37943869        if(msgs_number == false){ 
    3795         var tbody = Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML; 
     3870                var tbody = Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML; 
    37963871        }else{ 
    37973872                msgs_number = msgs_number.split(","); 
     
    38373912} 
    38383913 
     3914function print_all(){ 
     3915    if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
     3916        alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
     3917        return true; 
     3918    } 
     3919        if (openTab.type[currentTab] == 2) 
     3920                return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab); 
     3921 
     3922        if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
     3923                return print_search_msg(); 
     3924        } 
     3925        if (get_selected_messages() == false){ 
     3926                return print_messages_list(); 
     3927        } 
     3928    var msg = 'Algumas mensagens foram selecionadas para impressão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas será impressa.'; 
     3929    $.Zebra_Dialog(msg, { 
     3930            'type':     'question', 
     3931            'buttons': ['Sim','Não'], 
     3932            'overlay_opacity': '0.5', 
     3933            'onClose':  function(caption) { 
     3934                if(caption == 'Sim'){ 
     3935                        return print_messages_bodies(); 
     3936                } 
     3937                else{ 
     3938                        return print_messages_list();    
     3939                } 
     3940            } 
     3941        }); 
     3942} 
    38393943 
    38403944function print_msg(msg_folder, msg_number, border_ID){ 
Note: See TracChangeset for help on using the changeset viewer.