Changeset 6702


Ignore:
Timestamp:
07/03/12 10:53:02 (7 years ago)
Author:
brunocosta
Message:

Ticket #2930 - Trata caracteres especiais que são escapado incorretamente pelo javascript.

Location:
branches/2.3/expressoMail1_2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/expressoMail1_2/inc/class.imap_functions.inc.php

    r6657 r6702  
    20852085                return $return; 
    20862086        } 
    2087          
     2087 
    20882088        function send_mail($params) 
    20892089        { 
     
    23622362                        foreach($forwarding_attachments as $forwarding_attachment) 
    23632363                        { 
    2364                                         $file_description = unserialize(rawurldecode($forwarding_attachment)); 
     2364                             
     2365                                        $forwarding_attachment = ereg_replace('%u([[:alnum:]]{4})', '_',rawurldecode($forwarding_attachment)); 
     2366                                        $file_description = unserialize($forwarding_attachment); 
    23652367                                        $tmp = array_values($file_description); 
    23662368                                        foreach($file_description as $i => $descriptor){ 
  • branches/2.3/expressoMail1_2/js/local_messages.js

    r6340 r6702  
    143143        if(this.localServer == null) 
    144144            this.localServer = google.gears.factory.create('beta.localserver'); 
    145         if(this.store == null) 
     145                if(this.store==null){ 
     146                    this.store = this.localServer.openStore('store-expresso'); 
     147                    if(this.store==null) 
    146148            this.store = this.localServer.createStore('test-store'); 
    147149    } 
     150} 
    148151} 
    149152 
     
    153156        this.create_objects(); 
    154157                 
    155     var db_in_other_use = true; 
    156     var start_trying = new Date().getTime(); 
    157     while (db_in_other_use) { 
     158                var db_is_opened = true; 
     159                while (db_is_opened) { 
    158160        try { 
    159             this.dbGears.open('database-test'); 
    160             db_in_other_use = false; 
     161                                this.dbGears.open('database-expresso'); 
     162                                db_is_opened = true; 
    161163        } 
    162164        catch (ex) { 
    163                                 if(new Date().getTime()-start_trying>10000) { //too much time trying, throw an exception 
    164                                         throw ex; 
    165         } 
    166     } 
     165                                db_is_opened=false; 
     166        } 
     167    } 
     168 
     169                try{ 
     170                    var rs = this.dbGears.execute('select count(*) from mail'); 
     171                    rs.close(); 
     172                }catch(ex){ 
     173                        this.dbGears.remove(); 
     174                        var db_is_opened = true; 
     175                        while (db_is_opened) { 
     176                            try{ 
     177                                this.dbGears.open('database-test'); 
     178                                db_is_opened = true; 
    167179                } 
     180                            catch(ex){ 
     181                                db_is_opened=false; 
     182                            } 
     183                        } 
     184                    } 
    168185                         
     186 
    169187    //          this.dbGears.open('database-test'); 
    170188    this.dbGears.execute('create table if not exists folder (folder text,uid_usuario int,unique(folder,uid_usuario))'); 
     
    570588local_messages.prototype.getInputFileFromAnexo = function (element,url) {  
    571589    this.init_local_messages(); 
    572     fileSubmitter = this.store.createFileSubmitter(); 
     590                try{ 
     591                    var fileSubmitter = this.store.createFileSubmitter(); 
    573592    fileSubmitter.setFileInputElement(element,url); 
     593                }catch(e){ 
     594                    this.store = this.localServer.openStore('test-store'); 
     595                    var fileSubmitter = this.store.createFileSubmitter(); 
     596                    fileSubmitter.setFileInputElement(element,url); 
     597                } 
    574598    this.finalize(); 
    575599} 
     
    614638    } 
    615639    Element('chk_box_select_all_messages').checked = false; 
    616          
     640                 
    617641} 
    618642         
     
    797821        var temp = new Array(); 
    798822        if (rs.field(0).indexOf('/') == 0){ 
    799                var rs1 = this.dbGears.execute('update folder set folder=? where rowid=?',[rs.field(0).slice(1),rs.field(1)]); 
    800                temp[0] = rs.field(0).slice(1); 
     823            try{    
     824                   var newName = rs.field(0).slice(1); 
     825                   var rs1 = this.dbGears.execute('update folder set folder=? where rowid=?',[newName,rs.field(1)]); 
     826                }catch(e){ 
     827                    newName = newName+"_"+rs.field(1) 
     828                    var rs1 = this.dbGears.execute('update folder set folder=? where rowid=?',[newName,rs.field(1)]); 
     829                } 
     830                
     831               temp[0] = newName; 
    801832               rs1.close(); 
    802833       }else{ 
     
    12301261 
    12311262//Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Dessarquiva msgs locais pegando o codigo fonte das mesmas e mandando via POST para o servidor 
    1232 //para que elas sejam inseridas no imap pela função  imap_functions.unarchive_mail. 
     1263//para que elas sejam inseridas no imap pela função  imap_functions.unarchive_mail. 
    12331264local_messages.prototype.unarchive_msgs = function (folder,new_folder,msgs_number){ 
    1234  
     1265    write_msg("Realizando o desarquivamento...",true); 
    12351266    if(!new_folder) 
    12361267        new_folder='INBOX'; 
     
    12431274             expresso_local_messages.delete_msgs(archived.join()); 
    12441275        if(currentTab != 0) 
    1245             delete_border(currentTab,'false'); 
    1246          
    1247         if (!data.error) 
     1276        delete_border(currentTab,'false'); 
     1277        clean_msg(); 
     1278        if (!data.archived || data.archived.length == 0) 
     1279        { 
     1280                write_msg(get_lang('No messages were unarchived')); 
     1281        }else if (!data.error) 
    12481282        { 
    12491283            write_msg(get_lang('All messages are successfully unarchived')); 
     1284        }else  
     1285        { 
     1286              write_msg(get_lang("Some messages weren't successfully unarchived")); 
    12501287        } 
    1251         else if (!data.archived) 
    1252             { 
    1253                 write_msg(get_lang('No messages were unarchived')); 
    1254             } 
    1255             else 
    1256             { 
    1257                 write_msg(get_lang("Some messages weren't successfully unarchived")); 
    1258             } 
     1288 
    12591289    } 
    12601290 
     
    12621292            msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    12631293    } 
    1264          
    12651294    if(msgs_number =='selected' || !msgs_number) 
    12661295    { 
     
    12701299            return; 
    12711300        } 
     1301        var totalSize = this.dbGears.execute("select sum(size) from mail where rowid in ("+msgs_number+")"); 
     1302        if(totalSize.field(0) > 30*1024*1024){ 
     1303            clean_msg(); 
     1304            write_msg('Por favor selecione menos de 30MB de mensagens para desarquivar'); 
     1305            this.finalize(); 
     1306            return; 
     1307        } 
     1308         
    12721309        var rs = this.dbGears.execute("select mail,timestamp,rowid from mail where rowid in ("+msgs_number+")"); 
    12731310        var source=""; 
     
    12791316                mail=connector.unserialize(rs.field(0)); 
    12801317                mail.msg_source?source_tmp = escape(mail.msg_source):source_tmp = escape(this.get_src(mail.url_export_file)); 
     1318                if(typeof (source_tmp) != 'undefined' && source_tmp != "" && source_tmp.toLowerCase().indexOf("return-path:") == -1){ 
    12811319                    flags+="#@#@#@"+mail["Answered"]+":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"]; 
    12821320                    source+="#@#@#@"+source_tmp; 
    12831321                    timestamp+="#@#@#@"+rs.field(1); 
    12841322                    id+="#@#@#@"+rs.field(2); 
     1323                }     
    12851324                rs.next(); 
    12861325        } 
     
    12901329    else 
    12911330    { 
    1292         var rs = this.dbGears.execute("select mail,timestamp,rowid from mail where rowid="+msgs_number); 
     1331        var rs = this.dbGears.execute("select mail,timestamp,rowid,size from mail where rowid="+msgs_number); 
     1332        if(rs.field(3) > 30*1024*1024){ 
     1333            clean_msg(); 
     1334            write_msg('Por favor selecione menos de 30MB de mensagens para desarquivar'); 
     1335            this.finalize(); 
     1336            return; 
     1337        } 
    12931338        mail=connector.unserialize(rs.field(0)); 
    12941339        var source =""; 
    12951340        mail.msg_source?source = escape(mail.msg_source):source = escape(this.get_src(mail.url_export_file)); 
     1341        if(typeof (source) != 'undefined' && source != '' && source.toLowerCase().indexOf("return-path:") == -1){ 
    12961342            flags = mail["Answered"]+":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"]; 
    12971343            timestamp=rs.field(1); 
    12981344            id=rs.field(2); 
    12991345            rs.close(); 
     1346        }     
    13001347        this.finalize(); 
    1301     } 
    1302     params="&folder="+new_folder+"&source="+source+"&timestamp="+timestamp+"&flags="+flags+"&id="+id; 
     1348         
     1349    } 
     1350    params="&folder="+escape(new_folder)+"&source="+source+"&timestamp="+timestamp+"&flags="+flags+"&id="+id; 
    13031351    cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
    13041352} 
Note: See TracChangeset for help on using the changeset viewer.