Ignore:
Timestamp:
02/28/13 10:13:44 (11 years ago)
Author:
gustavo
Message:

Ticket #3349 - Finalizada implementacao da melhoria com a busca no anexo de mensagens

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.1-expresso1/prototype/modules/attach_message/attach_message.js

    r7912 r7920  
    458458                        ], 
    459459                        jsonReader : { 
    460                                   root:"rows", 
     460                                  root: function(obj){ 
     461                                        obj['data'] = {}; 
     462                            obj.data = {rows : obj.rows}; 
     463                                        if(obj.rows){ 
     464                                                if(!obj.rows[0].flag){ 
     465                                                        var msgs = []; 
     466                                                        $.each(obj.rows, function(i, msg){ 
     467                                                                flag = msg['flags']; 
     468                                        id = msg['msg_number']; 
     469                                        var message = {}; 
     470                                      
     471                                        message['msg_number'] = id; 
     472                                        message['flags'] = flag; 
     473                                        message['to'] = { 
     474                                                name: msg['toaddress2'], 
     475                                                email: msg['toaddress2'] 
     476                                        }; 
     477                 
     478                                        if(msg['from'] != undefined &&  msg['header']['from'] != undefined){ 
     479                                                message['from'] = { 
     480                                                        'email' : msg['from']['email'], 
     481                                                        'name' : msg['header']['from']['name'] 
     482                                                } 
     483                                            }else{ 
     484                                                message['from'] = { 
     485                                                        'email' : '', 
     486                                                        'name' : 'Rascunho' 
     487                                                } 
     488                                            } 
     489                                        //message['from']['name'] = msg['from']['name']; 
     490                                        message['subject'] = msg['subject'] ? msg['subject'] : "(sem assunto)"; 
     491                                        message['timestamp'] = parseInt(msg['timestamp']); 
     492                                        message['size'] = msg['size']; 
     493                                        message['id'] = id; 
     494                                        msgs.push( message ); 
     495                                        }); 
     496                                                        obj['data'] = {}; 
     497                                        obj.data = {rows : msgs}; 
     498                                    } 
     499                        } 
     500                                        return obj.data.rows; 
     501                                  }, 
    461502                                  page: "page", 
    462503                                  total: "total", 
     
    474515                        multiselect: true, 
    475516                        autowidth: true, 
    476                         loadComplete: function(data) { 
     517                        loadComplete: function(data) {                   
    477518                                lastLoadedMessages = data.rows; 
    478519                                 
     
    797838                         
    798839            var data = DataLayer.get( 'message', { filter: filters, criteria: { properties: { context: { folder: folder } } } }, true ); 
    799             var tmp = [DataLayer.get( 'message', {filter: [ "msgNumber", "IN", data ], criteria: { properties: { context: { folder: folder } } } })]; 
    800  
    801             msgs = []; 
    802  
    803             if(tmp[0].rows){ 
    804                 $.each(tmp[0].rows, function(i, msg){                    
    805                         flag = msg['flags']; 
    806                         id = msg['msg_number']; 
    807                         var message = {}; 
    808                        
    809                         message['msg_number'] = id; 
    810                         message['flags'] = flag; 
    811                         message['to'] = { 
    812                                 name: msg['toaddress2'], 
    813                                 email: msg['toaddress2'] 
    814                         }; 
    815  
    816                         if(msg['from'] != undefined &&  msg['header']['from'] != undefined){ 
    817                                 message['from'] = { 
    818                                         'email' : msg['from']['email'], 
    819                                         'name' : msg['header']['from']['name'] 
    820                                 } 
    821                             }else{ 
    822                                 message['from'] = { 
    823                                         'email' : '', 
    824                                         'name' : 'Rascunho' 
    825                                 } 
    826                             } 
    827                         //message['from']['name'] = msg['from']['name']; 
    828                         message['subject'] = msg['subject'] ? msg['subject'] : "(sem assunto)"; 
    829                         message['timestamp'] = parseInt(msg['timestamp']); 
    830                         message['size'] = msg['size']; 
    831                         message['id'] = id; 
    832                         msgs.push( message ); 
    833                         }); 
     840 
     841            if(DataLayer.criterias['message:jqGridSearch']){ 
     842                                delete DataLayer.criterias['message:jqGridSearch'];      
     843                        } 
     844 
     845                DataLayer.register( 'criterias', 'message:jqGridSearch', function( crit ){ 
     846                            crit.properties = { context: { folder: folder } }; 
     847                            console.log(crit); 
     848                            return { filter: [ "msgNumber", "IN", data ], criteria: crit }; 
     849                        }); 
     850                         
     851            if(typeof(data) == 'object'){ 
     852                                grid.jqGrid("clearGridData", true); 
     853                                grid.jqGrid('setGridParam',{datatype: "json", url: 'message:jqGridSearch'}).trigger("reloadGrid"); 
     854 
    834855            }else{ 
    835856                grid.jqGrid("clearGridData", true); 
    836857            } 
    837             return msgs; 
    838858        } 
    839859 
     
    852872            } else { 
    853873                // Pesquisa pelo Imap... 
    854                 msgs = search_imap_messages(param, folder); 
     874                return search_imap_messages(param, folder); 
    855875            } 
    856876 
    857877            // Monta as mensagens na grid... 
    858878            grid.jqGrid("clearGridData", true); 
    859             grid.jqGrid('setGridParam',{datatype: "local",data: msgs}) 
     879            grid.jqGrid('setGridParam',{datatype: "local",data: msgs,mtype: 'POST'}) 
    860880            .trigger("reloadGrid"); 
    861881            //.jqGrid('setCaption', '<span class="'+child.attr('class')+'">'+child.attr('title')+'</span>'); 
     
    872892                        if($.ui.keyCode.ENTER == e.keyCode){ 
    873893                                search_messages($(this).val()); 
     894                                $(this).parents(".attach-message-search-div:first").find(".attach-message-search-input").val(""); 
    874895                        } 
    875896                }); 
     
    889910                $("#attach-message-search").click(function(){ 
    890911                        search_messages($(this).parents(".attach-message-search-div:first").find(".attach-message-search-input").val()); 
     912                        $(this).parents(".attach-message-search-div:first").find(".attach-message-search-input").val(""); 
    891913                }); 
    892914        } 
Note: See TracChangeset for help on using the changeset viewer.