Changeset 6452 for trunk


Ignore:
Timestamp:
06/08/12 12:28:27 (12 years ago)
Author:
natan
Message:

Ticket #2845 - Atualizacao da API na busca de mensagens - Compatibilizacao de timestamps

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/filters/filters.js

    r6443 r6452  
    11/* Verifica se a regra fora de escritório está ativa */ 
    2 function outOfficeVerify() {     
     2function outOfficeVerify() { 
    33        DataLayer.remove('filter', false); 
    44        var filters = DataLayer.get("filter"); 
     
    99                        outoffice = true; 
    1010                if(filters[index].id == "vacation" && filters[index].enabled == "true"){ 
    11                         write_msg(get_lang("Attention, you are in out of office mode."), true);  
     11                        write_msg(get_lang("Attention, you are in out of office mode."), true); 
    1212                        outoffice_active = true; 
    1313                        break; 
     
    5252                                        error = true; 
    5353                                        return; 
    54                                 }        
     54                                } 
    5555                        }); 
    5656                        if(error){ 
     
    6262        var criteria_list = list_container.find('[name="criteriaValue[]"]'); 
    6363        var er_num = /^[0-9]+$/; 
    64          
     64 
    6565        if($(".sizeRule").val() != "" && er_num.test($(".sizeRule").val()) == false) { 
    6666                $.Zebra_Dialog(get_lang("Size rule must be a number"),{ 
     
    131131date2Time = function (timestamp) { 
    132132        var date = new Date(); 
     133        if( typeof timestamp === "string" ) 
     134            timestamp = parseInt( timestamp, 10 ); 
    133135        if ((date.getTime() - timestamp) < (24*60*60*1000)) { 
    134136                return '<span class="timable" title="'+timestamp+'"> </span>'; 
     
    142144 
    143145keys = function( object ){ 
    144    
     146 
    145147  var array = []; 
    146    
     148 
    147149  for( var key in object ) 
    148150       array[ array.length ] = key; 
    149    
     151 
    150152  return( array ); 
    151153 
     
    154156/* Mostra os detalhes do filtro para edição */ 
    155157showDetails = function( filter ){ 
    156    
     158 
    157159    form.get(0).reset(); 
    158160 
     
    174176                if(filter.actions[i].type == "redirect") 
    175177                        actions.siblings('[name="addressRedirect"]').val(filter.actions[i].parameter); 
    176                 if(filter.actions[i].type == "reject")   
     178                if(filter.actions[i].type == "reject") 
    177179                        actions.siblings('[name="messageReject"]').val(filter.actions[i].parameter); 
    178180                if(filter.actions[i].type == "fileinto" || filter.actions[i].type == "setflag") 
    179181                        actions.parent().find('[value="'+filter.actions[i].parameter+'"]').attr("selected", "selected"); 
    180182    } 
    181         isExact.filter('[value="'+(filter.isExact != "false"? "and" : "or")+'"]').attr("checked", "True");       
     183        isExact.filter('[value="'+(filter.isExact != "false"? "and" : "or")+'"]').attr("checked", "True"); 
    182184} 
    183185 
    184186 
    185187DataLayer.codec( "filter", "detail", { 
    186    
     188 
    187189  decoder: function( form ){ 
    188190      if( form.vacation ) 
     
    198200 
    199201        var apply_messages_ = keys(selectedMessages); 
    200          
     202 
    201203        action = ''; 
    202          
     204 
    203205    return { 
    204206                name: form.name ? form.name.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') : nameObj.val().replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'), 
    205207                isExact: ( form.isExact === "and" ), 
    206                 criteria: $.map( form.criteriaOperator || [], function( criteriaOperator, i ){   
     208                criteria: $.map( form.criteriaOperator || [], function( criteriaOperator, i ){ 
    207209                        return (!form.criteriaValue[i]) ? null: 
    208                         {  
     210                        { 
    209211                                        value:  form.criteriaValue[i].replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'), 
    210212                                        operator: criteriaOperator, 
     
    214216                actions: $.map( form.actionType || [], function( type, i ){ 
    215217                        var the_parameter = form.actionParameter[i]; 
    216                          
     218 
    217219                        !the_parameter ? the_parameter = form.actionParameter[i+1] : ""; 
    218                         if (type == 'fileinto') {  
     220                        if (type == 'fileinto') { 
    219221                                the_parameter = form.valueFileInto; 
    220222                        } 
     
    222224                                the_parameter = form.messageReject; 
    223225                        } 
    224                         if (type == 'fileintoInbox') {  
     226                        if (type == 'fileintoInbox') { 
    225227                                if(!$('[value="fileintoInbox"]').parent().hasClass("hidden")){ 
    226228                                        type = 'fileinto'; 
     
    237239                                the_parameter = form.addressRedirect; 
    238240                        } 
    239                         if (type == 'setflag') {  
     241                        if (type == 'setflag') { 
    240242                                the_parameter = form.valueSetFlag; 
    241243                                action = form.valueSetFlag; 
     
    246248                }), 
    247249                enabled : true, 
    248                 applyMessages: apply_messages_  
     250                applyMessages: apply_messages_ 
    249251    }; 
    250252  }, 
    251    
     253 
    252254  encoder: function( filters ){ 
    253255        var rules = []; 
     
    259261 
    260262  } 
    261    
     263 
    262264}); 
    263265 
    264266/* Codec do datalayer */ 
    265267DataLayer.codec( "folder", "select", { 
    266    
     268 
    267269  decoder:function(){ 
    268      
     270 
    269271  }, 
    270272  encoder:function( data ){ 
    271   
     273 
    272274      var tree1 = [], tree2 = [], tree3 = []; 
    273275 
     
    294296 
    295297      } 
    296        
     298 
    297299      return {folders: [ tree1, tree2, tree3 ]}; 
    298300 
     
    310312 
    311313/* Bloqueio de usuários na tela de mensagem do ExpressoMail */ 
    312 function block_user_email(email) {  
     314function block_user_email(email) { 
    313315        delete selectedMessages; 
    314316        var idd = urlencode(email); 
     
    330332        } 
    331333        if(confirm(get_lang("Want to block the user") + " " + email + "?")){ 
    332                 DataLayer.put( 'filter', idd,  
    333                                         { name: email, isExact: false,  
     334                DataLayer.put( 'filter', idd, 
     335                                        { name: email, isExact: false, 
    334336                                                criteria:{ 0: {value: email, operator: "=", field: "from"} }, 
    335                                                 actions: { 0: {parameter: "INBOX" + cyrus_delimiter + "Spam", type: "fileinto"}},  
    336                                                 enabled: true,  
     337                                                actions: { 0: {parameter: "INBOX" + cyrus_delimiter + "Spam", type: "fileinto"}}, 
     338                                                enabled: true, 
    337339                                                id: email, 
    338                                                 block: true  
     340                                                block: true 
    339341                                        }); 
    340342                DataLayer.commit("filter", false, function(){ 
     
    342344                        list_filters(); 
    343345                }); 
    344                  
     346 
    345347        } 
    346348} 
     
    348350 
    349351DataLayer.codec( 'message', 'jqGrid', { 
    350   
     352 
    351353      encoder: function( data ){ 
    352354 
     
    378380        for (i in criteria_) 
    379381                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]} );  
     382                    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]} ); 
    381383 
    382384        showGridButton = thiss.parent(); 
    383385 
    384         showGridButton.siblings("#filtergrid-container").block({   
    385                                                         message: '<div id="loading-content"><div class="image"></div></div>',   
    386                                                         css: {   
    387                                                                 backgroundImage: 'url('+BASE_PATH+'modules/attach_message/images/loading.gif)',   
    388                                                                 backgroundRepeat: 'no-repeat',  
    389                                                                 backgroundPosition: 'center',  
    390                                                                 backgroundColor: 'transparent',  
    391                                                                 width: '32px',  
    392                                                                 height: '32px',  
    393                                                                 border:'none'   
    394                                                         },  
    395                                                         overlayCSS: {   
    396                                                                 backgroundColor: '#CCC',   
    397                                                                 opacity:         0.5  
    398                                                         }   
     386        showGridButton.siblings("#filtergrid-container").block({ 
     387                                                        message: '<div id="loading-content"><div class="image"></div></div>', 
     388                                                        css: { 
     389                                                                backgroundImage: 'url('+BASE_PATH+'modules/attach_message/images/loading.gif)', 
     390                                                                backgroundRepeat: 'no-repeat', 
     391                                                                backgroundPosition: 'center', 
     392                                                                backgroundColor: 'transparent', 
     393                                                                width: '32px', 
     394                                                                height: '32px', 
     395                                                                border:'none' 
     396                                                        }, 
     397                                                        overlayCSS: { 
     398                                                                backgroundColor: '#CCC', 
     399                                                                opacity:         0.5 
     400                                                        } 
    399401                                                }); 
    400402 
    401403        var data = DataLayer.get( 'message', { filter: criterias_, criteria: { properties: { context: { folder: 'INBOX' } } } }, true ); 
    402          
     404 
    403405        DataLayer.register( 'criterias', 'message:jqGrid', function( crit ){ 
    404406 
    405407                    crit.properties = { context: { folder: 'INBOX' } }; 
    406                      
     408 
    407409                    return { filter: [ "msgNumber", "IN", data ], criteria: crit }; 
    408410        }); 
    409411 
    410412        allMessages = data; 
    411          
    412         if (typeof grid !== "undefined") {  
    413                 grid.jqGrid( 'setGridParam', { url: 'message:jqGrid', postData: data } ).trigger( 'reloadGrid' );  
     413 
     414        if (typeof grid !== "undefined") { 
     415                grid.jqGrid( 'setGridParam', { url: 'message:jqGrid', postData: data } ).trigger( 'reloadGrid' ); 
    414416                //return; 
    415417        } 
     
    452454          //                            jQuery('.timable').each(function (i) { 
    453455          //                                    jQuery(this).countdown({ 
    454           //                                            since: new Date(parseInt(this.title)),  
     456          //                                            since: new Date(parseInt(this.title)), 
    455457          //                                            significant: 1, 
    456           //                                            layout: 'h&aacute; {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}',  
     458          //                                            layout: 'h&aacute; {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}', 
    457459          //                                            description: ' atr&aacute;s' 
    458460          //                                    }); 
     
    460462                }, 
    461463                onSelectRow: function (id, selected) { 
    462                         if( selected )  
     464                        if( selected ) 
    463465                        { 
    464466                                selectedMessages[ id ] = true; 
     
    469471                        } 
    470472                }, 
    471                 onSelectAll: function (id, selected) {                                   
     473                onSelectAll: function (id, selected) { 
    472474                        for (i in id) { 
    473475                                if(selected) 
    474476                                        selectedMessages[id[i]] = true; 
    475477                                else 
    476                                         delete selectedMessages[id[i]];  
     478                                        delete selectedMessages[id[i]]; 
    477479                        } 
    478480                }, 
     
    500502                    event.stopPropagation(); 
    501503                        if(list_container.find(".cancel").length) 
    502                                 list_container.find(".cancel").trigger('click');         
     504                                list_container.find(".cancel").trigger('click'); 
    503505                        $(".dialog-head-buttonpane").hide(); 
    504506            }, 
     
    523525        $(".dialog-head-buttonpane").css("padding", "5px"). 
    524526        find(".header-buttonpane").html("<a href='#' class='button add' title='"+get_lang("Add new rule")+"'>"+get_lang("New rule")+"</a>"+(!outoffice ? "<a href='#' class='button add vacation' title='"+get_lang("Add rule out of office")+"'>"+get_lang("Out of office")+"</a>" : "")).find(".button").button(); 
    525          
     527 
    526528        $(".ui-dialog-buttonpane.ui-widget-content").css("background-color", "#E0EEEE"); 
    527529        var list = DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', DataLayer.get("filter:detail", true)); 
    528530        list_container.html(list).find(".button").button(); 
    529          
     531 
    530532        list_container.find(".rule-list").selectable({ 
    531533                selecting: function(event, ui) { 
     
    536538                } 
    537539        }); 
    538          
     540 
    539541        list_container.find( ".menu-control .button" ).filter(".update").button({ 
    540542                icons: { 
     
    549551                                filters = filters[i]; 
    550552                                break; 
    551                         }        
     553                        } 
    552554                } 
    553555                DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true), delimiter: cyrus_delimiter},function(html){ 
     
    578580                                        else 
    579581                                                return; 
    580                                         DataLayer.commit( 'filter', false,function(){                                            
    581                                                 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') {  
     582                                        DataLayer.commit( 'filter', false,function(){ 
     583                                                if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 
    582584                                                        for (var index in selectedMessages) { 
    583585                                                                set_message_flag(index, action, false); 
     
    586588                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
    587589                                        }); 
    588                                 }).end().filter('.button.search').click(function() {                             
     590                                }).end().filter('.button.search').click(function() { 
    589591                                        /* Valida se o usuário preencheu as informações */ 
    590592                                        if(valid_save()) 
     
    614616                text: false 
    615617        }).click(function(){ 
    616                 var id = $(this).parents("li.rule").find('.id').val();           
     618                var id = $(this).parents("li.rule").find('.id').val(); 
    617619                DataLayer.put( 'filter', id, { enabled: false  }); 
    618620                DataLayer.commit("filter", false,function(){ 
     
    633635                }); 
    634636        }).end() 
    635          
     637 
    636638        .filter(".close").button({ 
    637639                icons: { 
     
    661663                }); 
    662664        }).end().removeClass("ui-button-icon-only"); 
    663          
     665 
    664666        $(".button.allenable").click(function(){ 
    665667                container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
     
    670672                }); 
    671673        }); 
    672          
     674 
    673675        $(".button.alldisable").click(function(){ 
    674676                container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
     
    679681                }); 
    680682        }); 
    681          
     683 
    682684        $(".button.alldelete").click(function(){ 
    683685                $.Zebra_Dialog(get_lang("Are you sure to delete the filters?"),{ 
     
    690692                                        DataLayer.remove('filter', false); 
    691693                                        DataLayer.get('filter'); 
    692                                         container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){                                          
     694                                        container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
    693695                                                DataLayer.remove( 'filter', urlencode(o.innerHTML) ); 
    694696                                        }); 
     
    702704                }); 
    703705        }); 
    704          
     706 
    705707        var aa = 0; 
    706          
     708 
    707709        list_container.parent().find(".button.add:first").click(function(){ 
    708710                list_container.parent().find(".dialog-head-buttonpane").addClass("hidden"); 
     
    726728                                        return; 
    727729                                DataLayer.commit( 'filter',false,function(){ 
    728                                         if($('#gbox_fields-search-messages-grid').length > 0 && action != '') {  
     730                                        if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 
    729731                                                for (var index in selectedMessages) { 
    730732                                                        set_message_flag(index, action, false); 
     
    733735                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
    734736                                }); 
    735                         }).end().filter('.button.search').click(function() {                             
     737                        }).end().filter('.button.search').click(function() { 
    736738                                if(valid_save()) 
    737739                                        showGridMessages($(this)); 
     
    742744        }); 
    743745        list_container.parent().find(".button.add.vacation").click(function(){ 
    744          
     746 
    745747                list_container.parent().find(".dialog-head-buttonpane").addClass("hidden"); 
    746748                DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true), delimiter: cyrus_delimiter},function(html){ 
     
    750752                        list_container.find(".button").button().filter(".back").click(function(){ 
    751753                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
    752                         }).end().filter(".submit").click(function(){                     
     754                        }).end().filter(".submit").click(function(){ 
    753755                                if(list_container.find(".vacation-details-container .filter-textarea").val().length <= 0){ 
    754756                                                $.Zebra_Dialog(get_lang('Write a message')); 
     
    761763                                } 
    762764                        }); 
    763                 });      
     765                }); 
    764766        }); 
    765767} 
Note: See TracChangeset for help on using the changeset viewer.