Changeset 5629


Ignore:
Timestamp:
03/05/12 16:58:15 (12 years ago)
Author:
gustavo
Message:

Ticket #2088 - Melhorias no editor de regras de filtro de mensagens do Expresso

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/filters/interceptors/FilterMapping.php

    r5601 r5629  
    7777                $require_fileinto = $require_flag = $require_reject = $require_vacation = $require_body = $require_imapflag = $vacation = $startswith = $endswith = false; 
    7878 
    79                 $script_rules = $script_header = $script_criteria = ""; 
     79                $script_rules = $script_header = $script_criteria = $vacation_action = ""; 
     80 
    8081                $i = 0; 
     82 
    8183                foreach( $rules as $name => $data ) 
    8284                { 
    83                         if( !$data['enabled'] ) 
     85 
     86                        if( $data['enabled'] == 'false' ) 
    8487                                continue; 
    8588 
     89                        $vacation = false; 
    8690                        $criteria = $data['criteria']; 
    8791                        $action   = $data['actions']; 
     
    119123                                                break; 
    120124                                        case 'vacation': 
    121                                                 $require_vacation = true; 
    122                                                 $vacation = true; 
    123                                                 //$script_match = "vacation"; 
    124125                                                continue; 
    125126                                        default: 
     
    172173                        } 
    173174                        $script_criteria = substr($script_criteria,0,-2); 
    174                         if ($vacation == false)  
    175                                 $script_criteria .= ")";  
    176                         else  
    177                                 $script_criteria = ""; 
     175                        /* if ($vacation == false) */  
     176                        $script_criteria .= ")";  
     177 
    178178                        $script_action = " {\r\n "; 
    179179                        for ($k=0; $k<count($action); $k++) 
     
    201201                                                break; 
    202202                                } 
    203                                 /*if ($vacation == false)*/ $script_action .= $action[$k]['type'] . " \"" . $action[$k]['parameter'] . "\";\r\n "; 
     203                                if ($vacation == false) $script_action .= $action[$k]['type'] . " \"" . $action[$k]['parameter'] . "\";\r\n "; 
    204204                        } 
    205205 
    206                         /*if ($vacation == false)*/ $script_action .= "}"; 
    207  
    208                         $script_rules .= $script_match . $script_criteria . $script_action . "\r\n"; 
     206                        $script_action .= "}"; 
     207                         
     208                        if($vacation != true) 
     209                                $script_rules .= $script_match . $script_criteria . $script_action . "\r\n"; 
     210 
     211                        if($data['id'] != "vacation") 
     212                                $i++; 
    209213                        $script_match = ""; 
    210214                        $script_criteria = ""; 
    211                         $i++; 
     215                         
    212216                } 
    213217 
     
    224228                } 
    225229 
    226                 if( $vacation ) 
     230                if( $vacation_action ) 
    227231                { 
    228232                  $script_rules .= "vacation" . $vacation_action . "\r\n"; 
     
    234238 
    235239                $content = $script_begin . $script_header . $script_rules . "\r\n\r\n#PseudoScript#" . "\r\n#" . $json_data; 
    236                  
    237                 /* $content = "";  //fill script! */ 
     240                //$content = "";  
    238241                return( $content ); 
    239242        } 
     
    388391            $i = 0; 
    389392 
    390             for( ;$this->rules[$i] && $this->rules[$i]['id'] !== $params['id']; $i++ ); 
    391  
    392             $this->rules[$i] = $params; 
     393            for( ; isset($this->rules[$i]) && $this->rules[$i]['id'] !== $params['id']; $i++ ); 
     394 
     395            $this->rules[$i] = array_merge( ( isset($this->rules[$i]) ? $this->rules[$i] : array() ), $params ); 
    393396 
    394397            $params = array( 'name' => $this->service->config['user'], 
     
    483486        */ 
    484487        public function listSieveRules( &$uri , &$params , &$criteria , $original  ) 
    485         {                
     488        { 
    486489                $return = $params = $this->parseSieveScript( $params[0]['content'] );  
    487490                return( $return ); 
Note: See TracChangeset for help on using the changeset viewer.