Changeset 6443


Ignore:
Timestamp:
06/06/12 19:52:56 (8 years ago)
Author:
natan
Message:

Ticket #2845 - Atualizacao da API na busca de mensagens - Implementacao do lyfecycle na API atual

Location:
trunk/prototype
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/api/datalayer.js

    r6412 r6443  
     1 
     2(function($){$.parseQuery=function(options){var config={query:window.location.search||""},params={};if(typeof options==='string'){options={query:options};} 
     3$.extend(config,$.parseQuery,options);config.query=config.query.replace(/^\?/,'');$.each(config.query.split(config.separator),function(i,param){var pair=param.split('='),key=config.decode(pair.shift(),null).toString(),value=config.decode(pair.length?pair.join('='):null,key);if(config.array_keys(key)){params[key]=params[key]||[];params[key].push(value);}else{params[key]=value;}});return params;};$.parseQuery.decode=$.parseQuery.default_decode=function(string){return decodeURIComponent((string||"").replace('+',' '));};$.parseQuery.array_keys=function(){return false;};$.parseQuery.separator="&";}(jQuery)); 
     4 
    15internalUrl = /^([A-z0-9-_]+)(:[A-z0-9-_]+)?$/; 
    26internalUri = /^([a-zA-Z0-9-_]+)\(([a-zA-Z0-9-_]+)\):\/\/(.*)|([a-zA-Z0-9-_]+):\/\/(.*)$/; 
     
    5761 
    5862          jqXHR.abort(); 
     63           
     64          if( typeof options.data === "string" ) 
     65              options.data = $.parseQuery( options.data ); 
    5966 
    6067          switch( options.type.toUpperCase() ) 
     
    13921399          properties: criteria.properties || '' 
    13931400 
    1394       } ); 
     1401      }, false, true ); 
    13951402    }, 
    13961403 
  • trunk/prototype/modules/filters/filters.js

    r6392 r6443  
    346346} 
    347347 
     348 
     349DataLayer.codec( 'message', 'jqGrid', { 
     350  
     351      encoder: function( data ){ 
     352 
     353          return( data ); 
     354 
     355      } 
     356}); 
     357 
    348358/* Gerencia o grid das mensagens da caixa de entrada */ 
    349359function showGridMessages(thiss) { 
     
    365375        var options = ["from", "to", "subject", "body", "size"]; 
    366376        var criterias_ = new Array(); 
    367         var j = 0;               
    368         for (i in criteria_) { 
    369                 if(criteria_[i] != "") { 
    370                         (j == 0) ? criterias_[j] = {"0": options[i], "1": criteria_value_[i], "2": criteria_[i]} : criterias_[j] = {"0": "OR", "1": options[i], "2": criteria_value_[i], "3": criteria_[i]};  
    371                         j++; 
    372                 }        
    373         } 
     377 
     378        for (i in criteria_) 
     379                if(criteria_[i] != "") 
     380                    criterias_.push( criterias_.length ?  {"0": "OR", "1": options[i], "2": criteria_value_[i], "3": criteria_[i]} : {"0": options[i], "1": criteria_value_[i], "2": criteria_[i]} );  
     381 
    374382        showGridButton = thiss.parent(); 
    375 //      .html('buscando mensagens...'); 
     383 
    376384        showGridButton.siblings("#filtergrid-container").block({   
    377385                                                        message: '<div id="loading-content"><div class="image"></div></div>',   
     
    389397                                                                opacity:         0.5  
    390398                                                        }   
    391                                                 });  
    392  
    393         $.ajax({   
    394                 url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( {"filter": criterias_} ), 
    395                 dataType: 'json', 
    396                 success: function(data){ 
    397                         allMessages = data; 
    398  
    399                         var parametro =  { "filter": ( data != false ? [ "msgNumber", "IN", data ] : criterias_ ) }; 
    400                          
    401                         if (typeof grid !== "undefined") {  
    402                                 grid.jqGrid( 'setGridParam', { url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( parametro ) } ).trigger( 'reloadGrid' );  
    403                                 //return; 
    404                         } 
    405                         grid = showGridButton.siblings("#filtergrid-container").removeClass('empty-container') 
    406                         .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>') 
    407                         .children(".fields-search-messages-grid, .fields-search-messages-grid-pager").removeClass('hidden').filter(".fields-search-messages-grid").trigger( 'reloadGrid' ).jqGrid({ 
    408                                 //url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( {"filter": [ "msgNumber", "IN", data ]} ), 
    409                                 url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( parametro ), 
    410                                 datatype: "json", 
    411                                 mtype: 'GET', 
    412                                 colNames:['#', 'De', 'Assunto', 'Data', 'Tamanho'], 
    413                                 colModel:[ 
    414                                         {name:'msg_number',index:'msg_number', width:45, hidden:true, sortable:false}, 
    415                                         {name:'from.email',index:'msg_number', width:130, sortable:false}, 
    416                                         {name:'subject',index:'subject', width:250, sortable:false}, 
    417                                         {name:'timestamp',index:'timestamp', width:65, align:"center", sortable:false, formatter:date2Time}, 
    418                                         {name:'size',index:'size', width:50, align:"right", sortable:false, formatter:bytes2Size} 
    419                                 ], 
    420                                 jsonReader : { 
    421                                         root:"rows", 
    422                                         page: "page", 
    423                                         total: "total", 
    424                                         records: "records", 
    425                                         repeatitems: false, 
    426                                         id: "0" 
    427                                 }, 
    428                                 rowNum:10, 
    429                                 //rowList:[10,25,50], 
    430                                 rowList:[10], 
    431                                 pager: '#fields-search-messages-grid-pager', 
    432                                 sortname: 'id', 
    433                                 viewrecords: true, 
    434                                 sortorder: "desc", 
    435                                 multiselect: true, 
    436                                 autowidth: true, 
    437                                 reloadAfterEdit: true, 
    438                                 reloadAfterSubmit: true, 
    439                                 height:200, 
    440                                 loadComplete: function(data) { 
    441                           //                            // aplica o contador 
    442                           //                            jQuery('.timable').each(function (i) { 
    443                           //                                    jQuery(this).countdown({ 
    444                           //                                            since: new Date(parseInt(this.title)),  
    445                           //                                            significant: 1, 
    446                           //                                            layout: 'h&aacute; {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}',  
    447                           //                                            description: ' atr&aacute;s' 
    448                           //                                    }); 
    449                           //                            }); 
    450                                 }, 
    451                                 onSelectRow: function (id, selected) { 
    452                                         if( selected )  
    453                                         { 
    454                                                 selectedMessages[ id ] = true; 
    455                                         } 
    456                                         else 
    457                                         { 
    458                                                 delete selectedMessages[ id ]; 
    459                                         } 
    460                                 }, 
    461                                 onSelectAll: function (id, selected) {                                   
    462                                         for (i in id) { 
    463                                                 if(selected) 
    464                                                         selectedMessages[id[i]] = true; 
    465                                                 else 
    466                                                         delete selectedMessages[id[i]];  
    467                                         } 
    468                                 }, 
    469                                 caption: 'Mensagens que atendem aos crit&eacute;rios' 
    470                         }); // end jqGrid 
    471                 } // end success 
    472         }); // end ajax 
     399                                                }); 
     400 
     401        var data = DataLayer.get( 'message', { filter: criterias_, criteria: { properties: { context: { folder: 'INBOX' } } } }, true ); 
     402         
     403        DataLayer.register( 'criterias', 'message:jqGrid', function( crit ){ 
     404 
     405                    crit.properties = { context: { folder: 'INBOX' } }; 
     406                     
     407                    return { filter: [ "msgNumber", "IN", data ], criteria: crit }; 
     408        }); 
     409 
     410        allMessages = data; 
     411         
     412        if (typeof grid !== "undefined") {  
     413                grid.jqGrid( 'setGridParam', { url: 'message:jqGrid', postData: data } ).trigger( 'reloadGrid' );  
     414                //return; 
     415        } 
     416        grid = showGridButton.siblings("#filtergrid-container").removeClass('empty-container') 
     417        .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>') 
     418        .children(".fields-search-messages-grid, .fields-search-messages-grid-pager").removeClass('hidden').filter(".fields-search-messages-grid").trigger( 'reloadGrid' ).jqGrid({ 
     419                url: 'message:jqGrid', 
     420                datatype: "json", 
     421                mtype: 'GET', 
     422                colNames:['#', 'De', 'Assunto', 'Data', 'Tamanho'], 
     423                colModel:[ 
     424                        {name:'msg_number',index:'msg_number', width:45, hidden:true, sortable:false}, 
     425                        {name:'from.email',index:'msg_number', width:130, sortable:false}, 
     426                        {name:'subject',index:'subject', width:250, sortable:false}, 
     427                        {name:'timestamp',index:'timestamp', width:65, align:"center", sortable:false, formatter:date2Time}, 
     428                        {name:'size',index:'size', width:50, align:"right", sortable:false, formatter:bytes2Size} 
     429                ], 
     430                jsonReader : { 
     431                        root:"rows", 
     432                        page: "page", 
     433                        total: "total", 
     434                        records: "records", 
     435                        repeatitems: false, 
     436                        id: "0" 
     437                }, 
     438                rowNum:10, 
     439                //rowList:[10,25,50], 
     440                rowList:[10], 
     441                pager: '#fields-search-messages-grid-pager', 
     442                sortname: 'id', 
     443                viewrecords: true, 
     444                sortorder: "desc", 
     445                multiselect: true, 
     446                autowidth: true, 
     447                reloadAfterEdit: true, 
     448                reloadAfterSubmit: true, 
     449                height:200, 
     450                loadComplete: function(data) { 
     451          //                            // aplica o contador 
     452          //                            jQuery('.timable').each(function (i) { 
     453          //                                    jQuery(this).countdown({ 
     454          //                                            since: new Date(parseInt(this.title)),  
     455          //                                            significant: 1, 
     456          //                                            layout: 'h&aacute; {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}',  
     457          //                                            description: ' atr&aacute;s' 
     458          //                                    }); 
     459          //                            }); 
     460                }, 
     461                onSelectRow: function (id, selected) { 
     462                        if( selected )  
     463                        { 
     464                                selectedMessages[ id ] = true; 
     465                        } 
     466                        else 
     467                        { 
     468                                delete selectedMessages[ id ]; 
     469                        } 
     470                }, 
     471                onSelectAll: function (id, selected) {                                   
     472                        for (i in id) { 
     473                                if(selected) 
     474                                        selectedMessages[id[i]] = true; 
     475                                else 
     476                                        delete selectedMessages[id[i]];  
     477                        } 
     478                }, 
     479                caption: 'Mensagens que atendem aos crit&eacute;rios' 
     480        }); // end jqGrid 
    473481} 
    474482 
  • trunk/prototype/request.php

    r6111 r6443  
    11<?php 
    22 
    3 // $properties = $_GET['properties']; 
    4 // $limit = $_GET['limit']; 
    5 // $offset = $_GET['offset']; 
    6 // $group = $_GET['group']; 
    7 // $order = $_GET['join']; 
    8 // $filter = $_GET['filter']; 
    9 // $URI = $_GET['URI']; 
     3// $properties = $_REQUEST['properties']; 
     4// $limit = $_REQUEST['limit']; 
     5// $offset = $_REQUEST['offset']; 
     6// $group = $_REQUEST['group']; 
     7// $order = $_REQUEST['join']; 
     8// $filter = $_REQUEST['filter']; 
     9// $URI = $_REQUEST['URI']; 
    1010 
    11 $concept = isset( $_GET['concept'] ) ? $_GET['concept'] : false; 
    12 $id = isset( $_GET['id'] ) ? $_GET['id'] : false; 
    13 $filter = isset( $_GET['filter'] ) ? $_GET['filter'] : false; 
    14 $criteria =  isset( $_GET['criteria'] ) ? $_GET['criteria'] : false; 
     11$concept = isset( $_REQUEST['concept'] ) ? $_REQUEST['concept'] : false; 
     12$id = isset( $_REQUEST['id'] ) ? $_REQUEST['id'] : false; 
     13$filter = isset( $_REQUEST['filter'] ) ? $_REQUEST['filter'] : false; 
     14$criteria =  isset( $_REQUEST['criteria'] ) ? $_REQUEST['criteria'] : false; 
    1515 
    1616$criteria = $filter ? $criteria ? 
Note: See TracChangeset for help on using the changeset viewer.