Changeset 7831 for sandbox


Ignore:
Timestamp:
02/01/13 15:16:26 (11 years ago)
Author:
thiago
Message:

Ticket #3331 - Listando pastas, listando msgs, preview quase functionando.

Location:
sandbox/2.5.1-expresso1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.1-expresso1/expressoMail1_2/js/mail_archiver.js

    r7685 r7831  
    13981398} 
    13991399 
     1400 
     1401MailArchiver.prototype.getMessagesByFolder = function(folderid, searchType){ 
     1402    try{ 
     1403        if(searchType == "ALL") 
     1404            var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date"}]}}'; 
     1405        else 
     1406            var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "tags":[{"@contains":"'+searchType+'"}], "order":[{"@asc":"date"}]}}'; 
     1407        ArchiveServices.listMessages(expresso_mail_archive.getMessagesByFolderOperationOK, expresso_mail_archive.getMessagesByFolderOperationFailure, expresso_mail_archive.session.id, query_messages); 
     1408    } 
     1409    catch (e){ 
     1410        expresso_mail_archive.getFaultInfo(); 
     1411    } 
     1412} 
     1413 
     1414MailArchiver.prototype.getMessagesByFolderOperationOK = function(returnService){ 
     1415    var msglist = new Array(); 
     1416    var msglistcomplete = new Array(); 
     1417    var msgAll = new Array(); 
     1418    for(var i=0; i< returnService.getReturn().length; i++){ 
     1419        //Array montado apenas com ids para tratamento de seleção de mensagens independente de paginação 
     1420        msglist.push(returnService.getReturn()[i]._id); 
     1421 
     1422        msgAll.push(returnService.getReturn()[i]); 
     1423 
     1424        //Incremento de contadores para atualização da aba de listagem 
     1425        if(returnService.getReturn()[i]._tags.indexOf("unseen") != -1){ 
     1426            expresso_mail_archive.tot_unseen_msgs_tab++; 
     1427        } 
     1428        expresso_mail_archive.tot_msgs_tab++; 
     1429        //Array montado para operação de desarquivamento 
     1430        var ExpSerialized = expresso_mail_archive.pattern.toExpressoHeader(returnService.getReturn()[i]); 
     1431        msglistcomplete.push(connector.unserialize(ExpSerialized)); 
     1432    } 
     1433    expresso_mail_archive.allmessagesbyfolder = msglist; 
     1434    expresso_mail_archive.allcompletemessagesbyfolder = msglistcomplete; 
     1435    expresso_mail_archive.msgAll = msgAll; 
     1436} 
     1437 
     1438MailArchiver.prototype.getMessagesByFolderOperationFailure = function(ServiceFault){ 
     1439    window.alert('listAllmessagesByFolder FALHOU!\n' + ServiceFault.getReturn()); 
     1440} 
     1441 
     1442 
    14001443//List all messages by folder given and set a array with all messages ids 
    14011444MailArchiver.prototype.listAllMessagesByFolder = function(folderid, searchType){ 
     
    15151558    if(msgfound){ 
    15161559        expresso_mail_archive.currentheaders = headerMsg; 
     1560        expresso_mail_archive.subjectPreview = headerMsg.subject; 
    15171561        return(headerMsg); 
    15181562    } 
     
    15371581            bodies.push(temp); 
    15381582        } 
     1583        expresso_mail_archive.bodyPreview = temp.getReturn(); 
    15391584        return bodies; 
    15401585    } 
     
    16181663        return; 
    16191664    }     
     1665    expresso_mail_archive.te = returnService.getReturn(); 
    16201666    var msgBody = returnService.getReturn(); 
    16211667    //var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); 
     
    20922138        expresso_mail_archive.messageslisted.push(msgitem2);     
    20932139        expresso_mail_archive.getMessageHeaders(serviceReturn.getReturn().getId()); 
     2140 
    20942141    } 
    20952142    else{ 
  • sandbox/2.5.1-expresso1/prototype/modules/attach_message/attach_message.js

    r7543 r7831  
    231231var selectedFolder     = {}; 
    232232 
     233function mount_children_localfolders_list(folder){  
     234    folder.children = new Array(); 
     235    folder.id_search = folder.id; 
     236    folder.id = 'local_messages_'+folder.id, 
     237    folder.commonName =  folder.name, 
     238    folder.parentId = folder.parentid, 
     239    folder.type = 'localFolder', 
     240    folder.name = folder.id, 
     241    folder.messageCount = { 
     242                             total: folder.messages, 
     243                             unseen: folder.unseen 
     244                          } 
     245 
     246    if(folder.haschild){ 
     247        expresso_mail_archive.getFoldersList(folder.id_search); 
     248        folder.children = expresso_mail_archive.folders; 
     249 
     250        for(var i = 0; i < folder.children.length; i++){ 
     251            mount_children_localfolders_list(folder.children[i]); 
     252        } 
     253 
     254    } 
     255} 
    233256function adaptOffline( data ) 
    234257{ 
     
    254277         
    255278    return( data ); 
    256          
     279} 
     280 
     281function archive_flag( flagObj ){ 
     282 
     283    var flags = {}; 
     284    var returns = ''; 
     285 
     286    $.each( flagObj, function(i, flag){ 
     287 
     288        flags[ flag['@value'] ] = true; 
     289 
     290    }); 
     291 
     292/*0*/    returns += (flags['seen'] ? '0.' : '1.') ; 
     293/*1 2*/  returns += '0.';   
     294/*3*/    returns += (flags['unflagged'] ? '0.' : '1.') ; 
     295/*4*/    returns += '0.'; 
     296/*5*/    returns += '0'; 
     297             
     298 
     299//Answered: parseInt(cellvalue[1]) ? 'Answered' : (parseInt(cellvalue[2]) ? 'Forwarded' : ''),              
     300//Recent: parseInt(cellvalue[4])  ? 'Recent' : '',             
     301//Draft: parseInt(cellvalue[5]) ? 'Draft' : ''         
     302     
     303    return returns; 
    257304} 
    258305 
     
    271318                var tree2 = new Array(); 
    272319                var tree3 = new Array(); 
     320 
     321 
     322        if(expresso_mail_archive.folders && !expresso_offline && expresso_mail_archive.enabled == true) { //MailArchive 
     323            //pega pastas locais do mailarchiver e insere no array de pastas 
     324                expresso_mail_archive.getFoldersList("home"); 
     325                treeFolders = expresso_mail_archive.folders; 
     326 
     327                for(var i=0; i<treeFolders.length; i++ ){ 
     328                    mount_children_localfolders_list(treeFolders[i]); 
     329                } 
     330                 
     331                for(var i = 0; i < treeFolders.length; i++){ 
     332                    data.push(treeFolders[i]); 
     333                } 
     334        } 
     335 
    273336                for (var i=0; i<data.length; i++) { 
    274337 
     
    286349                        } 
    287350                        else if (/^local_messages/.test(data[i].id)) { 
    288                                 if (!unorphanize(tree3, data[i])) { 
    289                                         data[i].children = new Array(); 
    290351                                        tree3.push(data[i]); 
    291                                 } 
    292352                        } 
    293353                         
     
    299359                .find("#foldertree").treeview() 
    300360                .click(function(event){ 
     361 
    301362                        //request new selected folder messages 
    302363                        var target = $(event.target); 
     
    325386                        var grid = $("#message_attacher_grid"), offlineCase = ""; 
    326387                         
    327                         if( !targetId.indexOf( 'local_messages/' ) ) 
    328                             offlineCase = ":offline"; 
    329                          
    330  
    331                         grid.jqGrid('setGridParam',{url:BASE_PATH + 'REST.php'+offlineCase+'?q=folder/'+targetId.replace(dashes, '.')+'/message'}) 
    332                             .trigger("reloadGrid") 
    333                             .jqGrid('setCaption', '<span class="'+child.attr('class')+'">'+child.attr('title')+'</span>'); 
     388            if(targetId.indexOf( 'local_messages' ) == 0){ 
     389                 //Entrar caso: Clicar em uma pasta que seja do arquivamento local 
     390                targetId = targetId.split("_")[2]; 
     391 
     392                expresso_mail_archive.getMessagesByFolder(targetId,"ALL"); 
     393                  
     394                msgAll = expresso_mail_archive.msgAll;                 
     395 
     396                var msgs = new Array(); 
     397                var from = ''; 
     398                var flag = ''; 
     399                 
     400 
     401                $.each(msgAll, function(i, msg){ 
     402                    from = $.parseJSON(msg['_from']); 
     403                    flag = $.parseJSON(msg['_tags']); 
     404                    id = msg['_id']; 
     405 
     406                    var message = {}; 
     407                     
     408                    message['msg_number'] = id; 
     409                    message['flags'] = archive_flag( flag ); 
     410                    message['from.name'] = from['mailbox']['@name']; 
     411                    message['subject'] = msg['_subject']; 
     412                    message['timestamp'] = msg['_receivedDate']; 
     413                    message['size'] = msg['_size']; 
     414                    message['id'] = id; 
     415                    msgs.push( message ); 
     416 
     417                }); 
     418 
     419            grid.jqGrid("clearGridData", true); 
     420            grid.jqGrid('setGridParam',{datatype: "local",data: msgs}) 
     421                    .trigger("reloadGrid") 
     422                    .jqGrid('setCaption', '<span class="'+child.attr('class')+'">'+child.attr('title')+'</span>'); 
     423 
     424            } else { 
     425                if( !targetId.indexOf( 'local_messages/' ) ) 
     426                    offlineCase = ":offline"; 
     427 
     428                grid.jqGrid('setGridParam',{datatype: "json", url:BASE_PATH + 'REST.php'+offlineCase+'?q=folder/'+targetId.replace(dashes, '.')+'/message'}) 
     429                    .trigger("reloadGrid") 
     430                    .jqGrid('setCaption', '<span class="'+child.attr('class')+'">'+child.attr('title')+'</span>'); 
     431            } 
     432 
     433 
    334434                }) 
    335435                .find('span:first-child'); 
    336                 $('span.folder.inbox').addClass('selected'); 
     436                $('span.folder.inbox').parents(".ui-dialog").find("li#INBOX span").addClass('selected'); 
    337437                selectedFolder = { 
    338438                        id: firstFolder.parent().attr('id'),  
     
    388488                                }); 
    389489                                 
    390                                 // reconstrói a seleção das mensagens mesmo depois da mudança de pasta 
     490                                // reconstrói a seleção das mensagens mesmo depois da mudança de pasta 
    391491                                if (selectedMessages[selectedFolder.id]) { 
    392492                                        for (var message in selectedMessages[selectedFolder.id]){ 
     
    409509                                        } 
    410510                                } 
    411                                  
    412511                                var tabPanelTemplateId = 'mailpreview_tab_' + selectedFolder.id.replace(/[.\/]/g, '_') + '_' + message.msg_number; 
    413512                                var tabPanelTemplateId = tabPanelTemplateId.replace(/[\s\/]/g, '-');  
    414513                                 
    415514                                if (selected) {  
     515 
    416516                                        if (onceOpenedMessages[selectedFolder.id] && onceOpenedMessages[selectedFolder.id][message.msg_number]) { 
    417517                                                if (!selectedMessages[selectedFolder.id]) 
     
    433533                                                        .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
    434534                                                } 
    435                                                  
     535 
     536 
    436537                                        } else { 
    437538                                                jQuery('#mailpreview_container').block({   
     
    460561                                                        selectedMessages[selectedFolder.id] = {}; 
    461562                                                selectedMessages[selectedFolder.id][message.msg_number] = true; 
     563 
     564 
     565                        if(selectedFolder['id'].indexOf("local_messages_") != -1 && false){ 
     566                        // Arrumar isso! 
     567                            expresso_mail_archive.getMessageInfo(id); 
     568                            expresso_mail_archive.getMessageBodies([id]); 
     569 
     570                                var body = expresso_mail_archive.bodyPreview; 
     571                                var subject = expresso_mail_archive.subjectPreview; 
     572                        } 
     573 
    462574                                                $.ajax({ 
    463575                                                        accepts: 'text/html', 
     
    465577                                                        dataType: 'json', 
    466578                                                        success: function( mail_preview ){               
     579 
    467580                                                                //selectedMessagesCount(); 
    468581                                                                if (!onceOpenedMessages[selectedFolder.id]) 
Note: See TracChangeset for help on using the changeset viewer.