Changeset 6285


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
Files:
7 edited

Legend:

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

    r6212 r6285  
    52715271                return $ret; 
    52725272        } 
     5273         
     5274         
     5275        /** 
     5276        * Método que retorna as mensagens com a flag $FilteredMessage que representa as mensagens filtradas que devem ser alertadas para o usuário 
     5277        * 
     5278        * @license    http://www.gnu.org/copyleft/gpl.html GPL 
     5279        * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     5280        * @sponsor    Caixa Econômica Federal 
     5281        * @author     Airton Bordin Junior <airton@prognus.com.br> 
     5282        * @author         Marcieli <marcieli@prognus.com.br>     
     5283        * @author         Marcos <marcosw@prognus.com.br>        
     5284        * @param      <Array> <$paramFolders> <Pastas onde devem ser buscadas as mensagens> 
     5285        * @return     <Mensagens encontradas com a flag $FilteredMessage> 
     5286        * @access     <public> 
     5287        */ 
     5288        function getFlaggedAlertMessages($paramFolders) { 
     5289                 
     5290                $folders = explode(",", $paramFolders['folders']); 
     5291         
     5292                $messages = array(); 
     5293                $result   = array(); 
     5294                $label    = '$FilteredMessage'; 
     5295                 
     5296                foreach ($folders as $folder) { 
     5297                        $this->mbox = $this->open_mbox($folder); 
     5298                        $messages = imap_search($this->mbox, 'ALL KEYWORD "$FilteredMessage"', SE_UID); 
     5299                         
     5300                        if(is_array($messages)) 
     5301                                foreach ($messages as $k => $m) { 
     5302                                        $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 
     5303 
     5304                                        $result[] = array ( 
     5305                                                'udate'      => $headers[0]->udate, 
     5306                                                'smalldate'  => $headers[0]->date, 
     5307                                                'from'       => $headers[0]->from, 
     5308                                                'subject'    => $headers[0]->subject, 
     5309                                                'msg_number' => $m, 
     5310                                                'msg_folder' => $folder 
     5311                                        ); 
     5312                                         
     5313                                } 
     5314                } 
     5315                return $result; 
     5316        } 
    52735317} 
    52745318?> 
  • sandbox/2.4.1-1/expressoMail1_2/js/main.js

    r6280 r6285  
    510510function refresh(alert_new_msg){ 
    511511        var handler_refresh = function(data){ 
     512                 
     513                handlerMessageFilter = function (data) { 
     514                        alarmFollowupflagged('filtersAlarms', data); 
     515                } 
     516                /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     517                cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
     518                 
    512519                if(data['msg_range_end']) 
    513520                        if(data['msg_range_end'] > 0) 
  • sandbox/2.4.1-1/expressoMail1_2/setup/phpgw_pt-br.lang

    r6217 r6285  
    1616Add user into my IM     expressoMail1_2 pt-br   Adicionar no meu IM 
    1717After store email in your local computer delete it from server  expressoMail1_2 pt-br   Depois de guardar e-mail no seu computador local, excluí-lo do servidor 
     18Alert message filter by sender  expressoMail1_2 pt-br   Alertar ao receber mensagens filtradas por remetente 
    1819all     expressoMail1_2 pt-br   Todas 
    1920All messages are successfully unarchived        expressoMail1_2 pt-br   Mensagens desarquivadas com sucesso 
  • 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.