Ignore:
Timestamp:
02/22/13 12:37:16 (11 years ago)
Author:
marcosw
Message:

Ticket #3331 - Melhoria inserida no repositório trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/attach_message/attach_message.js

    r7543 r7907  
    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.tag , function(i, flag){ 
     287        flags[ flag['@value'] ] = true; 
     288    }); 
     289 
     290        returns += (flags['seen'] ? '0,' : '1,') ; 
     291        returns += (flags['answered'] && !flags['forwarded'] ? '1,' : '0,') ; 
     292        returns += (flags['forwarded'] ? '1,' : '0,') ; 
     293        returns += (flags['flagged'] || flags['importance_high'] ? '1,' : '0,') ; 
     294        returns += '0,0'; 
     295             
     296    return returns; 
    257297} 
    258298 
     
    271311                var tree2 = new Array(); 
    272312                var tree3 = new Array(); 
     313 
     314        if(preferences.use_local_messages == 1){ 
     315            if(expresso_mail_archive.folders && !expresso_offline && expresso_mail_archive.enabled == true) { //MailArchive 
     316                //pega pastas locais do mailarchiver e insere no array de pastas 
     317                    expresso_mail_archive.getFoldersList("home"); 
     318                    treeFolders = expresso_mail_archive.folders; 
     319 
     320                    for(var i=0; i<treeFolders.length; i++ ){ 
     321                        mount_children_localfolders_list(treeFolders[i]); 
     322                    } 
     323                     
     324                    for(var i = 0; i < treeFolders.length; i++){ 
     325                        data.push(treeFolders[i]); 
     326                    } 
     327            } 
     328        } 
     329 
    273330                for (var i=0; i<data.length; i++) { 
    274331 
     
    286343                        } 
    287344                        else if (/^local_messages/.test(data[i].id)) { 
    288                                 if (!unorphanize(tree3, data[i])) { 
    289                                         data[i].children = new Array(); 
    290345                                        tree3.push(data[i]); 
    291                                 } 
    292346                        } 
    293347                         
     
    299353                .find("#foldertree").treeview() 
    300354                .click(function(event){ 
     355 
    301356                        //request new selected folder messages 
    302357                        var target = $(event.target); 
     
    325380                        var grid = $("#message_attacher_grid"), offlineCase = ""; 
    326381                         
    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>'); 
     382            if(targetId.indexOf( 'local_messages' ) == 0){ 
     383                 //Entrar caso: Clicar em uma pasta que seja do arquivamento local 
     384                targetId = targetId.split("_")[2]; 
     385 
     386                expresso_mail_archive.getMessagesByFolder(targetId,"ALL"); 
     387 
     388                msgAll = expresso_mail_archive.msgAll;                 
     389 
     390                var msgs = new Array(); 
     391                var from = ''; 
     392                var flag = ''; 
     393                 
     394                $.each(msgAll, function(i, msg){ 
     395                    from = $.parseJSON(msg['_from']); 
     396 
     397                    if(!from){ 
     398                        from = {"mailbox":{"name":"null","route":"null","localPart":"null","domain":"null"}}; 
     399                    } 
     400 
     401                    flag = $.parseJSON(msg['_tags']); 
     402                    id = msg['_id']; 
     403 
     404                    var message = {}; 
     405                     
     406                    message['msg_number'] = id; 
     407                    message['flags'] = archive_flag( flag ); 
     408                    message['from.name'] = from['mailbox']['@name']; 
     409                    message['subject'] = msg['_subject']; 
     410                    message['timestamp'] = msg['_receivedDate']; 
     411                    message['size'] = msg['_size']; 
     412                    message['id'] = id; 
     413                    msgs.push( message ); 
     414 
     415                }); 
     416 
     417            grid.jqGrid("clearGridData", true); 
     418            grid.jqGrid('setGridParam',{datatype: "local",data: msgs}) 
     419                    .trigger("reloadGrid") 
     420                    .jqGrid('setCaption', '<span class="'+child.attr('class')+'">'+child.attr('title')+'</span>'); 
     421 
     422            } else { 
     423                if( !targetId.indexOf( 'local_messages/' ) ) 
     424                    offlineCase = ":offline"; 
     425 
     426                grid.jqGrid('setGridParam',{datatype: "json", url:BASE_PATH + 'REST.php'+offlineCase+'?q=folder/'+targetId.replace(dashes, '.')+'/message'}) 
     427                    .trigger("reloadGrid") 
     428                    .jqGrid('setCaption', '<span class="'+child.attr('class')+'">'+child.attr('title')+'</span>'); 
     429            } 
     430 
     431 
    334432                }) 
    335433                .find('span:first-child'); 
    336                 $('span.folder.inbox').addClass('selected'); 
     434                $('span.folder.inbox').parents(".ui-dialog").find("li#INBOX span").addClass('selected'); 
    337435                selectedFolder = { 
    338436                        id: firstFolder.parent().attr('id'),  
     
    409507                                        } 
    410508                                } 
    411                                  
    412509                                var tabPanelTemplateId = 'mailpreview_tab_' + selectedFolder.id.replace(/[.\/]/g, '_') + '_' + message.msg_number; 
    413510                                var tabPanelTemplateId = tabPanelTemplateId.replace(/[\s\/]/g, '-');  
    414511                                 
    415512                                if (selected) {  
     513                   if(selectedFolder['id'].indexOf("local_messages_") != -1){ 
     514 
     515                        expresso_mail_archive.getPreviewToAttach(id); 
     516 
     517                        var body = expresso_mail_archive.bodyPreview; 
     518                        var subject = expresso_mail_archive.subjectPreview; 
     519                        tabPanelTemplateLabel =  subject.substring(0, $mailpreview_tabs_label_length) + '...'; 
     520 
     521                        if (!$('#' + tabPanelTemplateId).length) { 
     522                            $mailpreview_tabs.tabs("add", '#' + tabPanelTemplateId, tabPanelTemplateLabel) 
     523                            .find('.message.empty-container').hide().end() 
     524                            .find('#' + tabPanelTemplateId).html(body) 
     525                            .prepend( 
     526                                '<div class="mailpreview-message-info">' +  
     527                                    get_lang('Subject') + ': ' + 
     528                                    html_entities(subject) +  
     529                                '</div>' 
     530                            ) 
     531                            .find('[class^="ExpressoCssWrapper"]').addClass("mailpreview-message-body"); 
     532                        } else { 
     533                            $mailpreview_tabs.tabs('select', '#' + tabPanelTemplateId) 
     534                            .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
     535                        } 
     536                    } 
    416537                                        if (onceOpenedMessages[selectedFolder.id] && onceOpenedMessages[selectedFolder.id][message.msg_number]) { 
     538 
    417539                                                if (!selectedMessages[selectedFolder.id]) 
    418540                                                        selectedMessages[selectedFolder.id] = {}; 
     
    425547                                                        tabPanelTemplateLabel = tabPanelTemplateLabel.substring(0, $mailpreview_tabs_label_length) + '...'; 
    426548                                                 
    427                                                 if (!$('#' + tabPanelTemplateId).length) {                                                               
     549                                                if (!$('#' + tabPanelTemplateId).length) { 
    428550                                                        $mailpreview_tabs.tabs("add", '#' + tabPanelTemplateId, tabPanelTemplateLabel) 
    429551                                                        .find('.message.empty-container').hide().end() 
     
    433555                                                        .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
    434556                                                } 
    435                                                  
     557 
     558                         
     559 
    436560                                        } else { 
    437561                                                jQuery('#mailpreview_container').block({   
     
    460584                                                        selectedMessages[selectedFolder.id] = {}; 
    461585                                                selectedMessages[selectedFolder.id][message.msg_number] = true; 
    462                                                 $.ajax({ 
    463                                                         accepts: 'text/html', 
    464                                                         url: BASE_PATH + 'REST.php'+offlineCase+'?q=folder/'+selectedFolder.id.replace(dashes, '.')+'/message/'+id, 
    465                                                         dataType: 'json', 
    466                                                         success: function( mail_preview ){               
    467                                                                 //selectedMessagesCount(); 
    468                                                                 if (!onceOpenedMessages[selectedFolder.id]) 
    469                                                                         onceOpenedMessages[selectedFolder.id] = {}; 
    470                                                                 onceOpenedMessages[selectedFolder.id][message.msg_number] = jQuery.extend(true, message, mail_preview); 
    471  
    472                                                                 $('#mailpreview_container').unblock(); 
    473  
    474                                                                 var tabPanelTemplateLabel = html_entities(onceOpenedMessages[selectedFolder.id][message.msg_number].subject); 
    475                                                                 if (tabPanelTemplateLabel.length > $mailpreview_tabs_label_length + 3) 
    476                                                                         tabPanelTemplateLabel = tabPanelTemplateLabel.substring(0, $mailpreview_tabs_label_length) + '...'; 
    477                                                         selectedMessagesCount(); 
    478                                                                  
    479                                                                 if (!$('#' + tabPanelTemplateId).length) {                                                               
    480                                                                         $mailpreview_tabs.tabs("add", '#' + tabPanelTemplateId, tabPanelTemplateLabel) 
    481                                                                         .find('.message.empty-container').hide().end() 
    482                                                                         .find('#' + tabPanelTemplateId).html(onceOpenedMessages[selectedFolder.id][message.msg_number].body) 
    483                                                                         .prepend( 
    484                                                                                 '<div class="mailpreview-message-info">' +  
    485                                                                                         get_lang('Subject') + ': ' + 
    486                                                                                         html_entities(onceOpenedMessages[selectedFolder.id][message.msg_number].subject) +  
    487                                                                                 '</div>' 
    488                                                                         ) 
    489                                                                         .find('[class^="ExpressoCssWrapper"]').addClass("mailpreview-message-body"); 
    490                                                                 } else { 
    491                                                                         $mailpreview_tabs.tabs('select', '#' + tabPanelTemplateId) 
    492                                                                         .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
    493                                                                 } 
    494                                                         } 
    495                                                 }); 
     586 
     587 
     588                        if(selectedFolder['id'].indexOf("local_messages_") != -1){ 
     589                            $('#mailpreview_container').unblock(); 
     590                            if (!onceOpenedMessages[selectedFolder.id]) 
     591                                    onceOpenedMessages[selectedFolder.id] = {}; 
     592                                onceOpenedMessages[selectedFolder.id][message.msg_number] = message; 
     593 
     594                            var tabPanelTemplateLabel = html_entities(onceOpenedMessages[selectedFolder.id][message.msg_number].subject); 
     595                                    if (tabPanelTemplateLabel.length > $mailpreview_tabs_label_length + 3) 
     596                                        tabPanelTemplateLabel = tabPanelTemplateLabel.substring(0, $mailpreview_tabs_label_length) + '...'; 
     597                            selectedMessagesCount(); 
     598                        } else { 
     599                                                $.ajax({ 
     600                                                        accepts: 'text/html', 
     601                                                        url: BASE_PATH + 'REST.php'+offlineCase+'?q=folder/'+selectedFolder.id.replace(dashes, '.')+'/message/'+id, 
     602                                                        dataType: 'json', 
     603                                                        success: function( mail_preview ){               
     604                                                                //selectedMessagesCount(); 
     605                                                                if (!onceOpenedMessages[selectedFolder.id]) 
     606                                                                        onceOpenedMessages[selectedFolder.id] = {}; 
     607                                                                onceOpenedMessages[selectedFolder.id][message.msg_number] = jQuery.extend(true, message, mail_preview); 
     608 
     609                                                                $('#mailpreview_container').unblock(); 
     610 
     611                                                                var tabPanelTemplateLabel = html_entities(onceOpenedMessages[selectedFolder.id][message.msg_number].subject); 
     612                                                                if (tabPanelTemplateLabel.length > $mailpreview_tabs_label_length + 3) 
     613                                                                        tabPanelTemplateLabel = tabPanelTemplateLabel.substring(0, $mailpreview_tabs_label_length) + '...'; 
     614                                                        selectedMessagesCount(); 
     615                                                                 
     616                                                                if (!$('#' + tabPanelTemplateId).length) {       
     617                                        
     618 
     619                                    //tabPanelTemplateId - mailpreview_tab_INBOX_1110 
     620                                    //tabPanelTemplateLabel - Re: asduiahdih 
     621 
     622                                                                        $mailpreview_tabs.tabs("add", '#' + tabPanelTemplateId, tabPanelTemplateLabel) 
     623                                                                        .find('.message.empty-container').hide().end() 
     624                                                                        .find('#' + tabPanelTemplateId).html(onceOpenedMessages[selectedFolder.id][message.msg_number].body) 
     625                                                                        .prepend( 
     626                                                                                '<div class="mailpreview-message-info">' +  
     627                                                                                        get_lang('Subject') + ': ' + 
     628                                                                                        html_entities(onceOpenedMessages[selectedFolder.id][message.msg_number].subject) +  
     629                                                                                '</div>' 
     630                                                                        ) 
     631                                                                        .find('[class^="ExpressoCssWrapper"]').addClass("mailpreview-message-body"); 
     632                                                                } else { 
     633                                                                        $mailpreview_tabs.tabs('select', '#' + tabPanelTemplateId) 
     634                                                                        .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
     635                                                                } 
     636                                                        } 
     637                                                }); 
     638                        }       
    496639                                        } 
    497640                                } else { 
Note: See TracChangeset for help on using the changeset viewer.