Changeset 6529 for sandbox/expressoServiceImap/prototype
- Timestamp:
- 06/18/12 02:47:37 (12 years ago)
- Location:
- sandbox/expressoServiceImap/prototype
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/expressoServiceImap/prototype/modules/attach_message/attach_message.js
r6509 r6529 43 43 44 44 current_folder = targetId.replace(dashes, '.'); 45 current_count = DataLayer.get( 'message', { criteria: { count: true } }, true ); 45 46 46 47 $("#message_attacher_grid").trigger("reloadGrid") … … 70 71 {name:'from.name', index:'msg_number', width:70, sortable:false, formatter:NormaliseFrom}, 71 72 {name:'subject', index:'subject', width:245, sortable:false, formatter:NormaliseSubject}, 72 {name:'timestamp', index:'timestamp', width:65, sortable:false, formatter:date2Time, align:"center"},73 {name:'size', index:'size', width:55, sortable:false, formatter:bytes2Size, align:"right"}73 {name:'timestamp', index:'timestamp', width:65, sortable:false, formatter:date2Time, align:"center"}, 74 {name:'size', index:'size', width:55, sortable:false, formatter:bytes2Size, align:"right"} 74 75 ], 75 76 jsonReader : { -
sandbox/expressoServiceImap/prototype/modules/filters/filters.js
r6486 r6529 1 keys = 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 1 12 /* Verifica se a regra fora de escritório está ativa */ 2 13 function outOfficeVerify() { … … 112 123 } 113 124 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 // }; 155 155 156 156 /* Mostra os detalhes do filtro para edição */ … … 348 348 } 349 349 350 351 DataLayer.codec( 'message', 'jqGrid', {352 353 encoder: function( data ){354 355 return( data );356 357 }358 });359 360 350 /* Gerencia o grid das mensagens da caixa de entrada */ 361 351 function showGridMessages(thiss) { … … 407 397 var total = data.length ? Math.ceil( data.length / numRows ) : 0; 408 398 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 }); 427 433 428 434 allMessages = data; 429 435 430 436 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' ); 432 438 //return; 433 439 } … … 435 441 .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>') 436 442 .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', 438 444 datatype: "json", 439 445 mtype: 'GET', -
sandbox/expressoServiceImap/prototype/services/ImapServiceAdapter.php
r6486 r6529 88 88 case 'message': 89 89 { 90 //begin: for grid91 // $page = isset($criteria['page']) ? $criteria['page'] : 1 ; //{1} get the requested page92 // $limit = isset($criteria['rows']) ? $criteria['rows'] : 10 ; //{10} get how many rows we want to have into the grid93 // $sidx = isset($criteria['sidx']) ? $criteria['sidx'] : 0; //{id} get index row - i.e. user click to sort94 // $sord = isset($criteria['sord']) ? $criteria['sord'] : ''; //{desc} get the direction95 96 90 $filter = isset($criteria['filter']) ? $criteria['filter'] : ''; 97 98 // if( !$sidx ) $sidx = 1;99 91 100 92 $folder_name = isset($URI['folder']) ? $URI['folder'] : str_replace( '.', $this->imap_delimiter, isset($context['folder']) ? $context['folder'] : 'INBOX'); 101 93 102 $count = imap_num_msg( $this->open_mbox( $folder_name ) ); 103 // 104 // $total_pages = $count > 0 ? ceil( $count/$limit ) : 0; 105 // 106 // if( $page > $total_pages ) 107 // $page = $total_pages; 108 // 109 // $start = $limit * $page - $limit; 110 111 // do not put $limit*($page - 1) 112 //end: for grid 113 114 94 if( isset($criteria['count']) ) 95 { 96 return imap_num_msg( $this->open_mbox( $folder_name ) ); 97 } 115 98 /** 116 99 * Trata o caso específico de retorno do atributo messageId … … 174 157 } 175 158 176 // $msgNumber = array();177 //178 // for( $i = $start; $i < $start + $limit && isset( $filter[2][$i] ); $i++ )179 // $msgNumber[] = $filter[2][$i];180 //181 // if( empty( $msgNumber ) )182 // return( false );183 184 159 $result = $this->get_info_msgs( array( 'folder' => $folder_name, 185 160 'msgs_number' => implode( ',', $filter[2] ) ) ); … … 204 179 //return var_export($result); 205 180 206 $response = array( "page" => $count > 0 ? ceil( $criteria['offset'] / $criteria['limit'] ) + 1 : 0, 207 "total" => $count > 0 ? ceil( $count/$criteria['limit'] ) : 0, 208 "records" => $count ); 181 $response = array(); 209 182 210 183 for ($i=0; $i<count($result); $i++) … … 222 195 if (array_key_exists($i, $result)) 223 196 { 224 $response[ "rows"][$i] = $result[$i];225 $response[ "rows"][$i]['timestamp'] = $result[$i]['udate'] * 1000;226 $response[ "rows"][$i]['flags'] = implode(',', $flags_enum);227 $response[ "rows"][$i]['size'] = $response["rows"][$i]['Size'];228 $response[ "rows"][$i]['folder'] = $folder_name;197 $response[$i] = $result[$i]; 198 $response[$i]['timestamp'] = $result[$i]['udate'] * 1000; 199 $response[$i]['flags'] = implode(',', $flags_enum); 200 $response[$i]['size'] = $response["rows"][$i]['Size']; 201 $response[$i]['folder'] = $folder_name; 229 202 //$response["rows"][$i]['udate'] = ( $result[$i]['udate'] + $this->functions->CalculateDateOffset() * 1000 ); 230 unset($response[ "rows"][$i]['Size']);203 unset($response[$i]['Size']); 231 204 } 232 205 }
Note: See TracChangeset
for help on using the changeset viewer.