Ignore:
Timestamp:
05/23/12 16:26:07 (12 years ago)
Author:
airton
Message:

Ticket #2764 - Implementacao de alerta ao usuario para criterio atendido nos filtros de mensagens

Location:
sandbox/2.4.1-1/prototype/modules
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.1-1/prototype/modules/filters/edit-filter.ejs

    r6128 r6285  
    121121                                        %> 
    122122                                </select> 
     123                                <input type="checkbox" name="actionType[]" value="alertMessage" class="alertMessage"/> 
     124                                <label><%= get_lang("Alert message filter by sender")%></label> 
    123125                        </fieldset> 
    124126                        <fieldset> 
  • sandbox/2.4.1-1/prototype/modules/filters/filters.js

    r6176 r6285  
     1/*  
     2 * Retorna as regras por remetente e que o usuário deseja ser avisado  
     3 * 
     4 */ 
     5function getFromAlertRules() {  
     6        var filters = DataLayer.get("filter"); 
     7        fromRules = []; 
     8        var alertMessage; 
     9        for (var index in filters) { 
     10                alertMessage = filters[index]['alertMessage'];           
     11                for(var criterias in filters[index]['actions']) { 
     12                        if (filters[index]['actions'][criterias]['type'] == 'fileinto' && alertMessage == 'true') 
     13                                fromRules[fromRules.length] = filters[index]['actions'][criterias]['parameter']; 
     14                } 
     15        } 
     16        return fromRules; 
     17} 
     18 
    119function outOfficeVerify() {     
    220        DataLayer.remove('filter', false); 
     
    173191 
    174192DataLayer.codec( "filter", "detail", { 
    175    
    176193  decoder: function( form ){ 
    177       if( form.vacation ) 
     194          if( form.vacation ) 
    178195          return { 
    179196                criteria: [{ value: "vacation", operator: "", field: "vacation" }], 
     
    205222                         
    206223                        !the_parameter ? the_parameter = form.actionParameter[i+1] : ""; 
     224                        if (type == 'alertMessage') {  
     225                                //if(!$('[value="alertMessage"]').parent().hasClass("hidden")){ 
     226                                        type = 'addflag'; 
     227                                        the_parameter = '$FilteredMessage'; 
     228                                //}else{ 
     229                                //      return; 
     230                                //} 
     231                        }  
    207232                        if (type == 'fileinto') {  
    208233                                the_parameter = form.valueFileInto; 
     
    234259                }), 
    235260                enabled : true, 
     261                alertMessage: $('.alertMessage').is(':checked'), 
    236262                //applyMessages: allMessages? !$.isEmptyObject( selectedMessages ) ? 
    237263                //keys( selectedMessages ) : allMessages : "" 
     
    261287  }, 
    262288  encoder:function( data ){ 
    263   
    264289      var tree1 = [], tree2 = [], tree3 = []; 
    265290 
     
    293318}); 
    294319 
    295  
    296  
     320fromRules = getFromAlertRules(); 
    297321 
    298322var BASE_PATH = '../prototype/'; 
  • sandbox/2.4.1-1/prototype/modules/filters/interceptors/FilterMapping.php

    r6213 r6285  
    217217                        $script_criteria .= ")";  
    218218 
    219                         $script_action = " {\r\n "; 
     219                        //$script_action = " {\r\n "; 
     220                        /* Somente para controlar que o addFlag virá antes de qualquer ação. Modificar isso depois */ 
     221                        $action_addFlag = ''; 
    220222                         
    221223                        if( is_array($action) ) 
     
    223225                        { 
    224226                                switch ($action[$k]['type']) { 
     227                                        case 'setflag': 
     228                                                $require_flag = true; 
     229                                                $action[$k]['parameter'] = "\\\\" . $action[$k]['parameter']; 
     230                                                break; 
     231                                        case 'addflag':  
     232                                                $require_flag = true; 
     233                                                $action_addFlag = "addflag \"" . $action[$k]['parameter'] . "\";\r\n "; 
     234                                                break; 
    225235                                        case 'redirect': 
    226236                                                break; 
     
    238248                                                $vacation = true; 
    239249                                                continue; 
    240                                         case 'setflag': 
    241                                                 $require_flag = true; 
    242                                                 $action[$k]['parameter'] = "\\\\" . $action[$k]['parameter']; 
    243                                                 break; 
    244250                                        case 'discard': 
    245251                                                break; 
    246252                                } 
    247                                 if ($vacation == false) $script_action .= $action[$k]['type'] . " \"" . $action[$k]['parameter'] . "\";\r\n "; 
     253                                if ($vacation == false && $action[$k]['type'] != 'addflag') $script_action .= $action[$k]['type'] . " \"" . $action[$k]['parameter'] . "\";\r\n "; 
    248254                        } 
    249                         $script_action .= "}"; 
    250255                         
     256                        /* ATENÇÃO: Colocar sempre o comando addflag antes de qualquer outro no caso de ações compostas no Sieve */ 
     257                        if ($action_addFlag != '') $script_action = $action_addFlag . $script_action;  
     258                         
     259                        $script_action = "{\r\n " . $script_action . "}"; 
     260                        $action_addFlag = ''; 
    251261                        if($vacation == false) 
    252262                                $script_rules .= $script_match . $script_criteria . $script_action . "\r\n"; 
     
    256266                        $script_match = ""; 
    257267                        $script_criteria = "";   
     268                        $script_action = ""; 
    258269                        $data['applyMessages'] = "";                                                     
    259270                } 
     
    281292 
    282293                $content = $script_begin . $script_header . $script_rules . "\r\n\r\n#PseudoScript#" . "\r\n#" . $json_data; 
    283                  
     294 
    284295                return( $content ); 
    285296        } 
  • sandbox/2.4.1-1/prototype/modules/mail/js/followupflag.js

    r6280 r6285  
    698698         
    699699} 
     700                 
    700701$('#main_table').ready(function(){ 
    701     alarmFollowupflagged(); 
     702        handlerMessageFilter = function (data) { 
     703                alarmFollowupflagged(null, data); 
     704        } 
     705        /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     706        cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
    702707}); 
Note: See TracChangeset for help on using the changeset viewer.