Changeset 6355 for sandbox/2.4.1-1


Ignore:
Timestamp:
05/30/12 16:43:39 (12 years ago)
Author:
marcieli
Message:

Ticket #2764 - Remover flag ao excluir/desabilitar/remover ação de alarme do filtro.

Location:
sandbox/2.4.1-1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.1-1/expressoMail1_2/inc/class.imap_functions.inc.php

    r6350 r6355  
    53195319        } 
    53205320         
     5321        /** 
     5322        * Esta função é chamada ao clicar sobre uma mensagem listada nos alertas de Filtro por Remetente 
     5323        * remove a flag e chama a função que recupera os dados da mensagem, para serem utilizados na abertura da aba de leitura da msg 
     5324        */ 
    53215325        function open_flagged_msg($params){ 
    53225326                $message_number = $params['msg_number']; 
     
    53305334                return $r; 
    53315335        } 
     5336         
     5337        /** 
     5338        * Remove a flag que caracteriza uma mensagem como alertada por Filtro por Remetente. 
     5339        */ 
     5340        function removeFlagMessagesFilter($params){ 
     5341                $folder = $params['folder']; 
     5342                $from = $params['from']; 
     5343                if(isset($folder) && isset($from)){ 
     5344                        $this->mbox = $this->open_mbox($folder); 
     5345                        $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 
     5346                } 
     5347                if(is_array($messages)){ 
     5348                        foreach ($messages as $k => $m) { 
     5349                                $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 
     5350                                if(strpos($headers[0]->from, $from) > 0){ 
     5351                                        imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 
     5352                                } 
     5353                        } 
     5354                } 
     5355        } 
    53325356} 
    53335357?> 
  • sandbox/2.4.1-1/prototype/modules/filters/filters.js

    r6326 r6355  
    66        fromRules = []; 
    77        var alertMessage; 
     8        var active; 
    89        for (var index in filters) { 
    910                alertMessage = filters[index]['alertMessage'];           
     11                active = filters[index]['enabled']; 
    1012                for(var criterias in filters[index]['actions']) { 
    11                         if (filters[index]['actions'][criterias]['type'] == 'fileinto' && alertMessage == 'true') 
     13                        if (filters[index]['actions'][criterias]['type'] == 'fileinto' && alertMessage == 'true' && active == 'true') 
    1214                                fromRules[fromRules.length] = filters[index]['actions'][criterias]['parameter']; 
    1315                } 
     
    597599                                        else 
    598600                                                return; 
    599                                         DataLayer.commit( 'filter', false,function(){ 
     601                                        DataLayer.commit( 'filter', false,function(data){ 
     602                                        if(filters['alertMessage'] == "true"){ 
     603                                                if(filters['alertMessage'] != $('.alertMessage').is(':checked').toString()){ 
     604                                                        /**RETIRA FLAG*/ 
     605                                                        removeMessagesFlag(filters['id']); 
     606                                                } 
     607                                        } 
    600608                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
    601609                                        }); 
     
    630638                var id = $(this).parents("li.rule").find('.id').val();           
    631639                DataLayer.put( 'filter', id, { enabled: false  }); 
     640                /**RETIRA FLAG*/ 
     641                removeMessagesFlag(id); 
    632642                DataLayer.commit("filter", false,function(){ 
    633643                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     
    665675                                        DataLayer.remove('filter', false); 
    666676                                        DataLayer.get('filter'); 
     677                                        /**RETIRA FLAG*/ 
     678                                        removeMessagesFlag(filter_name); 
    667679                                        DataLayer.remove( 'filter', filter_name); 
     680 
    668681                                        DataLayer.commit("filter", false,function(){ 
    669682                                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
     
    688701                container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
    689702                        DataLayer.put( 'filter', o.innerHTML, { enabled: false  }); 
     703                        /**RETIRA FLAG*/ 
     704                        removeMessagesFlag(o.innerHTML); 
    690705                }); 
    691706                DataLayer.commit("filter", false, function(){ 
     
    707722                                        DataLayer.get('filter'); 
    708723                                        container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 
     724                                                /**RETIRA FLAG*/ 
     725                                                removeMessagesFlag(o.innerHTML); 
    709726                                                DataLayer.remove( 'filter', o.innerHTML ); 
     727 
    710728                                        }); 
    711729                                        DataLayer.commit("filter", false,function(){ 
     
    777795        list_filters(html); 
    778796} 
     797 
     798/* 
     799 * Ao excluir filtro, desabilitar filtro ou retirar a ação Alerta de um filtro 
     800 * esta função é chamada para retirar as flags que caracterizam uma mensagem como alertada pelos Filtros por Remetente  
     801 */ 
     802function removeMessagesFlag(id){ 
     803        var filters_c = DataLayer.get('filter', id); 
     804        var folder = ''; 
     805        var from = ''; 
     806        for(var i=0; i < filters_c['actions'].length; i++){ 
     807                if(filters_c['actions'][i].type == 'fileinto'){ 
     808                        folder = filters_c['actions'][i].parameter; 
     809                } 
     810        } 
     811        for(var i=0; i < filters_c['criteria'].length; i++){ 
     812                if(filters_c['criteria'][i].field == 'from'){ 
     813                        from = filters_c['criteria'][i].value; 
     814                } 
     815        } 
     816        cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&from="+from, function(){});  
     817} 
Note: See TracChangeset for help on using the changeset viewer.