Changeset 660


Ignore:
Timestamp:
02/05/09 17:48:28 (11 years ago)
Author:
niltonneto
Message:

Resolve #422

Location:
trunk/expressoMail1_2
Files:
6 edited

Legend:

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

    r659 r660  
    187187        * com .emls gerados pelo expresso, e o arquivo pode ser um zip contendo vários emls ou um .eml. 
    188188        */ 
    189         function import_msgs() { 
    190                  
    191                 if(!$this->mbox) 
    192                         $this->mbox = $this->open_mbox($params["folder"]); 
     189        function import_msgs($params) { 
     190                if(!$this->mbox)                 
     191                        $this->mbox = $this->open_mbox(); 
    193192                $errors = array(); 
    194193                $invalid_format = false; 
    195                 $filename = $_FILES['arquivo']['name']; 
     194                $filename = $params['FILES'][0]['name']; 
     195                $quota = imap_get_quotaroot($this->mbox, $params["folder"]); 
     196                if((($quota['limit'] - $quota['usage'])*1024) <= $params['FILES'][0]['size']){ 
     197                        return array( 'error' => $this->functions->getLang("fail in import:"). 
     198                                                        " ".$this->functions->getLang("Over quota"));            
     199                } 
    196200                if(substr($filename,strlen($filename)-4)==".zip") { 
    197                         $zip = zip_open($_FILES['arquivo']['tmp_name']); 
     201                        $zip = zip_open($params['FILES'][0]['tmp_name']); 
    198202 
    199203                        if ($zip) { 
     
    203207                                                $email = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); 
    204208                                                $status = @imap_append($this->mbox, 
    205                                                                 "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}"."INBOX", 
     209                                                                "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"], 
    206210                                                                        $email 
    207211                                                                        ); 
     
    211215                                        } 
    212216                                } 
    213  
    214                         } 
    215  
    216                         zip_close($zip); 
     217                                zip_close($zip); 
     218                        } 
    217219                } 
    218220                else if(substr($filename,strlen($filename)-4)==".eml") { 
    219                         $email = implode("",file($_FILES['arquivo']['tmp_name'])); 
     221                        $email = implode("",file($params['FILES'][0]['tmp_name'])); 
    220222                        $status = @imap_append($this->mbox, 
    221                                                                 "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}"."INBOX", 
     223                                                                "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"], 
    222224                                                                        $email 
    223225                                                                        ); 
    224                         if(!$status) 
     226                        if(!$status){ 
    225227                                array_push($errors,zip_entry_name($zip_entry)); 
    226                         zip_entry_close($zip_entry); 
     228                                zip_entry_close($zip_entry); 
     229                        } 
    227230                } 
    228231                else  
    229232                { 
    230                         echo "<script>alert(\"".lang("wrong file format")."\")</script>"; 
     233                        return array("error" => $this->functions->getLang("wrong file format")); 
    231234                        $invalid_format = true; 
    232235                } 
     
    234237                if(!$invalid_format) { 
    235238                        if(count($errors)>0) { 
    236                                 $message = lang("fail in import:")."\n"; 
     239                                $message = $this->functions->getLang("fail in import:")."\n"; 
    237240                                foreach($errors as $arquivo) { 
    238241                                        $message.=$arquivo."\n"; 
    239242                                } 
    240                                 echo "<script>alert(\"$message\")</script>"; 
     243                                return array("error" => $message); 
    241244                        } 
    242245                        else 
    243                                 echo "<script>alert(\"".lang("messages imported successfully")."\")</script>"; 
    244                 } 
    245                 echo "<script>location.href='/expressoMail1_2/index.php'</script>"; 
    246         } 
    247          
     246                                return $this->functions->getLang("The import was executed successfully.");                       
     247                } 
     248        }        
    248249        /* 
    249250                Remove os anexos de uma mensagem. A estratégia para isso é criar uma mensagem nova sem os anexos, mantendo apenas 
  • trunk/expressoMail1_2/js/connector.js

    r630 r660  
    599599 
    600600                var divFiles = Element("divFiles_"+id);          
    601                 if (divFiles.firstChild) { 
     601                if (divFiles && divFiles.firstChild) { 
    602602                        el                      = document.createElement('input'); 
    603603                        el.type = 'hidden';      
  • trunk/expressoMail1_2/js/draw_api.js

    r659 r660  
    23512351                '<span title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span> | '+ 
    23522352                '<span title="'+get_lang("Export")+'" class="message_options" onclick="export_all_selected_msgs()">'+get_lang("Export")+'</span> | ' +  
    2353                 '<span title="'+get_lang("Import")+'" class="message_options" onclick="location.href=\'import.php\'">'+get_lang("Import")+'</span>'; 
     2353                '<span title="'+get_lang("Import")+'" class="message_options" onclick="import_window()">'+get_lang("Import")+'</span>'; 
    23542354         
    23552355        if (use_spam_filter) { 
  • trunk/expressoMail1_2/js/main.js

    r659 r660  
    15131513        write_msg(get_lang('No selected message.')); 
    15141514} 
     1515 
     1516function import_window(){ 
     1517        var win = arrayJSWin["import_window"]; 
     1518        var form_upload = Element("form_upload"); 
     1519        if(!win) { 
     1520                var form = document.createElement("DIV"); 
     1521                form.id  = "import_window"; 
     1522                form.style.visibility = "hidden"; 
     1523                form.style.position = "absolute"; 
     1524                form.style.background = "#eeeeee"; 
     1525                form.style.left = "0px"; 
     1526                form.style.top  = "0px";  
     1527                form.style.width = "0px"; 
     1528                form.style.height = "0px"; 
     1529                document.body.appendChild(form); 
     1530                form_upload = document.createElement("DIV"); 
     1531                form_upload.id = "form_upload"; 
     1532                form_upload.style.position = "absolute"; 
     1533                form_upload.style.top = "5px"; 
     1534                form_upload.style.left = "5px"; 
     1535                form_upload.name =  get_lang('zip mails to import'); 
     1536                form_upload.style.width = "450px"; 
     1537                form_upload.style.height = "75px"; 
     1538                form.appendChild(form_upload);   
     1539                form.style.width  =  form.firstChild.style.width; 
     1540                form.style.height = form.firstChild.style.height; 
     1541                form.style.zIndex = "10000";                     
     1542                var title = form.firstChild.name; 
     1543                var wHeight = form.offsetHeight + "px"; 
     1544                var wWidth =  form.offsetWidth   + "px"; 
     1545                form.style.width = form.offsetWidth - 5; 
     1546                win = new dJSWin({ 
     1547                        id: 'win_'+form.id, 
     1548                        content_id: form.id, 
     1549                        width: wWidth, 
     1550                        height: wHeight, 
     1551                        title_color: '#3978d6', 
     1552                        bg_color: '#eee', 
     1553                        title: title, 
     1554                        title_text_color: 'white', 
     1555                        button_x_img: '../phpgwapi/images/winclose.gif', 
     1556                        border: true });         
     1557                win.draw(); 
     1558        } 
     1559        form_upload.innerHTML = '<form method="POST" name="form_import" enctype="multipart/form-data">'+get_lang('zip mails to import')+':<br>'+ 
     1560        '<input name="file_1" maxlength="255" size="50" id="file_1" type="file"><br>' + 
     1561        '<input title="'+get_lang('Select a folder')+'"  value="' + get_lang('Select a folder') + '"' + 'type="button" onclick="javascript:select_import_folder()">&nbsp;' + 
     1562        '<input title="' + get_lang('Close') + '"  value="' + get_lang('Close') + '"' + 
     1563        ' type="button" onclick="arrayJSWin[\'import_window\'].close()"></form>';        
     1564        win.open(); 
     1565} 
     1566 
     1567function import_msgs(wfolders_tree){ 
     1568        function handler(data){          
     1569                // Its necessary to encapsulate the data returned (IE bugfix) 
     1570                return_import_msgs(data,wfolders_tree);          
     1571        } 
     1572        var countFiles = document.form_import.countFiles; 
     1573        if(!countFiles){ 
     1574                countFiles = document.createElement("INPUT"); 
     1575                countFiles.type = "hidden"; 
     1576                countFiles.name = "countFiles"; 
     1577                countFiles.value = "1"; 
     1578                document.form_import.appendChild(countFiles); 
     1579        } 
     1580        var folder = document.createElement("INPUT"); 
     1581        folder.type = "hidden"; 
     1582        folder.name = "folder"; 
     1583        folder.value = wfolders_tree._selected.id; 
     1584        document.form_import.appendChild(folder); 
     1585        write_msg(get_lang('You must wait while the messages will be imported...')); 
     1586         
     1587        cExecuteForm('$this.imap_functions.import_msgs', document.form_import, handler); 
     1588} 
     1589function return_import_msgs(data, wfolders_tree){ 
     1590        if(data && data.error){ 
     1591                write_msg(data.error); 
     1592        } 
     1593        else{ 
     1594                if(data == 'Post-Content-Length') 
     1595                        write_msg(get_lang('The size of this message has exceeded  the limit (%1B).',Element('upload_max_filesize').value)); 
     1596                else { 
     1597                        write_msg(data); 
     1598                        arrayJSWin["import_window"].close(); 
     1599                        if(openTab.imapBox[0] == wfolders_tree._selected.id){ 
     1600                                openTab.imapBox[0] = ''; 
     1601                                change_folder(wfolders_tree._selected.id, wfolders_tree._selected.caption); 
     1602                        } 
     1603                        else{ 
     1604                                refresh(); 
     1605                        } 
     1606                } 
     1607        } 
     1608} 
     1609 
     1610function select_import_folder(){ 
     1611        //Begin: Verify if the file extension is allowed. 
     1612        var imgExtensions = new Array("eml","zip"); 
     1613        var inputFile = document.form_import.file_1;     
     1614        if(!inputFile.value){ 
     1615                alert(get_lang('File extension forbidden or invalid file') + '.'); 
     1616                return false; 
     1617        } 
     1618        var fileExtension = inputFile.value.split("."); 
     1619        fileExtension = fileExtension[(fileExtension.length-1)]; 
     1620        var deniedExtension = true; 
     1621        for(var i=0; i<imgExtensions.length; i++) { 
     1622                if(imgExtensions[i].toUpperCase() == fileExtension.toUpperCase()) { 
     1623                        deniedExtension = false; 
     1624                        break; 
     1625                } 
     1626        } 
     1627        if(deniedExtension) { 
     1628                alert(get_lang('File extension forbidden or invalid file') + '.'); 
     1629                return false; 
     1630        } 
     1631        arrayJSWin['import_window'].close(); 
     1632        wfolders.makeWindow('null','import'); 
     1633} 
  • trunk/expressoMail1_2/js/wfolders.js

    r271 r660  
    4343                else if (type == 'change_folder') 
    4444                        butt.value = get_lang('Change folder');  
     45                else //default value 
     46                        butt.value = get_lang(type); 
    4547 
    4648                butt.onclick = function () { 
     
    6567                                change_folder(wfolders_tree._selected.id, wfolders_tree._selected.caption); 
    6668                                wfolders.alert = true; 
     69                        } 
     70                        else if (type == 'import'){ 
     71                                import_msgs(wfolders_tree); 
    6772                        } 
    6873                }; 
     
    112117                        div.style.width = "275px"; 
    113118                        div.style.height = "250px"; 
    114                         var title = get_lang('Select a folder:'); 
     119                        var title = get_lang('Select a folder')+":"; 
    115120                        var wHeight = div.offsetHeight + "px"; 
    116121                        var wWidth =  div.offsetWidth   + "px"; 
Note: See TracChangeset for help on using the changeset viewer.