Changeset 5620


Ignore:
Timestamp:
03/05/12 03:05:00 (12 years ago)
Author:
cristiano
Message:

Ticket #2497 - Nova estrategia para o salvamento automatico de rascunhos

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r5605 r5620  
    27172717                //Compatibilização com Outlook, ao encaminhar a mensagem 
    27182718                $body = mb_ereg_replace('<!--\[', '<!-- [', $params['body']); 
     2719                $body = str_replace("%nbsp;","&nbsp;",$body); 
     2720                $body = preg_replace("/\n/"," ",$body); 
     2721                $body = preg_replace("/\r/","" ,$body); 
     2722                $body = html_entity_decode ( $body, ENT_QUOTES , 'ISO-8859-1' );         
    27192723            } 
    27202724 
     
    28932897                     else 
    28942898                         $mailService->addStringAttachment(base64_decode($att['source']), $att['name'], $att['type'], 'base64', isset($att['disposition']) ? $att['disposition'] :'attachment' ); 
    2895  
     2899                      
     2900                     $message_size_total += $att['size']; 
    28962901                     unset($att); 
    28972902                } 
     
    28992904                { 
    29002905                    $value = json_decode($value, true); 
    2901                     $sub =  $value['name'] ? $value['name'].'.eml' :'no title.eml'; 
    2902                     $mbox_stream = $this->open_mbox($value['folder']); 
    2903                     $rawmsg = $this->getRawHeader($value['uid']) . "\r\n\r\n" . $this->getRawBody($value['uid']); 
    2904                     $mailService->addStringAttachment($rawmsg, $sub, 'message/rfc822', '7bit', 'attachment' ); 
    2905                     $message_size_total += mb_strlen($rawmsg); //Adiciona o tamanho do anexo a variavel que controlao tamanho da msg. 
    2906                     unset($rawmsg); 
     2906 
     2907                    switch ($value['type']) { 
     2908                        case 'imapPart': 
     2909                                $att = $this->getForwardingAttachment($value['folder'],$value['uid'], $value['part']); 
     2910                                if(strstr($body,'<img src="./inc/get_archive.php?msgFolder='.$value['folder'].'&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'" />') !== false)//Embeded IMG 
     2911                                {     
     2912                                    $body = str_ireplace('<img src="./inc/get_archive.php?msgFolder='.$value['folder'].'&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'" />' , '<img src="'.$att['name'].'" />', $body); 
     2913                                    $mailService->addStringImage($att['source'], $att['type'], $att['name']); 
     2914                                } 
     2915                                else 
     2916                                    $mailService->addStringAttachment($att['source'], $att['name'], $att['type'], 'base64', isset($att['disposition']) ? $att['disposition'] :'attachment' ); 
     2917                                  
     2918                                $message_size_total += $att['size']; //Adiciona o tamanho do anexo a variavel que controlao tamanho da msg. 
     2919                                unset($att); 
     2920                            break; 
     2921                            case 'imapMSG': 
     2922                                $sub =  $value['name'] ? $value['name'].'.eml' :'no title.eml'; 
     2923                                $mbox_stream = $this->open_mbox($value['folder']); 
     2924                                $rawmsg = $this->getRawHeader($value['uid']) . "\r\n\r\n" . $this->getRawBody($value['uid']); 
     2925                                $mailService->addStringAttachment($rawmsg, $sub, 'message/rfc822', '7bit', 'attachment' ); 
     2926                                $message_size_total += mb_strlen($rawmsg); //Adiciona o tamanho do anexo a variavel que controlao tamanho da msg. 
     2927                                unset($rawmsg); 
     2928                            break; 
     2929 
     2930                        default: 
     2931                            break; 
     2932                    } 
    29072933                } 
    2908  
    29092934            } 
    2910  
     2935         
    29112936            $message_size_total += strlen($params['body']);   /* Tamanho do corpo da mensagem. */         
    29122937 
     
    30863111                return $bolean; 
    30873112        } 
    3088  
    3089         function get_forwarding_attachment($msg_folder, $msg_number, $msg_part, $encoding) 
    3090         { 
     3113         
     3114        function getForwardingAttachment($folder, $uid, $part, $rfc_822bodies = true , $info = true ) 
     3115        { 
    30913116            include_once dirname(__FILE__).'/class.attachment.inc.php'; 
    30923117            $attachment = new attachment(); 
    3093                         $attachment->decodeConf['rfc_822bodies'] = true; //Forçar a não decodificação de mensagens em anexo. 
    3094             $attachment->setStructureFromMail($msg_folder, $msg_number); 
    3095             return $attachment->getAttachment($msg_part); 
    3096         } 
    3097  
    3098         function get_forwarding_attachment2($msg_folder, $msg_number, $msg_part, $encoding) 
    3099         { 
    3100             include_once dirname(__FILE__).'/class.attachment.inc.php'; 
    3101             $attachment = new attachment(); 
    3102             $attachment->setStructureFromMail($msg_folder, $msg_number); 
    3103             $return = $attachment->getAttachmentInfo($msg_part); 
    3104             $return['binary'] = $attachment->getAttachment($msg_part); 
    3105             return $return; 
    3106         } 
    3107  
     3118            $attachment->decodeConf['rfc_822bodies'] = $rfc_822bodies; //Forçar a não decodificação de mensagens em anexo. 
     3119            $attachment->setStructureFromMail($folder, $uid); 
     3120             
     3121            if($info === true) 
     3122            { 
     3123                $return = $attachment->getAttachmentInfo($part); 
     3124                $return['source'] = $attachment->getAttachment($part); 
     3125                return $return; 
     3126            } 
     3127            return $attachment->getAttachment($part); 
     3128        } 
     3129             
    31083130        function del_last_caracter($string) 
    31093131        { 
  • trunk/expressoMail1_2/js/abas.js

    r5604 r5620  
    537537        resizeWindow(); 
    538538        RichTextEditor.destroy( 'body_'+ID ); 
    539          
     539        delete msgAttachments[ID]; 
    540540        //Caso for uma mensagem anexada tem que deletar ela da lixeira apos fechar a aba 
    541541            var isPartMsg = false; 
     
    598598        if(msgAttachments[ID][i] == att) 
    599599        { 
    600             msgAttachments[ID].splice(i,1); 
     600            delete msgAttachments[ID][i]; 
    601601            break; 
    602602        } 
  • trunk/expressoMail1_2/js/draw_api.js

    r5619 r5620  
    42654265                                                        att.foder = folder_name; 
    42664266                                                        att.uid = message_number; 
     4267                                                        att.type = 'imapMSG'; 
    42674268                                                        att.name = onceOpenedMessages[folder_name][message_number].subject + '.eml'; 
    42684269                                                        var idATT = JSON.stringify(att); 
  • trunk/expressoMail1_2/js/main.js

    r5619 r5620  
    15381538                        title = "Re: " + data.subject; 
    15391539                        Element("subject_" + new_border_ID).value = "Re: " + data.subject;                       
    1540  
    1541                         if (data.is_local_message){   
    1542                                 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
    1543                                 var imagens = data.body.match(/<img[^>]*>/g);   
    1544                                 if(imagens != null)   
    1545                                         for (var x = 0; x < imagens.length; x++)   
    1546                                                 data.body = data.body.replace(imagens[x],'');   
    1547                         }else{ 
    1548                                 useOriginalAttachments(new_border_ID,border_ID);                         
    1549                         }       
     1540                        useOriginalAttachments(new_border_ID,border_ID);                         
     1541                               
    15501542 
    15511543                        // Insert the signature automaticaly at message body if use_signature preference is set 
     
    15651557                        Element("subject_" + new_border_ID).value = "Re: " + data.subject; 
    15661558                        Element("to_" + new_border_ID).value = data.to; 
    1567                         if(data.is_local_message){ 
    1568                                 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
    1569                 var imagens = data.body.match(/<img[^>]*>/g);   
    1570                 if(imagens != null)   
    1571                                         for (var x = 0; x < imagens.length; x++)   
    1572                                                 data.body = data.body.replace(imagens[x],'');   
    1573                         }else{ 
    1574                                 useOriginalAttachments(new_border_ID,border_ID); 
    1575                         } 
     1559 
     1560                        useOriginalAttachments(new_border_ID,border_ID); 
     1561                         
    15761562                        block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour); 
    15771563                        // Insert the signature automaticaly at message body if use_signature preference is set 
     
    16261612                                } 
    16271613                        } 
    1628                         if (data.is_local_message){   
    1629                                 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
    1630                 var imagens = data.body.match(/<img[^>]*>/g);   
    1631                 if(imagens != null)   
    1632                                         for (var x = 0; x < imagens.length; x++)   
    1633                                                 data.body = data.body.replace(imagens[x],'');   
    1634                      }       
    1635                 else useOriginalAttachments(new_border_ID,border_ID);   
     1614                         
     1615                        useOriginalAttachments(new_border_ID,border_ID);   
    16361616 
    16371617                        // Insert the signature automaticaly at message body if use_signature preference is set 
     
    16831663                        } 
    16841664                        document.getElementById("subject_" + new_border_ID).value = "Re: " + data.subject; 
    1685                         useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 
     1665                        useOriginalAttachments(new_border_ID,border_ID); 
    16861666                        block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour); 
    16871667                        // Insert the signature automaticaly at message body if use_signature preference is set 
     
    17061686                        document.getElementById("subject_" + new_border_ID).value = "Fw: " + data.subject; 
    17071687                        var divFiles = Element("divFiles_"+new_border_ID); 
     1688                        var campo_arquivo; 
     1689                   
     1690                        if (Element("attachments_" + border_ID)) 
     1691                        { 
     1692                             
     1693                                var fileUploadMSG = $('#fileupload_msg'+new_border_ID); 
     1694                                var attachments = document.getElementById("attachments_" + border_ID).getElementsByTagName("a");                         
     1695                                for (var i = 0; i < attachments.length; i++){ 
     1696                                        if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
     1697                                                continue; 
     1698                                       
     1699                                            var arrayAtt = attachments[i].href.replace("javascript:download_attachments(", "").replace(")", "").split(',');                                  
     1700                                            var att = new Object(); 
     1701                                            var regex = new RegExp( "'", "g" ); 
     1702                                            att.folder = arrayAtt[0].replace(regex,""); 
     1703                                            att.uid = arrayAtt[1].replace(regex,""); 
     1704                                            att.part = arrayAtt[3].replace(regex,""); 
     1705                                            att.type = 'imapPart'; 
     1706                                            var idATT = JSON.stringify(att); 
     1707                                            addAttachment( new_border_ID , idATT);   
     1708 
     1709                                            var attach = {}; 
     1710                                            attach.fileName = arrayAtt[5].replace(regex,""); 
     1711                                             
     1712                                            if(attach.fileName.length > 10) 
     1713                                                attach.fileName = attach.fileName.substr(0, 18) + "..." + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
     1714                             
     1715                                            attach.fileSize =  attachments[i].text.substring(( attachments[i].text.lastIndexOf('(')+1), attachments[i].text.lastIndexOf(')')); 
     1716                                             
     1717                                            var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
     1718                                            upload.find('.status-upload').remove(); 
     1719                                            upload.find('.in-progress').remove();  
     1720                                            upload.find('p').append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
     1721                                            fileUploadMSG.find('.attachments-list').append(upload); 
     1722                                                                         
     1723                                } 
     1724                                $('.attachments-list').find('.button.close').button({ 
     1725                                        icons: { 
     1726                                                primary: "ui-icon-close" 
     1727                                        }, 
     1728                                        text: false 
     1729                                }).click(function(){ 
     1730                                        var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
     1731                                        fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 
     1732                                        delAttachment(new_border_ID,idAttach);  
     1733                                        $(this).parent().remove(); 
     1734                                });      
     1735                        } 
    17081736                         
    1709                          
    1710                         if (data.is_local_message) {//Local messages   
    1711                                 document.getElementById("is_local_forward"+new_border_ID).value = "1";   
    1712                 alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
    1713                 var imagens = data.body.match(/<img[^>]*>/g);   
    1714                 if(imagens != null)   
    1715                                         for (var x = 0; x < imagens.length; x++)   
    1716                                                 data.body = data.body.replace(imagens[x],'');     
    1717                     } 
    1718                 else{   
    1719  
    1720                          
    1721                          
    1722                         var campo_arquivo; 
    1723                          
    1724                         if (Element("attachments_" + border_ID)){ 
    1725                                 var attachments = document.getElementById("attachments_" + border_ID).getElementsByTagName("a"); 
    1726                                  
    1727                                 for (var i = 0; i < attachments.length; i++){ 
    1728                                         if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || 
    1729                                                         ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
    1730                                                 continue; 
    1731                                         var link_attachment = document.createElement("A"); 
    1732                                         link_attachment.setAttribute("href", attachments[i].href); 
    1733                                         link_attachment.innerHTML = attachments[i].firstChild.nodeValue + '<br/>'; 
    1734  
    1735                                         if (data.is_local_message) {//Local messages 
    1736                                                 document.getElementById("is_local_forward"+new_border_ID).value = "1"; 
    1737                                                 var tmp = link_attachment.href.substring(link_attachment.href.indexOf("(") + 2);//Pula o parenteses e a aspas 
    1738                                                 tmp = tmp.substring(0, tmp.length - 2);//corta a aspas e o parenteses 
    1739                                                 tmp = replaceAll(tmp,"%20"," "); 
    1740                                                 if (!tmp.match(/inc\/gotodownload.php/)) { //Anexos após ticket #1257 que usa gotodownload 
    1741                                                         var tempNomeArquivo = tmp.split("/"); 
    1742                                                         var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length - 1]; 
    1743                                                 } 
    1744                                                 else { 
    1745                                                         var tempNomeArquivo = tmp.split("&newfilename="); 
    1746                                                         var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length - 1]; 
    1747                                                 } 
    1748  
    1749                                                 if(nomeArquivo.match(/\.[a-z]{1,3}\.php$/i)!=null) //Anexos no gears podem vir com .php depois de sua extensão. tenho que tirar o .php para ficar o nome real do arquivo. 
    1750                                                         nomeArquivo = nomeArquivo.substring(0, nomeArquivo.length - 4); 
    1751                                                 campo_arquivo = addForwardedFile(new_border_ID, nomeArquivo, link_attachment.href); 
    1752                                                          
    1753                                                 if(!expresso_offline) 
    1754                                                         expresso_local_messages.getInputFileFromAnexo(campo_arquivo, tmp); 
    1755                                                 else //To offline, you just set the url on value of a hidden input. 
    1756                                                         campo_arquivo.value = tmp; 
    1757  
    1758                                         } 
    1759                                         else { 
    1760                                                 var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", ""); 
    1761                                                 var a_tmp = tmp.split(','); 
    1762                                                 tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("(")); 
    1763                                                 a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'"; 
    1764                                                 s_tmp = trim(escape(connector.serialize(a_tmp))); 
    1765  
    1766                                                 divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>"; 
    1767                                                 divFiles.innerHTML += "<link style='border:0' name='file_"+i+"' id='inputFile_"+border_ID+i+"'/>"; 
    1768                                                 divFiles.appendChild(link_attachment); 
    1769                                         } 
    1770                                 } 
    1771                         } 
    1772                         } 
    17731737                        // Insert the signature automaticaly at message body if use_signature preference is set 
    17741738                        if (preferences.use_signature == "1")   
     
    18651829                        } 
    18661830 
    1867                         var divFiles = Element("divFiles_"+new_border_ID); 
    1868                         if (Element("attachments_" + border_ID)){ 
    1869                                 var attachments = document.getElementById("attachments_" + border_ID).childNodes; 
    1870                                 for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){ 
    1871                                         var link_attachment = document.createElement("A"); 
    1872                                         link_attachment.setAttribute("href", attachments[i].href); 
    1873                                         if(attachments[i].innerHTML == "") 
    1874                                             continue; 
    1875                                         else 
    1876                                             link_attachment.innerHTML = attachments[i].innerHTML; 
    1877                                         var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", ""); 
    1878                                         var a_tmp = tmp.split(','); 
    1879                                         tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("(")); 
    1880                                         a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'"; 
    1881                                         s_tmp = escape(connector.serialize(a_tmp)); 
    1882  
    1883                                         divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>"; 
    1884                                         divFiles.appendChild(link_attachment); 
     1831                        if (Element("attachments_" + border_ID)) 
     1832                        { 
     1833                             
     1834                                var fileUploadMSG = $('#fileupload_msg'+new_border_ID); 
     1835                                var attachments = document.getElementById("attachments_" + border_ID).getElementsByTagName("a");                         
     1836                                for (var i = 0; i < attachments.length; i++){ 
     1837                                        if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
     1838                                                continue; 
     1839                                       
     1840                                            var arrayAtt = attachments[i].href.replace("javascript:download_attachments(", "").replace(")", "").split(',');                                  
     1841                                            var att = new Object(); 
     1842                                            var regex = new RegExp( "'", "g" ); 
     1843                                            att.folder = arrayAtt[0].replace(regex,""); 
     1844                                            att.uid = arrayAtt[1].replace(regex,""); 
     1845                                            att.part = arrayAtt[3].replace(regex,""); 
     1846                                            att.type = 'imapPart'; 
     1847                                            var idATT = JSON.stringify(att); 
     1848                                            addAttachment( new_border_ID , idATT);   
     1849 
     1850                                            var attach = {}; 
     1851                                            attach.fileName = arrayAtt[5].replace(regex,""); 
     1852                                             
     1853                                            if(attach.fileName.length > 10) 
     1854                                                attach.fileName = attach.fileName.substr(0, 18) + "..." + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
     1855                             
     1856                                            attach.fileSize =  attachments[i].text.substring(( attachments[i].text.lastIndexOf('(')+1), attachments[i].text.lastIndexOf(')')); 
     1857                                             
     1858                                            var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
     1859                                            upload.find('.status-upload').remove(); 
     1860                                            upload.find('.in-progress').remove();  
     1861                                            upload.find('p').append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
     1862                                            fileUploadMSG.find('.attachments-list').append(upload); 
     1863                                                                         
    18851864                                } 
     1865                                $('.attachments-list').find('.button.close').button({ 
     1866                                        icons: { 
     1867                                                primary: "ui-icon-close" 
     1868                                        }, 
     1869                                        text: false 
     1870                                }).click(function(){ 
     1871                                        var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
     1872                                        fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 
     1873                                        delAttachment(new_border_ID,idAttach);  
     1874                                        $(this).parent().remove(); 
     1875                                });      
    18861876                        } 
    18871877                        RichTextEditor.setInitData(new_border_ID, data.body, 'edit'); 
     
    19451935} 
    19461936 
    1947 function useOriginalAttachments(new_id_border,old_id_border,is_local) 
     1937function useOriginalAttachments(new_border_ID,old_id_border) 
    19481938{ 
    1949         var divFiles = Element("divFiles_"+new_id_border); 
    1950         if (Element("attachments_" + old_id_border)) { 
    1951                 var areaOldAttachments = document.createElement("DIV"); 
    1952                 areaOldAttachments.id = "area_div_attachments_"+new_id_border; 
    1953                 divFiles.appendChild(areaOldAttachments); 
    1954                 var optAttachments = document.createElement("A"); 
    1955                 optAttachments.setAttribute("href","javascript:void(0)"); 
    1956                 optAttachments.tabIndex = -1; 
    1957                 optAttachments.innerHTML = get_lang("Original attachments: add")+"</br>"; 
    1958                 areaOldAttachments.appendChild(optAttachments); 
    1959                 var divOriginalAttachments = document.createElement("DIV"); 
    1960                 divOriginalAttachments.id = "div_attachments_"+new_id_border; 
    1961                 optAttachments.onclick = function(){ 
    1962                         if(document.getElementById('div_attachments_'+new_id_border)) 
    1963                         { 
    1964                                 areaOldAttachments.removeChild(document.getElementById('div_attachments_'+new_id_border)); 
    1965                                 optAttachments.innerHTML = get_lang("Original attachments: add")+"</br>"; 
    1966                         } 
    1967                         else 
    1968                         { 
    1969                                 areaOldAttachments.appendChild(divOriginalAttachments); 
    1970                                 optAttachments.innerHTML = get_lang("Original attachments: remove")+"</br>"; 
    1971                         } 
    1972                         return false;}; 
    1973                         var attachments = document.getElementById("attachments_" + old_id_border).getElementsByTagName("a"); 
    1974                         for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){ 
    1975                                 if (!is_local) { 
    1976                                         var link_attachment = document.createElement("A"); 
    1977                                         link_attachment.setAttribute("href", attachments[i].href); 
    1978                                         link_attachment.innerHTML = attachments[i].firstChild.nodeValue + '<br/>'; 
    1979                                         var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", ""); 
    1980                                         var a_tmp = tmp.split(','); 
    1981                                         tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("(")); 
    1982                                         a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'"; 
    1983                                         s_tmp = trim(escape(connector.serialize(a_tmp))); 
    1984                                         divOriginalAttachments.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>"; 
    1985                                         divOriginalAttachments.appendChild(link_attachment); 
    1986                                 } 
    1987                                 else { 
    1988                                         document.getElementById("is_local_forward"+new_id_border).value = "1"; 
    1989                                         var link = attachments[i].href.replace("javascript:download_local_attachment('", "").replace("')", ""); 
    1990                                         var name = attachments[i].innerHTML.substring(0, attachments[i].innerHTML.lastIndexOf("(")); 
    1991                                         var campo_arquivo = addForwardedFile(new_id_border, name, attachments[i].href, divOriginalAttachments); 
    1992                                         expresso_local_messages.getInputFileFromAnexo(campo_arquivo, link); 
    1993                                 } 
    1994                         } 
    1995         } 
     1939        if (Element("attachments_" + old_id_border)) 
     1940        { 
     1941                var fileUploadMSG = $('#fileupload_msg'+new_border_ID); 
     1942                var attachments = document.getElementById("attachments_" + old_id_border).getElementsByTagName("a");                     
     1943                for (var i = 0; i < attachments.length; i++){ 
     1944                        if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
     1945                                continue; 
     1946 
     1947                            var arrayAtt = attachments[i].href.replace("javascript:download_attachments(", "").replace(")", "").split(',');                                  
     1948                            var att = new Object(); 
     1949                            var regex = new RegExp( "'", "g" ); 
     1950                            att.folder = arrayAtt[0].replace(regex,""); 
     1951                            att.uid = arrayAtt[1].replace(regex,""); 
     1952                            att.part = arrayAtt[3].replace(regex,""); 
     1953                            att.type = 'imapPart'; 
     1954                            var idATT = JSON.stringify(att); 
     1955                            addAttachment( new_border_ID , idATT);   
     1956 
     1957                            var attach = {}; 
     1958                            attach.fileName = arrayAtt[5].replace(regex,""); 
     1959 
     1960                            if(attach.fileName.length > 10) 
     1961                                attach.fileName = attach.fileName.substr(0, 18) + "..." + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
     1962 
     1963                            attach.fileSize =  attachments[i].text.substring(( attachments[i].text.lastIndexOf('(')+1), attachments[i].text.lastIndexOf(')')); 
     1964 
     1965                            var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
     1966                            upload.find('.status-upload').remove(); 
     1967                            upload.find('.in-progress').remove();  
     1968                            upload.find('p').append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
     1969                            fileUploadMSG.find('.attachments-list').append(upload); 
     1970 
     1971                } 
     1972                $('.attachments-list').find('.button.close').button({ 
     1973                        icons: { 
     1974                                primary: "ui-icon-close" 
     1975                        }, 
     1976                        text: false 
     1977                }).click(function(){ 
     1978                        var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
     1979                        fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 
     1980                        delAttachment(new_border_ID,idAttach);  
     1981                        $(this).parent().remove(); 
     1982                });      
     1983        } 
     1984         
    19961985} 
    19971986 
     
    21682157        var onClick = save_link.onclick; 
    21692158        save_link.onclick = ''; 
    2170         $("#save_message_options_"+ID).button({ disabled: true }); 
     2159        $("#save_message_options_"+ID).button({disabled: true}); 
    21712160 
    21722161        ID_tmp = ID; 
     
    35723561                var res = $.map(evtObj, function( form){ 
    35733562                        return [$.map(form.files , function( files){ 
    3574                                         return { source: files , disposition : form['attDisposition'+form.abaID]}; 
     3563                                        return {source: files , disposition : form['attDisposition'+form.abaID]}; 
    35753564                                })]; 
    35763565                }); 
  • trunk/mobile/inc/class.ui_mobilemail.inc.php

    r5303 r5620  
    969969                                { 
    970970                                        $file_description = unserialize(rawurldecode($forwarding_attachment)); 
    971                                         $fileContent = $imap_functions->get_forwarding_attachment( 
     971                                        $fileContent = $imap_functions->getForwardingAttachment( 
    972972                                                $file_description[0], 
    973973                                                $file_description[1], 
    974974                                                $file_description[3], 
    975                                                 $file_description[4]); 
     975                                                TRUE, 
     976                                                FALSE 
     977                                                ); 
    976978                                        $fileName = $file_description[2]; 
    977979                                        $mail->AddStringAttachment($fileContent,html_entity_decode(rawurldecode($fileName)), $file_description[4], $imap_functions->get_file_type($file_description[2])); 
  • trunk/prototype/services/ImapServiceAdapter.php

    r5605 r5620  
    411411                                         $att = Controller::read(array('id'=> $value , 'concept' => 'mailAttachment')); 
    412412                                          
     413                                          
    413414                                         if($att['disposition'] == 'embedded') 
    414415                                         { 
     
    421422                                         unset($att); 
    422423                                    } 
    423                                     else //message attachment 
     424                                    else 
    424425                                    { 
    425426                                        $value = json_decode($value, true); 
    426                                         $sub =  $value['name'] ? $value['name'].'.eml' :'no title.eml'; 
    427                                         $mbox_stream = $this->open_mbox($value['folder']); 
    428                                         $rawmsg = $this->getRawHeader($value['uid']) . "\r\n\r\n" . $this->getRawBody($value['uid']); 
    429                                         $mailService->addStringAttachment($rawmsg, $sub, 'message/rfc822', '7bit', 'attachment' ); 
    430                                         unset($rawmsg); 
     427                                         
     428                                        switch ($value['type']) { 
     429                                            case 'imapPart': 
     430                                                    $att = $this->getForwardingAttachment($value['folder'],$value['uid'], $value['part']); 
     431                                                    if(strstr($body,'<img src="./inc/get_archive.php?msgFolder='.$value['folder'].'&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'" />') !== false)//Embeded IMG 
     432                                                    {     
     433                                                        $body = str_ireplace('<img src="./inc/get_archive.php?msgFolder='.$value['folder'].'&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'" />' , '<img src="'.$att['name'].'" />', $body); 
     434                                                        $mailService->addStringImage($att['source'], $att['type'], $att['name']); 
     435                                                    } 
     436                                                    else 
     437                                                        $mailService->addStringAttachment($att['source'], $att['name'], $att['type'], 'base64', isset($att['disposition']) ? $att['disposition'] :'attachment' ); 
     438                                                    unset($att); 
     439                                                break; 
     440                                              case 'imapMSG': 
     441                                                    $sub =  $value['name'] ? $value['name'].'.eml' :'no title.eml'; 
     442                                                    $mbox_stream = $this->open_mbox($value['folder']); 
     443                                                    $rawmsg = $this->getRawHeader($value['uid']) . "\r\n\r\n" . $this->getRawBody($value['uid']); 
     444                                                    $mailService->addStringAttachment($rawmsg, $sub, 'message/rfc822', '7bit', 'attachment' ); 
     445                                                    unset($rawmsg); 
     446                                                break; 
     447 
     448                                            default: 
     449                                                break; 
     450                                        } 
    431451                                    } 
    432452 
     
    434454                                 
    435455                                if($isHTML) $mailService->setBodyHtml($body); else $mailService->setBodyText($body); 
    436                                                           
     456   
    437457                                if(imap_append($mbox_stream, "{".$this->imap_server.":".$this->imap_port."}".$folder, $mailService->getMessage(), "\\Seen \\Draft")) 
    438458                                { 
     
    446466                  
    447467                                if($mbox_stream) imap_close($mbox_stream); 
    448                                  
    449                                  
    450                                  
     468 
    451469                                return $return; 
    452470                        } 
Note: See TracChangeset for help on using the changeset viewer.