Ignore:
Timestamp:
06/14/12 09:02:04 (12 years ago)
Author:
marcieli
Message:

Ticket #2764 - Após o merge e correção de bugs, commit da melhoria no trunk

File:
1 edited

Legend:

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

    r6452 r6487  
    1 /* Verifica se a regra fora de escritório está ativa */ 
    2 function outOfficeVerify() { 
     1/*  
     2 * Retorna as regras por remetente e que o usuário deseja ser avisado  
     3 */ 
     4function getFromAlertRules() {  
     5        var filters = DataLayer.get("filter"); 
     6        fromRules = []; 
     7        var alertMessage; 
     8        var active; 
     9        for (var index in filters) { 
     10                alertMessage = filters[index]['alertMessage'];           
     11                active = filters[index]['enabled']; 
     12                for(var criterias in filters[index]['actions']) { 
     13                        if (filters[index]['actions'][criterias]['type'] == 'fileinto' && alertMessage == 'true' && active == 'true') 
     14                                fromRules[fromRules.length] = filters[index]['actions'][criterias]['parameter']; 
     15                } 
     16        } 
     17        return fromRules; 
     18} 
     19 
     20/*  
     21 * Verifica se a regra Fora de escritório está ativa 
     22 */ 
     23function outOfficeVerify() {     
    324        DataLayer.remove('filter', false); 
    425        var filters = DataLayer.get("filter"); 
     
    1839} 
    1940 
    20 /* Valida as informações do formulário de filtro de mensagens */ 
     41/*  
     42 * Valida os campos do formulário da tela de filtros para salvar. 
     43 */ 
    2144valid_save = function(){ 
    2245        var accord = list_container.find(".rule-details-container").accordion({autoHeight: false}); 
     
    103126                } 
    104127        } 
     128        var criteria_operator_list = list_container.find('[name="criteriaOperator[]"]'); 
     129        if(list_container.find('.alertMessage').is(':checked')){ 
     130                if($(criteria_list[0]).val() != "" && $('.select-folderlist').find('[type="radio"]').is(':checked') && $(criteria_operator_list[0]).find('option:selected').val() != "!*"){ 
     131                        var hasValue = false; 
     132                        $.each(criteria_list, function(index, value){ 
     133                                if(($(criteria_list[index]).val() != "" && index != 0 && index != 5) || ($(criteria_list[index]).is(':checked'))){ 
     134                                        if($('.fields-isexact').find(':checked').val() == 'or'){ 
     135                                                hasValue = true; 
     136                                        } 
     137                                } 
     138                        }); 
     139                        if(hasValue){ 
     140                                $.Zebra_Dialog(get_lang('<strong>Filtro com alerta</strong><br>Se houver mais que um critério para o filtro, a opção "Atender a todos os critérios" deve estar selecionada')); 
     141                                return false; 
     142                        }  
     143                }else{ 
     144                        $.Zebra_Dialog(get_lang('<strong>Filtro com alerta</strong><br> O filtro deve ter como critério definido "Remetente" e ação "Arquivar na pasta"')); 
     145                        return false; 
     146                } 
     147        } 
    105148        return true; 
    106149}; 
     
    154197} 
    155198 
    156 /* Mostra os detalhes do filtro para edição */ 
     199/*  
     200 * Preenche o formulário de filtros com as informações originais para edição 
     201 */ 
    157202showDetails = function( filter ){ 
    158203 
     
    182227    } 
    183228        isExact.filter('[value="'+(filter.isExact != "false"? "and" : "or")+'"]').attr("checked", "True"); 
     229         
     230        if (filter.alertMessage == 'true') $('.alertMessage').attr('checked', 'True'); 
    184231} 
    185232 
     
    188235 
    189236  decoder: function( form ){ 
    190       if( form.vacation ) 
     237          if( form.vacation ) 
    191238          return { 
    192239                criteria: [{ value: "vacation", operator: "", field: "vacation" }], 
     
    218265 
    219266                        !the_parameter ? the_parameter = form.actionParameter[i+1] : ""; 
    220                         if (type == 'fileinto') { 
     267 
     268                        if (type == 'alertMessage') {  
     269                                //if(!$('[value="alertMessage"]').parent().hasClass("hidden")){ 
     270                                        type = 'addflag'; 
     271                                        the_parameter = '$FilteredMessage'; 
     272                                //}else{ 
     273                                //      return; 
     274                                //} 
     275                        }  
     276                        if (type == 'fileinto') {  
    221277                                the_parameter = form.valueFileInto; 
    222278                        } 
     
    248304                }), 
    249305                enabled : true, 
    250                 applyMessages: apply_messages_ 
     306                alertMessage: $('.alertMessage').is(':checked'), 
     307                //applyMessages: allMessages? !$.isEmptyObject( selectedMessages ) ? 
     308                //keys( selectedMessages ) : allMessages : "" 
     309                applyMessages: apply_messages_  
     310                //applyMessages: "" 
    251311    }; 
    252312  }, 
     
    303363}); 
    304364 
     365 
     366fromRules = getFromAlertRules(); 
     367 
    305368var BASE_PATH = '../prototype/'; 
    306369 
     
    311374var allMessages = false; 
    312375 
    313 /* Bloqueio de usuários na tela de mensagem do ExpressoMail */ 
     376/*  
     377 * Bloqueia usuário por email - utilizado na tela de mensagens do ExpressoMail 
     378 */ 
    314379function block_user_email(email) { 
    315380        delete selectedMessages; 
     
    325390                                        $.Zebra_Dialog(get_lang("Lock User") + " " + email + " " + get_lang("removed")); 
    326391                                        list_filters(); 
     392                                        getFromAlertRules(); 
    327393                                }); 
    328394                                return true; 
     
    343409                        $.Zebra_Dialog(get_lang("User") + " " + email + " " + get_lang("blocked")); 
    344410                        list_filters(); 
     411                        getFromAlertRules(); 
    345412                }); 
    346413 
     
    358425}); 
    359426 
    360 /* Gerencia o grid das mensagens da caixa de entrada */ 
     427/* Gerencia o grid das mensagens da caixa de entrada  
     428 * Mostra o grid de mensagens para aplicar a regra nas mensagens da caixa de entrada. 
     429 */ 
    361430function showGridMessages(thiss) { 
    362431        var criteria_list = list_container.find('[name="criteriaValue[]"]'); 
     
    484553 
    485554/* Gerencia a listagem de filtros do usuário */ 
     555/*  
     556 * Lista os filtros para o usuário 
     557 */ 
    486558function list_filters(html){ 
    487559        outOfficeVerify(); 
     
    495567        } 
    496568        list_container = $(".expresso-window-filters").dialog({ 
     569                title: get_lang('Filters'), 
    497570            width:700, 
    498571            modal: true, 
     
    580653                                        else 
    581654                                                return; 
    582                                         DataLayer.commit( 'filter', false,function(){ 
     655                                        DataLayer.commit( 'filter', false,function(data){ 
     656                                                if(filters['alertMessage'] == "true"){ 
     657                                                        if(filters['alertMessage'] != $('.alertMessage').is(':checked').toString()){ 
     658                                                                /**RETIRA FLAG*/ 
     659                                                                removeMessagesFlag(filters['id']); 
     660                                                        } 
     661                                                } 
    583662                                                if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 
    584663                                                        for (var index in selectedMessages) { 
     
    587666                                                } 
    588667                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     668                                                getFromAlertRules(); 
    589669                                        }); 
    590670                                }).end().filter('.button.search').click(function() { 
     
    604684                                        DataLayer.commit( 'filter', false,function(){ 
    605685                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     686                                                getFromAlertRules(); 
    606687                                        }); 
    607688                                }); 
     
    618699                var id = $(this).parents("li.rule").find('.id').val(); 
    619700                DataLayer.put( 'filter', id, { enabled: false  }); 
     701                /**RETIRA FLAG*/ 
     702                removeMessagesFlag(id); 
    620703                DataLayer.commit("filter", false,function(){ 
    621704                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     705                        getFromAlertRules(); 
    622706                }); 
    623707        }).end() 
     
    633717                DataLayer.commit("filter", false,function(){ 
    634718                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     719                        getFromAlertRules(); 
    635720                }); 
    636721        }).end() 
     
    653738                                        DataLayer.remove('filter', false); 
    654739                                        DataLayer.get('filter'); 
     740                                        /**RETIRA FLAG*/ 
     741                                        removeMessagesFlag(filter_name); 
    655742                                        DataLayer.remove( 'filter', filter_name); 
     743 
    656744                                        DataLayer.commit("filter", false,function(){ 
    657745                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     746                                                getFromAlertRules(); 
    658747                                        }); 
    659748                                }else{ 
     
    670759                DataLayer.commit("filter", false, function(){ 
    671760                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     761                        getFromAlertRules(); 
    672762                }); 
    673763        }); 
     
    676766                container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
    677767                        DataLayer.put( 'filter', o.innerHTML, { enabled: false  }); 
     768                        /**RETIRA FLAG*/ 
     769                        removeMessagesFlag(o.innerHTML); 
    678770                }); 
    679771                DataLayer.commit("filter", false, function(){ 
    680772                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     773                        getFromAlertRules(); 
    681774                }); 
    682775        }); 
     
    693786                                        DataLayer.get('filter'); 
    694787                                        container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
     788                                                /**RETIRA FLAG*/ 
     789                                                removeMessagesFlag(urlencode(o.innerHTML)); 
    695790                                                DataLayer.remove( 'filter', urlencode(o.innerHTML) ); 
     791 
     792 
    696793                                        }); 
    697794                                        DataLayer.commit("filter", false,function(){ 
    698795                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     796                                                getFromAlertRules(); 
    699797                                        }); 
    700798                                }else{ 
     
    734832                                        } 
    735833                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     834                                        getFromAlertRules(); 
    736835                                }); 
    737836                        }).end().filter('.button.search').click(function() { 
     
    760859                                        DataLayer.commit( 'filter',false,function(){ 
    761860                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     861                                                getFromAlertRules(); 
    762862                                        }); 
    763863                                } 
     
    767867} 
    768868 
    769 /* Inicializa os filtros e chama o list_filters */ 
     869 
     870/* Inicializa os filtros e chama o list_filters  
     871 * Inicia a funcionalidade de filtros de mensagens 
     872 */ 
    770873function  init_filters(){ 
    771874        var html = DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {}); 
    772875        list_filters(html); 
    773876} 
     877 
     878/* 
     879 * Ao excluir filtro, desabilitar filtro ou retirar a ação Alerta de um filtro 
     880 * esta função é chamada para retirar as flags que caracterizam uma mensagem como alertada pelos Filtros por Remetente  
     881 */ 
     882function removeMessagesFlag(id){ 
     883        var filters_c = DataLayer.get('filter', id); 
     884        var folder = ''; 
     885        var from = ''; 
     886 
     887        for(var i=0; i < filters_c['actions'].length; i++){ 
     888                if(filters_c['actions'][i].type == 'fileinto'){ 
     889                        folder = filters_c['actions'][i].parameter; 
     890                } 
     891        } 
     892        $.each(fromRules, function(index, value) { 
     893                if(value == folder){ 
     894                        for(var i=0; i < filters_c['criteria'].length; i++){ 
     895                                if(filters_c['criteria'][i].field == 'from'){ 
     896                                        from = filters_c['criteria'][i].value; 
     897                                } 
     898                        } 
     899                        cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&from="+from, function(){});  
     900                        return false; 
     901                } 
     902        }); 
     903} 
Note: See TracChangeset for help on using the changeset viewer.