Ignore:
Timestamp:
07/14/11 09:11:47 (13 years ago)
Author:
fernando-alberto
Message:

Ticket #1269 - Desenvolvimento da nova solucao de arquivamento local MailArchiver?, servico listmessages

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/mail_archiver.js

    r4658 r4715  
    6060} 
    6161 
     62function zeroFill(d){ 
     63    if(parseInt(d) < 10) 
     64        return('0' + d); 
     65    else 
     66        return(d); 
     67} 
     68 
     69/** 
     70 * Concatenates the values of a variable into an easily readable string 
     71 * by Matt Hackett [scriptnode.com] 
     72 * @param {Object} x The variable to debug 
     73 * @param {Number} max The maximum number of recursions allowed (keep low, around 5 for HTML elements to prevent errors) [default: 10] 
     74 * @param {String} sep The separator to use between [default: a single space ' '] 
     75 * @param {Number} l The current level deep (amount of recursion). Do not use this parameter: it's for the function's own use 
     76 */ 
     77function print_r(x, max, sep, l) { 
     78 
     79        l = l || 0; 
     80        max = max || 100; 
     81        sep = sep || ' '; 
     82 
     83        if (l > max) { 
     84                return "[WARNING: Too much recursion]\n"; 
     85        } 
     86 
     87        var 
     88                i, 
     89                r = '', 
     90                t = typeof x, 
     91                tab = ''; 
     92 
     93        if (x === null) { 
     94                r += "(null)\n"; 
     95        } else if (t == 'object') { 
     96 
     97                l++; 
     98 
     99                for (i = 0; i < l; i++) { 
     100                        tab += sep; 
     101                } 
     102 
     103                if (x && x.length) { 
     104                        t = 'array'; 
     105                } 
     106 
     107                r += '(' + t + ") :\n"; 
     108 
     109                for (i in x) { 
     110                        try { 
     111                                r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1)); 
     112                        } catch(e) { 
     113                                return "[ERROR: " + e + "]\n"; 
     114                        } 
     115                } 
     116 
     117        } else { 
     118 
     119                if (t == 'string') { 
     120                        if (x == '') { 
     121                                x = '(empty)'; 
     122                        } 
     123                } 
     124 
     125                r += '(' + t + ') ' + x + "\n"; 
     126 
     127        } 
     128 
     129        return r; 
     130 
     131}; 
     132var_dump = print_r; 
     133 
     134 
     135 
    62136//Main object structure: object property data definition 
    63137function MailArchiver() {  
     
    103177    else 
    104178        tem_tag = false; 
    105      
    106179    try{ 
    107180        if (obj.enabled){ 
     
    148221                expresso_mail_archive.interval = 5000; 
    149222                expresso_mail_archive.timer = window.setInterval(expresso_mail_archive.getServicesStatus, expresso_mail_archive.interval); 
     223                var drawinginfo = {treeObject: tree_folders, treeName: 'tree_folders', folderName: 'local_root'}; 
     224                expresso_mail_archive.currentfolder = 'local_root'; 
     225                expresso_mail_archive.drawdata = drawinginfo; 
     226                expresso_mail_archive.getFoldersList(); 
    150227           } 
    151228        } 
     
    198275 **/ 
    199276MailArchiver.prototype.Restart = function(obj){ 
    200     window.alert('Trying reboot...'); 
    201  
    202277    obj.SystemCheck(); 
    203278    obj.ActivateStatusListener(obj); 
    204     //tree_folders.getNodeById('local_root')._refresh(); 
    205279    auto_refresh(); 
    206280} 
     
    212286    this.SystemCheck(); 
    213287} 
     288 
     289MailArchiver.prototype.serializeToExpresso = function(data){ 
     290    return(connector.serialize(data)); 
     291} 
     292 
     293MailArchiver.prototype.unserializeFromExpresso = function(data){ 
     294    return(connector.unserialize(data)); 
     295} 
     296 
    214297 
    215298MailArchiver.prototype.CreateMessageList = function(msg_list){ 
     
    233316//Archive Operation 
    234317MailArchiver.prototype.Archive = function(source_folder,destination_folder,msgs_id){ 
    235     window.alert('tentando arquivar a mensagem [' + msgs_id + '], do folder ['+source_folder+'] para a pasta destino ['+destination_folder+']'); 
     318    //window.alert('tentando arquivar a mensagem [' + msgs_id + '], do folder ['+source_folder+'] para a pasta destino ['+destination_folder+']'); 
    236319    try{ 
    237320        document.getElementById('main_title').innerHTML = get_lang("Starting to archive messages"); 
     
    245328            //Sets the folders properties: destination and origin 
    246329            expresso_mail_archive.folder_origin = source_folder; 
    247             window.alert('substr(0,5) = ' + destination_folder.substr(0,5)); 
     330            //window.alert('substr(0,5) = ' + destination_folder.substr(0,5)); 
    248331            if(destination_folder.substr(0,5) == 'local') 
    249332                expresso_mail_archive.folder_destination = destination_folder.substr(6,destination_folder.length); 
     
    251334                expresso_mail_archive.folder_destination = destination_folder; 
    252335             
    253             window.alert('destination_folder = ' + expresso_mail_archive.folder_destination); 
     336            //window.alert('destination_folder = ' + expresso_mail_archive.folder_destination); 
    254337 
    255338            var arch_handler = function(data){ 
     
    302385    } 
    303386    catch (e){ 
    304         window.alert('Ops...List folders fails at:\n' + e.description); 
     387        window.alert('AQUI MESMO\nOps...List folders fails at:\n' + e.description); 
    305388    }  
    306389} 
     
    346429        //If something UI related have been flagged, handle it 
    347430        if (expresso_mail_archive.drawdata){ 
     431            //window.alert('com drawdata'); 
    348432            expresso_mail_archive.drawFolderTree(); 
    349433        } 
     
    358442//drawFolderTree operation, if requested to 
    359443MailArchiver.prototype.drawFolderTree = function(){ 
     444    //window.alert('na api de foldertree'); 
    360445    var localBaseName  = 'local_'; 
    361446    var objectTree = expresso_mail_archive.drawdata.treeObject; 
     
    378463             
    379464            //Adjust the id node names 
    380             if(expresso_mail_archive.currentfolder.substr(0,5) != 'local'){ 
    381                 evalobjectTree.add(n_demo, localBaseName + expresso_mail_archive.currentfolder); 
     465            if(expresso_mail_archive.currentfolder){ 
     466                if(expresso_mail_archive.currentfolder.substr(0,5) != 'local'){ 
     467                    evalobjectTree.add(n_demo, localBaseName + expresso_mail_archive.currentfolder); 
     468                } 
     469                else{ 
     470                    evalobjectTree.add(n_demo,expresso_mail_archive.currentfolder); 
     471                } 
    382472            } 
    383             else{ 
     473            else { 
     474                expresso_mail_archive.currentfolder = 'local_root'; 
    384475                evalobjectTree.add(n_demo,expresso_mail_archive.currentfolder); 
    385476            } 
     
    507598 
    508599//listMessages operation 
    509 MailArchiver.prototype.listMessages = function(listQuery){ 
    510     try{ 
    511         ///ArchiveServices.listMessages() 
     600MailArchiver.prototype.listMessages = function(){ 
     601    try{ 
     602        var folderid = expresso_mail_archive.currentfolder; 
     603        var testing_data_xml = '<?xml version="1.0" encoding="UTF-8"?><query lowerIndex="0" upperIndex="50"><folder id="'+folderid+'"/><order asc="date"/><order desc="subject"/></query>'; 
     604        var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; 
     605        var testing_data = testing_data_json_mapped; 
     606        //window.alert('vai chamar o listMessages com testing_data = ' + testing_data); 
     607        ArchiveServices.listMessages(expresso_mail_archive.listMessagesOperationOK, expresso_mail_archive.listMessagesOperationFailure, sessid, testing_data); 
    512608    } 
    513609    catch (e){ 
     
    518614//listMessages callback OK 
    519615MailArchiver.prototype.listMessagesOperationOK = function(returnService){ 
     616    var msglist = new Array(); 
     617    /*window.alert('Dados da mensagem:\n->From ' + returnService.getReturn()[0].getFrom() 
     618                                      +'\n->To ' + returnService.getReturn()[0].getTo() 
     619                                      +'\n->Subject ' + returnService.getReturn()[0].getSubject() 
     620                                      +'\n->Date ' + returnService.getReturn()[0].getDate() 
     621                                      +'\n->Date ' + returnService.getReturn()[0].getSize() 
     622                                      +'\n->ID ' + returnService.getReturn()[0].getId()); 
     623    */ 
     624    for(var i=0; i< returnService.getReturn().length; i++){ 
     625        //window.alert('quer deserializar:\n\n' + print_r(returnService.getReturn()[i])); 
     626        var ExpSerialized = expresso_mail_archive.toExpressoHeader(returnService.getReturn()[i]); 
     627        //window.alert('expSerialized ' + i + '\n\n --\n\n' + print_r(ExpSerialized)); 
     628        //var test = connector.unserialize(ExpSerialized); 
     629        //window.alert('unserialized = \n\n' + test); 
     630        msglist.push(connector.unserialize(ExpSerialized));//usando connector.unserialize sobre o header mapeado no layout abaixo 
     631    } 
     632    msglist["num_msgs"] = returnService.getReturn().length; 
     633    //window.alert('print_r\n\n' + print_r(msglist)); 
     634    expresso_mail_archive.drawdata = {messagesList:msglist}; 
     635    expresso_mail_archive.drawMessagesList(); 
     636} 
     637 
     638//listMessages callback Fail 
     639MailArchiver.prototype.listMessagesOperationFailure = function(ServiceFault){ 
     640    window.alert('listmessages FALHOU!\n' + ServiceFault.getReturn()); 
     641} 
     642 
     643MailArchiver.prototype.drawMessagesList = function(){ 
     644    var data_to_draw = expresso_mail_archive.drawdata.messagesList;   
     645    //window.alert('data to draw =  ' + data_to_draw.length + '\ndata_to_draw[0].from.full = ' + print_r(data_to_draw)); 
    520646     
    521 } 
    522  
    523 //listMessages callback Fail 
    524 MailArchiver.prototype.listMessagesOperationFailure = function(serviceFault){ 
     647    alternate_border(0); 
     648    Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(expresso_mail_archive.currentfolder) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>'; 
     649    draw_box(data_to_draw, expresso_mail_archive.currentfolder, true); 
     650    draw_paging(expresso_mail_archive.drawdata.messagesList.length); 
     651    Element("tot_m").innerHTML = expresso_mail_archive.drawdata.messagesList.length; 
     652    //update_menu(); 
    525653     
    526654} 
    527655 
     656// -----------------------------------SERIALIZED DATA TEMPLATES ---------------- 
     657MailArchiver.prototype.toExpressoAddress = function(data){ 
     658    /*var dataFormat = expresso_mail_archive.toExpressoFormatNameMail(data); 
     659    var dataName = dataFormat[0]; 
     660    var dataEmail = dataFormat[1]; 
     661    */ 
     662    //window.alert('em toExpressoFrom com data = \n' + data + '[' + typeof(data) + ']('+data.length+')'); 
     663    var Fromdata = eval("(" + data + ")"); 
     664    var dataName = Fromdata.mailbox.name.$; 
     665    var dataEmail = Fromdata.mailbox.localPart.$ + '@' + Fromdata.mailbox.domain.$; 
     666    //window.alert('name = ' + Fromdata.mailbox.name.$ + '\nlocal part = ' + Fromdata.mailbox.localPart.$ + '\ndomain = ' + Fromdata.mailbox.domain.$); 
     667        
     668    var tplFrom = 'a:2:{' 
     669+           's:4:"name";' 
     670+           's:'+dataName.length+':"'+dataName+'";' 
     671+           's:5:"email";' 
     672+           's:'+dataEmail.length+':"'+dataEmail+'";' 
     673+           's:4:"full";' 
     674+           's:'+(dataName.length + dataEmail.length + 3)+':"'+dataName+'" <'+dataEmail+'>;' 
     675+       '}'; 
     676    //window.alert('retorno do email: ' + tplFrom); 
     677    return(tplFrom); 
     678} 
     679 
     680MailArchiver.prototype.toExpressoDate = function(data){ 
     681    var ndate = new Date(data);    
     682    var odate = zeroFill(ndate.getDay()) + '/' + zeroFill(ndate.getMonth()) + '/' + zeroFill(ndate.getFullYear()); 
     683    return(odate); 
     684} 
     685 
     686MailArchiver.prototype.toExpressoHour = function(data){ 
     687    var ndate = new Date(data);    
     688    var ohour = zeroFill(ndate.getHours()) + ':' + zeroFill(ndate.getMinutes()) + ':' + zeroFill(ndate.getSeconds()); 
     689    return(ohour);     
     690} 
     691 
     692MailArchiver.prototype.toExpressoCC = function(data){ 
     693    var tplCC =  "s:"+data.getCC().length+":\""+data.getCC()+"\";"; 
     694    return(tplCC); 
     695} 
     696 
     697MailArchiver.prototype.toExpressoTo = function(data){ 
     698    var tplTo =  "s:"+data.getTo().length+":\""+data.getTo()+"\";"; 
     699    return(tplTo); 
     700} 
     701 
     702/** 
     703 *+           's:'+expresso_mail_archive.toExpressoDate(data.getDate()).length+':"'+expresso_mail_archive.toExpressoDate(data.getDate())+'";' 
     704+           's:7:"msg_day";' 
     705+           's:'+expresso_mail_archive.toExpressoDate(data.getDate()).length+':"'+expresso_mail_archive.toExpressoDate(data.getDate())+'";' 
     706+           's:8:"msg_hour";' 
     707+           's:'+expresso_mail_archive.toExpressoHour(data.getDate()).length+':"'+expresso_mail_archive.toExpressoHour(data.getDate())+'";' 
     708+           's:8:"fulldate";' 
     709+           's:'+(expresso_mail_archive.toExpressoDate(data.getDate()).length+expresso_mail_archive.toExpressoHour(data.getDate()).length+1)+':"'+expresso_mail_archive.toExpressoDate(data.getDate())+' '+expresso_mail_archive.toExpressoHour(data.getDate())+'";' 
     710+           's:9:"smalldate";' 
     711+           's:'+expresso_mail_archive.toExpressoDate(data.getDate()).length+':"'+expresso_mail_archive.toExpressoDate(data.getDate())+'";' 
     712+           's:8:"aux_date";' 
     713+           's:1:"N";' 
     714 */ 
     715 
     716 
     717MailArchiver.prototype.toExpressoHeader = function(data){    
     718    var tplHeader = 'a:16:{' 
     719+           's:11:"ContentType";' 
     720+           's:6:"normal";' 
     721+           's:10:"Importance";' 
     722+           's:6:"Normal";' 
     723+           's:6:"Recent";' 
     724+           's:1:" ";' 
     725+           's:6:"Unseen";' 
     726+           's:1:"N";' 
     727+           's:8:"Answered";' 
     728+           's:1:" ";' 
     729+           's:5:"Draft";' 
     730+           's:1:" ";' 
     731+           's:7:"Deleted";' 
     732+           's:1:" ";' 
     733+           's:7:"Flagged";' 
     734+           'b:0;' 
     735+           's:10:"msg_number";' 
     736+           's:'+data.getId().length+':"'+data.getId()+'";' 
     737+           's:4:"from";' 
     738+           expresso_mail_archive.toExpressoAddress(data.getFrom()) 
     739+           's:2:"to";' 
     740+           expresso_mail_archive.toExpressoAddress(data.getTo()) 
     741+           's:7:"subject";' 
     742+           's:'+data.getSubject().length+':"'+data.getSubject()+'";' 
     743+           's:4:"Size";' 
     744+           'i:'+data.getSize()+';' 
     745+           's:5:"udate";' 
     746+           's:10:"01/04/2011";' 
     747+           's:7:"msg_day";' 
     748+           's:10:"01/04/2011";' 
     749+           's:8:"msg_hour";' 
     750+           's:8:"01:01:59";' 
     751+           's:8:"fulldate";' 
     752+           's:19:"01/04/2011 01:01:59";' 
     753+           's:9:"smalldate";' 
     754+           's:10:"01/04/2011";' 
     755+           's:10:"attachment";' 
     756+           'a:2:{' 
     757+                   's:5:"names";' 
     758+                   'b:0;' 
     759+                   's:18:"number_attachments";' 
     760+                  'i:0;' 
     761+               '}' 
     762+           's:8:"aux_date";' 
     763+           's:10:"01/04/2011";' 
     764+           '}'; 
     765    //window.alert('Expresso Header draw data = ' + tplHeader); 
     766    return(tplHeader); 
     767} 
     768 
     769MailArchiver.prototype.toExpressoMail = function(data){ 
     770     
     771} 
    528772/* 
    529773 *The all pourpose JavaScript variable, used by all related functionalityes at 
Note: See TracChangeset for help on using the changeset viewer.