Ignore:
Timestamp:
06/14/12 23:39:50 (12 years ago)
Author:
natan
Message:

Ticket #2845 - Atualizacao da API na busca de mensagens - Otimizando o carregamento do anexar mensagens

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/expressoServiceImap/prototype/modules/attach_message/attach_message.js

    r6486 r6509  
    1 // $.storage = new $.store(); 
    2   
    3 isOffline = /[A-z0-9-_\/\.]*:offline\?(.*)/; 
    4 breakParams = /[&=]/; 
    5 dots = /\./gi; 
    6 dashes = /\//gi; 
    7 flags = [ 'Attachment', 'Forwarded' ,'Recent', 'Unseen',  'Answered',  'Draft',  'Deleted', 'Flagged', 'Followupflag', 'Label' ]; 
    8 months = ['Jan','Feb','Mar','Apr','May','June','July','Aug','Sept','Oct','Nov','Dec']; 
    9  
    101var BASE_PATH = '../prototype/'; 
    11 //BASE_PATH = '../'; 
    12 //encontra os pais de todas as pastas e cria uma nova estrutura adicionando os filhos a um array no atributo 'children' do respectivo pai 
    13 unorphanize = function(root, element) { 
    14         var ok = false; 
    15         for (var i=0; i<root.length; i++) { 
    16                 if (root[i].id == element.parentFolder) { 
    17                         element.children = new Array();  
    18                         root[i].children.push(element); 
    19                         return true; 
    20                 } else if (ok = unorphanize(root[i].children, element)) { 
    21                         break; 
    22                 } 
    23         } 
    24  
    25         return ok; 
    26 } 
    27  
    28 /* --- helpers --- */ 
    29 bytes2Size = function(bytes) { 
    30         var sizes = ['B', 'KB', 'MB', 'GB', 'TB']; 
    31         if (bytes == 0) return 'n/a'; 
    32         var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); 
    33         var size = (i<2) ? Math.round((bytes / Math.pow(1024, i))) : Math.round((bytes / Math.pow(1024, i)) * 100)/100; 
    34         return  size + ' ' + sizes[i]; 
    35 } 
    36  
    37 flags2Class = function(cellvalue, options, rowObject) { 
    38         var classes = '';        
    39         cellvalue = cellvalue.split(','); 
    40         cell = { 
    41                         Unseen: parseInt(cellvalue[0])  ? 'Unseen' : 'Seen',  
    42                         Answered: parseInt(cellvalue[1]) ? 'Answered' : (parseInt(cellvalue[2]) ? 'Forwarded' : ''),  
    43                         Flagged: parseInt(cellvalue[3]) ? 'Flagged' : '', 
    44                         Recent: parseInt(cellvalue[4])  ? 'Recent' : '',                         
    45                         Draft: parseInt(cellvalue[5]) ? 'Draft' : ''             
    46                 }; 
    47         for(var flag in cell){ 
    48                 classes += '<span class="flags '+ (cell[flag]).toLowerCase() + '"' + (cell[flag] != "" ? 'title="'+ get_lang(cell[flag])+'"' : '')+'> </span>';  
    49         } 
    50         if(rowObject.labels){    
    51                 var titles = []; 
    52                 var count = 0; 
    53                  for(i in rowObject.labels){ 
    54                         titles[count] = " "+rowObject.labels[i].name; 
    55                         count++; 
    56                 } 
    57                 titles = titles.join(); 
    58                 classes += '<span class="flags labeled" title="'+titles+'"> </span>'; 
    59         }else{ 
    60                 classes += '<span class="flags"> </span>'; 
    61         } 
    62          
    63         if(rowObject.followupflagged){           
    64                 if(rowObject.followupflagged.followupflag.id < 7){ 
    65                         var nameFollowupflag = get_lang(rowObject.followupflagged.followupflag.name); 
    66                 }else{ 
    67                         var nameFollowupflag = rowObject.followupflagged.followupflag.name; 
    68                 } 
    69                 if(rowObject.followupflagged.isDone == 1){ 
    70                         classes += '<span class="flags followupflagged" title="'+nameFollowupflag+'" style="background:'+rowObject.followupflagged.backgroundColor+';"><img style=" margin-left:-3px;" src="../prototype/modules/mail/img/flagChecked.png"></span>'; 
    71                 }else{                   
    72                         classes += '<span class="flags followupflagged" title="'+nameFollowupflag+'" style="background:'+rowObject.followupflagged.backgroundColor+';"><img src="../prototype/modules/mail/img/flagEditor.png"></span>'; 
    73                 } 
    74                  
    75         } 
    76  
    77         return classes; 
    78 } 
    79  
    80 NormaliseFrom = function(cellvalue, options, rowObject) { 
    81         rowObject['flags'] = rowObject['flags'].split(","); 
    82         if(rowObject['flags'][rowObject['flags'].length-1] ==  1){ 
    83                 return get_lang(special_folders["Drafts"]); 
    84         } 
    85         return cellvalue;        
    86 } 
    87  
    88 NormaliseSubject = function(cellvalue, options, rowObject) { 
    89         return html_entities(cellvalue); 
    90 } 
    91  
    92 date2Time = function (timestamp) { 
    93         date = new Date(); 
    94         if( typeof timestamp === "string" ) 
    95             timestamp = parseInt( timestamp, 10 ); 
    96         dat = new Date(timestamp); 
    97         if ((date.getTime() - timestamp) < (24*60*60*1000)) { 
    98                 return '<span class="timable" title="'+dat.getTime()+'"></span>'; 
    99         } else { 
    100                 date = new Date(timestamp); 
    101                 if(is_ie){ 
    102                         var b = date.toString().split(' '); 
    103                         var c = b[2] + "/" + months.indexOf(b[1]) + "/" + b[5]; 
    104                         return '<span class="datable">' + c + '</span>'; 
    105                 }else{ 
    106                         var b = date.toISOString().split("T")[0].split("-"); 
    107                         var c = b[2] + "/" + b[1] + "/" + b[0]; 
    108                         return '<span class="datable">' + c + '</span>'; 
    109                 } 
    110         } 
    111 } 
    112  
    113 changeTabIndex = function (elements) { 
    114 //      jQuery('#foldertree').attr('tabIndex', '1').focus(); 
    115 } 
    116  
    117 selectedMessagesCount = function() { 
    118         var byte_size = 0, total_messages = 0; 
    119         for (var folder in selectedMessages) { 
    120                 for (var message in selectedMessages[folder]) { 
    121                         if (selectedMessages[folder][message]) { 
    122                                 byte_size += parseInt(onceOpenedMessages[folder][message].size); 
    123                                 total_messages++; 
    124                         } 
    125                 } 
    126         } 
    127         $("#selected_messages_number").html(total_messages).next().html(bytes2Size(byte_size)); 
    128         return total_messages; 
    129 } 
    1302 
    1313var msgAttacherGrid = $("#message_attacher_grid"), msgsTotal = $("#selected_messages_number"); 
Note: See TracChangeset for help on using the changeset viewer.