Ignore:
Timestamp:
06/18/12 02:47:37 (12 years ago)
Author:
natan
Message:

Ticket #2845 - Atualizacao da API na busca de mensagens - Migracao das funcionalidades do ImapServiceAdapter?

File:
1 edited

Legend:

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

    r6486 r6529  
     1keys = function( object ){ 
     2 
     3  var array = []; 
     4 
     5  for( var key in object ) 
     6       array[ array.length ] = key; 
     7 
     8  return( array ); 
     9 
     10} 
     11 
    112/* Verifica se a regra fora de escritório está ativa */ 
    213function outOfficeVerify() { 
     
    112123} 
    113124 
    114 bytes2Size = function(bytes) { 
    115         var sizes = ['B', 'KB', 'MB', 'GB', 'TB']; 
    116         if (bytes === 0) return 'n/a'; 
    117         var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); 
    118         var size = (i<2) ? Math.round((bytes / Math.pow(1024, i))) : Math.round((bytes / Math.pow(1024, i)) * 100)/100; 
    119         return  size + ' ' + sizes[i]; 
    120 }; 
    121  
    122 flags2Class = function(cellvalue) { 
    123         var flags_enum = cellvalue.split(','); 
    124         var classes = ''; 
    125         for (var i=0; i<flags_enum.length; i++){ 
    126                 classes += '<span class="icon-'+flags_enum[i].toLowerCase()+'"> </span>'; 
    127         } 
    128         return classes; 
    129 }; 
    130  
    131 date2Time = function (timestamp) { 
    132         var date = new Date(); 
    133         if( typeof timestamp === "string" ) 
    134             timestamp = parseInt( timestamp, 10 ); 
    135         if ((date.getTime() - timestamp) < (24*60*60*1000)) { 
    136                 return '<span class="timable" title="'+timestamp+'"> </span>'; 
    137         } else { 
    138                 date = new Date(timestamp); 
    139                 var b = date.toISOString().split("T")[0].split("-"); 
    140                 var c = b[2] + "/" + b[1] + "/" + b[0]; 
    141                 return '<span class="datable">' + c + '</span>'; 
    142         } 
    143 }; 
    144  
    145 keys = function( object ){ 
    146  
    147   var array = []; 
    148  
    149   for( var key in object ) 
    150        array[ array.length ] = key; 
    151  
    152   return( array ); 
    153  
    154 } 
     125// bytes2Size = function(bytes) { 
     126//      var sizes = ['B', 'KB', 'MB', 'GB', 'TB']; 
     127//      if (bytes === 0) return 'n/a'; 
     128//      var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); 
     129//      var size = (i<2) ? Math.round((bytes / Math.pow(1024, i))) : Math.round((bytes / Math.pow(1024, i)) * 100)/100; 
     130//      return  size + ' ' + sizes[i]; 
     131// }; 
     132 
     133// flags2Class2 = function(cellvalue) { 
     134//      var flags_enum = cellvalue.split(','); 
     135//      var classes = ''; 
     136//      for (var i=0; i<flags_enum.length; i++){ 
     137//              classes += '<span class="icon-'+flags_enum[i].toLowerCase()+'"> </span>'; 
     138//      } 
     139//      return classes; 
     140// }; 
     141 
     142// date2Time = function (timestamp) { 
     143//      var date = new Date(); 
     144//      if( typeof timestamp === "string" ) 
     145//          timestamp = parseInt( timestamp, 10 ); 
     146//      if ((date.getTime() - timestamp) < (24*60*60*1000)) { 
     147//              return '<span class="timable" title="'+timestamp+'"> </span>'; 
     148//      } else { 
     149//              date = new Date(timestamp); 
     150//              var b = date.toISOString().split("T")[0].split("-"); 
     151//              var c = b[2] + "/" + b[1] + "/" + b[0]; 
     152//              return '<span class="datable">' + c + '</span>'; 
     153//      } 
     154// }; 
    155155 
    156156/* Mostra os detalhes do filtro para edição */ 
     
    348348} 
    349349 
    350  
    351 DataLayer.codec( 'message', 'jqGrid', { 
    352  
    353       encoder: function( data ){ 
    354  
    355           return( data ); 
    356  
    357       } 
    358 }); 
    359  
    360350/* Gerencia o grid das mensagens da caixa de entrada */ 
    361351function showGridMessages(thiss) { 
     
    407397        var total = data.length ? Math.ceil( data.length / numRows ) : 0; 
    408398 
    409         delete DataLayer.criterias['message:jqGrid'];    
    410         DataLayer.register( 'criterias', 'message:jqGrid', function( crit ){ 
    411  
    412                     if( crit.page > total ) 
    413                         crit.page = total; 
    414  
    415                     var start = crit.rows * ( crit.page - 1 ); 
    416  
    417                     var msgNumber = []; 
    418  
    419                     for( var i = start; i < start + crit.rows && !!data[i]; i++ ) 
    420                         msgNumber.push( data[i] ); 
    421  
    422                     if( !msgNumber.length ) 
    423                         return( false ); 
    424  
    425                     return { filter: [ "msgNumber", "IN", msgNumber ], criteria: { properties: { context: { folder: 'INBOX' }, order: crit.sidx } } }; 
    426         }); 
     399        delete DataLayer.criterias['message:inboxSearch']; 
     400        delete DataLayer.encoders['message:inboxSearch']; 
     401 
     402        DataLayer.codec( 'message', 'inboxSearch', { 
     403 
     404                  encoder: function( dt, crit ){ 
     405 
     406                      return({"rows": dt,  
     407                              "records": data.length, 
     408                              "page": crit.criteria.properties.context.page,  
     409                              "total": total}); 
     410 
     411                  }, 
     412                  criteria: function( crit ){ 
     413 
     414                      if( crit.page > total ) 
     415                          crit.page = total; 
     416 
     417                      var start = crit.rows * ( crit.page - 1 ); 
     418                       
     419                      start / crit.rows + 1 
     420 
     421                      var msgNumber = []; 
     422 
     423                      for( var i = start; i < start + crit.rows && !!data[i]; i++ ) 
     424                          msgNumber.push( data[i] ); 
     425 
     426                      if( !msgNumber.length ) 
     427                          return( false ); 
     428 
     429                      return { filter: [ "msgNumber", "IN", msgNumber ], criteria: { properties: { context: { folder: 'INBOX', page: crit.page }, order: crit.sidx } } }; 
     430 
     431                  } 
     432          }); 
    427433 
    428434        allMessages = data; 
    429435 
    430436        if (typeof grid !== "undefined") { 
    431                 grid.jqGrid( 'setGridParam', { url: 'message:jqGrid', postData: data } ).trigger( 'reloadGrid' ); 
     437                grid/*.jqGrid( 'setGridParam', { url: 'message:inboxSearch', postData: data } )*/.trigger( 'reloadGrid' ); 
    432438                //return; 
    433439        } 
     
    435441        .html('<table class="hidden fields-search-messages-grid" id="fields-search-messages-grid"><tr><td/></tr></table><div class="hidden fields-search-messages-grid-pager" id="fields-search-messages-grid-pager"></div>') 
    436442        .children(".fields-search-messages-grid, .fields-search-messages-grid-pager").removeClass('hidden').filter(".fields-search-messages-grid").trigger( 'reloadGrid' ).jqGrid({ 
    437                 url: 'message:jqGrid', 
     443                url: 'message:inboxSearch', 
    438444                datatype: "json", 
    439445                mtype: 'GET', 
Note: See TracChangeset for help on using the changeset viewer.