Changeset 6487 for trunk


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

Location:
trunk
Files:
14 edited
25 copied

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r6483 r6487  
    10951095        function get_info_msg($params) 
    10961096        { 
    1097          
    10981097                if(isset($params['alarm'])){ 
    10991098                        $alarm = $params['alarm']; 
     
    53325331        
    53335332   } 
     5333         
     5334         
     5335        /** 
     5336        * Método que retorna as mensagens com a flag $FilteredMessage que representa as mensagens filtradas que devem ser alertadas para o usuário 
     5337        * 
     5338        * @license    http://www.gnu.org/copyleft/gpl.html GPL 
     5339        * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     5340        * @sponsor    Caixa Econômica Federal 
     5341        * @author     Airton Bordin Junior <airton@prognus.com.br> 
     5342        * @author         Marcieli <marcieli@prognus.com.br>     
     5343        * @author         Marcos <marcosw@prognus.com.br>        
     5344        * @param      <Array> <$paramFolders> <Pastas onde devem ser buscadas as mensagens> 
     5345        * @return     <Mensagens encontradas com a flag $FilteredMessage> 
     5346        * @access     <public> 
     5347        */ 
     5348        function getFlaggedAlertMessages($paramFolders) { 
     5349                 
     5350                $folders = explode(",", $paramFolders['folders']); 
     5351         
     5352                $messages = array(); 
     5353                $result   = array(); 
     5354                $label    = '$FilteredMessage'; 
     5355                 
     5356                foreach ($folders as $folder) { 
     5357                        $this->mbox = $this->open_mbox($folder); 
     5358                        /* Não deletadas, não lidas e com a flag */ 
     5359                        $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 
     5360                        if(is_array($messages)) 
     5361                                foreach ($messages as $k => $m) { 
     5362                                        $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 
     5363                                        $date = explode(" ", $headers[0]->date);  
     5364                                        $result[$m."_".$folder] = array ( 
     5365                                                'udate'      => $headers[0]->udate, 
     5366                                                'smalldate'  => $date[4], 
     5367                                                'from'       => $headers[0]->from, 
     5368                                                'subject'    => self::decodeMimeString($headers[0]->subject), 
     5369                                                'msg_number' => $m, 
     5370                                                'msg_folder' => $folder 
     5371                                        ); 
     5372                                } 
     5373                } 
     5374                $result_final = array(); 
     5375                foreach ($result as $r){ 
     5376                        $result_final[] = $r; 
     5377                } 
     5378 
     5379                return $result_final; 
     5380        } 
     5381         
     5382        /** 
     5383        * Esta função é chamada ao clicar sobre uma mensagem listada nos alertas de Filtro por Remetente 
     5384        * 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 
     5385        */ 
     5386        function open_flagged_msg($params){ 
     5387                $message_number = $params['msg_number']; 
     5388                $message_folder = $params['msg_folder']; 
     5389                $alarm = $params['alarm']; 
     5390                if ($message_folder && $message_number) { 
     5391                        $this->mbox = $this->open_mbox($message_folder); 
     5392                        imap_clearflag_full($this->mbox, $message_number, '$FilteredMessage', ST_UID); 
     5393                } 
     5394                $r = $this->get_info_msg(array('msg_number' => $message_number, 'msg_folder' =>urlencode($message_folder), 'alarm' => ($alarm))); 
     5395                return $r; 
     5396        } 
     5397         
     5398        /** 
     5399        * Remove a flag que caracteriza uma mensagem como alertada por Filtro por Remetente. 
     5400        * se houver o parametro msg_number, então remove a flag de uma msg especifica 
     5401        * se não houver o parametro msg_number, mas sim o from, então remove a flag de todas as msgs da pasta (parametro from),  
     5402        * e que o remetente for o from. 
     5403        */ 
     5404        function removeFlagMessagesFilter($params){ 
     5405                $message_number = $params['msg_number']; 
     5406                $folder = $params['folder']; 
     5407 
     5408                if(isset($message_number)){ 
     5409                        if(isset($folder)){ 
     5410                                $message_number = explode(',', $message_number); 
     5411                                $this->mbox = $this->open_mbox($folder); 
     5412                                foreach ($message_number as $k => $m) {                  
     5413                                                imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 
     5414                                        } 
     5415                        } 
     5416                } 
     5417                else{ 
     5418                        $from = $params['from']; 
     5419                        if(isset($folder) && isset($from)){ 
     5420                                $this->mbox = $this->open_mbox($folder); 
     5421                                $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 
     5422                        } 
     5423                        if(is_array($messages)){ 
     5424                                foreach ($messages as $k => $m) { 
     5425                                        $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 
     5426                                        if(strpos($headers[0]->from, $from) > 0){ 
     5427                                                imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 
     5428                                        } 
     5429                                } 
     5430                        } 
     5431                } 
     5432                 
     5433                return array('status' => "success");  
     5434        } 
     5435 
    53345436} 
    53355437?> 
  • trunk/expressoMail1_2/index.php

    r6237 r6487  
    7272                <script type="text/javascript" src="../prototype/modules/calendar/js/calendar.codecs.js"></script> 
    7373                 
     74                <link rel="stylesheet" type="text/css" href="../prototype/plugins/freeow/style/freeow/freeow.css" > 
     75                <script type="text/javascript" src="../prototype/plugins/freeow/jquery.freeow.min.js"></script> 
     76                <script type="text/javascript" src="../prototype/plugins/freeow/jquery.freeow.js"></script> 
    7477 
    7578                <script src="js/rich_text_editor.js" type="text/javascript"></script> 
  • trunk/expressoMail1_2/js/draw_api.js

    r6469 r6487  
    19801980var msg_selected; 
    19811981function draw_message(info_msg, ID){ 
     1982        // remove a flag $FilteredMessage da mensagem ao ser lida 
     1983        if(info_msg.Unseen == "U"){ 
     1984                $.each(fromRules, function(index, value) { 
     1985                        if(value == info_msg.msg_folder){ 
     1986                                cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+info_msg.msg_folder+"&msg_number="+info_msg.msg_number, function(){});  
     1987                                return false; 
     1988                        } 
     1989                }); 
     1990        } 
    19821991        var content = document.getElementById('content_id_' + ID); 
    19831992 
  • trunk/expressoMail1_2/js/main.js

    r6469 r6487  
    66var results_search_messages = "";  
    77var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>';  
     8// Variavel para controle de atualização das mensagens listadas na modal de alerta de filtro por remetente 
     9var checkAlarmsFilter = false; 
    810 
    911//Os IE's < 9 não possui suporte a trim() introduzida no JavaScript 1.8.1 
     
    158160                mobile_device = ( ( data.constructor == Boolean ) ? data : ( data === 'true' ) ); 
    159161        }); 
     162 
    160163        setTimeout('auto_refresh()', time_refresh); 
    161164         
     
    507510 
    508511function refresh(alert_new_msg){ 
     512        getFromAlertRules(); 
    509513        var handler_refresh = function(data){ 
     514                if(checkAlarmsFilter){ 
     515                        handlerMessageFilter = function (data) { 
     516                                alarmFollowupflagged('filtersAlarms', data); 
     517                        } 
     518                        /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     519                        cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
     520                } 
     521                checkAlarmsFilter = true; 
    510522                if(data['msg_range_end']) 
    511523                        if(data['msg_range_end'] > 0) 
     
    11351147                        Element('tot_m').innerHTML = n_total_msg; 
    11361148                } 
    1137                  
    11381149                refresh(); 
    11391150        } 
     
    11701181        refresh(); 
    11711182        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 
    1172               $.ajax({ 
     1183                // remove a flag $FilteredMessage da mensagem, depois move 
     1184                var handler_removeFlag = function(){ 
     1185                        $.ajax({ 
    11731186                                url: 'controller.php?' + $.param( {action: '$this.imap_functions.move_messages', 
    11741187                                                                    folder: folder, 
     
    11911204                                } 
    11921205 
    1193                       }); 
     1206                    }); 
     1207                } 
     1208                var hasFolder = false; 
     1209                $.each(fromRules, function(index, value) { 
     1210                        if(value == folder){ 
     1211                                hasFolder = true; 
     1212                                cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_number, handler_removeFlag);  
     1213                                return false; 
     1214                        } 
     1215                }); 
     1216                if(!hasFolder){ 
     1217                        handler_removeFlag(); 
     1218                } 
     1219                 
    11941220        }else 
    11951221                write_msg(get_lang('No selected message.')); 
     
    27842810                                                        set_msg_as_read(results_search_messages, false, true); 
    27852811                                                Element("check_box_message_" + msgs_to_set[i]).checked = false; 
     2812                                                 
     2813                                                // remove a flag $FilteredMessage da mensagem ao ser marcada como lida   
     2814                                                $.each(fromRules, function(index, value) { 
     2815                                                        if(value == folder){ 
     2816                                                                cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_to_set, function(){});  
     2817                                                                return false; 
     2818                                                        } 
     2819                                                });      
     2820                                                 
    27862821                                                break; 
    27872822                                        case "flagged": 
     
    28082843        else 
    28092844                folder = Element("input_folder_"+msgs_to_set+"_r").value; 
    2810  
     2845         
    28112846        if (msgs_to_set) 
    28122847                $.ajax({ 
     
    39934028}; 
    39944029 
     4030function truncate(text, size){ 
     4031        var result = text; 
     4032        if(text.length > size){ 
     4033                result = text.substring(0,size) + '...'; 
     4034        } 
     4035        return result; 
     4036} 
     4037 
    39954038DataLayer.links('message'); 
    39964039DataLayer.poll('message',30); 
  • trunk/expressoMail1_2/js/messages_controller.js

    r6469 r6487  
    8888                if (msgs_number == 'selected') 
    8989                        msgs_number = get_selected_messages(); 
     90                 
    9091                if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    9192                        var content_search = document.getElementById('content_id_'+currentTab); 
  • trunk/expressoMail1_2/setup/phpgw_pt-br.lang

    r6348 r6487  
    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 
     
    561562There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.   expressoMail1_2 pt-br   Pasta %1 inexistente, Expresso criará para você. Contudo por favor repita a operação em seguida. 
    562563There's an action processing. Do you want abort it?     expressoMail1_2 pt-br   Existe uma ação que ainda está sendo processada. Suspender ação? 
     564The filter is active for alerts expressoMail1_2 pt-br   O filtro está ativo para alertas 
    563565The results were found in the Global Catalog    expressoMail1_2 pt-br   Ocorrências encontradas no Catálogo Geral 
    564566The selected folder is empty.   expressoMail1_2 pt-br   A pasta selecionada está vazia. 
     
    900902 will be removed. This action cannot be undone. Want to continue?       expressoMail1_2 pt-br    serão removidas. Essa ação não poderá ser desfeita. Deseja continuar? 
    901903Message size greateruler than allowed (Default rule)    expressoMail1_2 pt-br    Tamanho da mensagem excede o limite de tamanho configurado pelo administrador 
     904You have an archived message:   expressoMail1_2 pt-br   Você tem uma mensagem arquivada: 
     905You have %1 messages archived:  expressoMail1_2 pt-br   Você tem %1 mensagens arquivadas: 
     906Filter by sender        expressoMail1_2 pt-br   Filtro por Remetente 
     907Follow ups      expressoMail1_2 pt-br   Sinalizadas 
     908Done    expressoMail1_2 pt-br   Concluídas  
     909This filter not permits alert   expressoMail1_2 pt-br   Este filtro não permite alerta  
  • trunk/expressoMail1_2/templates/default/index.tpl

    r5878 r6487  
    211211<div id="sendFileMessages" style="display:none;"></div> 
    212212<div id="quickAddContact" style="display:none;"></div> 
     213<div id="freeow" class="freeow freeow-bottom-right"></div> 
    213214<!-- END list --> 
  • trunk/prototype/modules/filters/edit-filter.ejs

    r6387 r6487  
    124124                                        %> 
    125125                                </select> 
     126                                <input type="checkbox" name="actionType[]" value="alertMessage" class="alertMessage"/> 
     127                                <label><%= get_lang("Alert message filter by sender")%></label> 
    126128                        </fieldset> 
    127129                        <fieldset> 
  • trunk/prototype/modules/filters/filter-list.ejs

    r6348 r6487  
    4141                                        <%  
    4242                                                for (var k=0; k<data.rules[i].actions.length; k++) { 
     43                                                        if(data.rules[i].actions[k].type == "addflag") {  
     44                                        %>               
     45                                                                <li><strong> (<%= get_lang("The filter is active for alerts") %>) </strong></li> 
     46                                        <%               
     47                                                                continue; 
     48                                                        } 
    4349                                        %> 
    4450                                                <li><strong><%= get_lang(data.rules[i].actions[k].type) %>:</strong> <%= (data.rules[i].actions[k].type == 'setflag') ? get_lang(data.rules[i].actions[k].parameter) : data.rules[i].actions[k].parameter %></li> 
  • 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} 
  • trunk/prototype/modules/filters/interceptors/FilterMapping.php

    r6459 r6487  
    224224                        $script_criteria .= ")";  
    225225 
    226                         $script_action = " {\r\n "; 
     226                        //$script_action = " {\r\n "; 
     227                        /* Somente para controlar que o addFlag virá antes de qualquer ação. Modificar isso depois */ 
     228                        $action_addFlag = ''; 
    227229                         
    228230                        if( is_array($action) ) 
     
    230232                        { 
    231233                                switch ($action[$k]['type']) { 
     234                                        case 'setflag': 
     235                                                $require_flag = true; 
     236                                                $action[$k]['parameter'] = "\\\\" . $action[$k]['parameter']; 
     237                                                break; 
     238                                        case 'addflag':  
     239                                                $require_flag = true; 
     240                                                $action_addFlag = "addflag \"" . $action[$k]['parameter'] . "\";\r\n "; 
     241                                                break; 
    232242                                        case 'redirect': 
    233243                                                break; 
     
    245255                                                $vacation = true; 
    246256                                                continue; 
    247                                         case 'setflag': 
    248                                                 $require_flag = true; 
    249                                                 $action[$k]['parameter'] = "\\\\" . $action[$k]['parameter']; 
    250                                                 break; 
    251257                                        case 'discard': 
    252258                                                break; 
    253259                                } 
    254                                 if ($vacation == false) $script_action .= $action[$k]['type'] . " \"" . $action[$k]['parameter'] . "\";\r\n "; 
     260                                if ($vacation == false && $action[$k]['type'] != 'addflag') $script_action .= $action[$k]['type'] . " \"" . $action[$k]['parameter'] . "\";\r\n "; 
    255261                        } 
    256                         $script_action .= "}"; 
    257262                         
     263                        /* ATENÇÃO: Colocar sempre o comando addflag antes de qualquer outro no caso de ações compostas no Sieve */ 
     264                        if ($action_addFlag != '') $script_action = $action_addFlag . $script_action;  
     265                         
     266                        $script_action = "{\r\n " . $script_action . "}"; 
     267                        $action_addFlag = ''; 
    258268                        if($vacation == false) 
    259269                                $script_rules .= $script_match . $script_criteria . $script_action . "\r\n"; 
     
    263273                        $script_match = ""; 
    264274                        $script_criteria = "";   
     275                        $script_action = ""; 
    265276                        $data['applyMessages'] = "";                                                     
    266277                } 
     
    295306 
    296307                $content = $script_begin . $script_header . $script_rules . "\r\n\r\n#PseudoScript#" . "\r\n#" . $json_data; 
    297                  
     308 
    298309                return( $content ); 
    299310        } 
  • trunk/prototype/modules/mail/css/followupflag.css

    r6167 r6487  
    209209span.removeLabeledMsg {margin:0 5px 0 5px;font-weight: bold;} 
    210210span.removeLabeledMsg:hover {cursor: pointer;} 
     211 
     212.freeow .gray:hover .background { 
     213    border-color: #BBB; 
     214} 
     215.minimize-alarm { 
     216        background: url("../img/minimizar.png") no-repeat scroll 0 0 transparent; 
     217        height: 16px; 
     218    position: relative; 
     219    width: 16px; 
     220        float:right;  
     221        margin-right:5px; 
     222} 
     223.maximize-alarm { 
     224        background: url("../img/maximizar.png") no-repeat scroll 0 0 transparent; 
     225        height: 16px; 
     226    position: relative; 
     227    width: 16px; 
     228        float:right;  
     229        margin-right:5px; 
     230} 
     231.content-alarm ul { 
     232        max-height: 100px; 
     233        overflow: auto; 
     234} 
     235.content-alarm { 
     236        margin-top: 5px; 
     237} 
     238.title-alarm { 
     239    margin-left: 90px; 
     240        font-size: 16px; 
     241} 
     242.alert-options { 
     243        border: none; 
     244} 
     245.confirm-alarm { 
     246        float:right; 
     247} 
     248.freeow .gray h2 { 
     249        font-size: 12px; 
     250} 
     251.freeow { 
     252        width: 325px; 
     253} 
     254.freeow .gray .content { 
     255        margin: 5px; 
     256} 
     257.freeow .gray .background { 
     258        background-color: #fafafa; 
     259        border: 2px solid #BBB; 
     260} 
     261.freeow .content { 
     262        margin: 5px; 
     263} 
     264 
     265.filtersDeadline .img_title { 
     266        background: url("../img/email.png") no-repeat scroll 0 0 transparent; 
     267        height: 20px; 
     268    position: absolute; 
     269    width: 20px; 
     270        float:left;  
     271        margin-left:40px; 
     272        top: 7px; 
     273} 
     274.alarmDeadline .img_title { 
     275        background: url("../img/flagDefault4.png") no-repeat scroll 0 0 transparent; 
     276        height: 10px; 
     277    position: absolute; 
     278    width: 10px; 
     279        float:left;  
     280        margin-left:42px; 
     281        top: 11px; 
     282} 
     283.doneDeadline .img_title { 
     284        background: url("../img/flagDone.png") no-repeat scroll 0 0 transparent; 
     285        height: 10px; 
     286    position: absolute; 
     287    width: 10px; 
     288        float:left;  
     289        margin-left:43px; 
     290        top: 11px; 
     291} 
  • trunk/prototype/modules/mail/js/followupflag.js

    r6253 r6487  
    251251                                        updateCacheFollowupflag(selectedMessageIds, folders, true); 
    252252                                        winElement.dialog("close"); 
    253                                         alarmFollowupflagged(); 
     253                                        alarmFollowupflagged('followupflagAlarms'); 
    254254                                }); 
    255255                                winElement.find('.menu-configure-followupflag .save').button("option", "disabled", true); 
     
    328328                DataLayer.commit(false, false, function(){ 
    329329                        winElement.dialog("close"); 
    330                         alarmFollowupflagged(); 
     330                        alarmFollowupflagged('followupflagAlarms'); 
    331331                }); 
    332332                 
     
    471471 
    472472/** 
    473  * constrói as duas possíveis janela de alerta, utilizando o mesmo template 
     473 * constrói as três possíveis janelas de alerta, utilizando o mesmo template 
     474 * para o parametro alert_type, espera-se vazio, followupflagAlarms ou filtersAlarms 
     475 * vazio: quando serão carregadas todas as modais de alarmes 
     476 * followupflagAlarms: quando serão carregadas as modais referentes à sinalizações 
     477 * filtersAlarms: quando será carregada a modal de filtros (nesse caso o parametro filter_list deve conter a lista de mensagens a ser exibida na modal) 
    474478 */ 
    475 function alarmFollowupflagged(){ 
    476     $('.followupflag-alarm').remove(); 
    477         var toIterate = [ 
    478                 { 
    479                         attrDeadline: 'doneDeadline',  
    480                         caption: {singular:'You have one undone message today:',  
    481                         plural:"You have %1 undone messages today:" 
    482                         }, 
    483                         onOk: function(event){ 
    484                                 if($(event.target).parents('.doneDeadline').find('[name="stopAlert"]').is(':checked')){ 
    485                                         $.cookie("fadeCompleted", (new Date).toString("dd/MM/yyyy"), {  
    486                                                 expires: 1  
    487                                         }); 
    488                                 } 
    489                         }, 
    490                         enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 
    491                 }, 
    492                 { 
    493                         attrDeadline: 'alarmDeadline', 
    494                         caption: { 
    495                                 singular:'You have a follow up due for today:',  
    496                                 plural:'You have %1 follow ups due for today:' 
    497                         }, 
    498                         onOk: function(event){ 
    499                                 if($(event.target).parents('.alarmDeadline').find('[name="stopAlert"]').is(':checked')){ 
    500                                         $.cookie("fadeAlarm", (new Date).toString("dd/MM/yyyy"), {  
    501                                                 expires: 1  
    502                                         }); 
    503                                 } 
    504                         }, 
    505                         enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 
    506                 } 
    507         ]; 
     479function alarmFollowupflagged(alert_type, filter_list){ 
     480        switch(alert_type){ 
     481                // carregar modais de sinalizadores 
     482                case 'followupflagAlarms': 
     483                        $('.doneDeadline').remove(); 
     484                        $('.alarmDeadline').remove(); 
     485                        var toIterate = [ 
     486                                { 
     487                                        attrDeadline: 'doneDeadline',  
     488                                        caption: {singular:'You have one undone message today:',  
     489                                        plural:"You have %1 undone messages today:" 
     490                                        }, 
     491                                        title: get_lang('Done'), 
     492                                        enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 
     493                                }, 
     494                                { 
     495                                        attrDeadline: 'alarmDeadline', 
     496                                        caption: { 
     497                                                singular:'You have a follow up due for today:',  
     498                                                plural:'You have %1 follow ups due for today:' 
     499                                        }, 
     500                                        title: get_lang('Follow ups'), 
     501                                        enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 
     502                                } 
     503                        ]; 
     504                        break; 
     505                // carregar modal de filtros 
     506                case 'filtersAlarms': 
     507                        $('.filtersDeadline').remove(); 
     508                        var toIterate = [ 
     509                                { 
     510                                        attrDeadline: 'filtersDeadline', 
     511                                        caption: { 
     512                                                singular:'You have an archived message:',  
     513                                                plural:'You have %1 messages archived:' 
     514                                        }, 
     515                                        title: get_lang('Filter by sender'), 
     516                                        enable: ($.cookie("fadeFilterAlarm") != (new Date).toString("dd/MM/yyyy")) 
     517                                } 
     518                        ]; 
     519                        break; 
     520                // carregar todas as modais 
     521                default: 
     522                        $('.gray').remove(); 
     523                        var toIterate = [ 
     524                                { 
     525                                        attrDeadline: 'filtersDeadline', 
     526                                        caption: { 
     527                                                singular:'You have an archived message:',  
     528                                                plural:'You have %1 messages archived:' 
     529                                        }, 
     530                                        title: get_lang('Filter by sender'), 
     531                                        enable: ($.cookie("fadeFilterAlarm") != (new Date).toString("dd/MM/yyyy")) 
     532                                }, 
     533                                { 
     534                                        attrDeadline: 'doneDeadline',  
     535                                        caption: {singular:'You have one undone message today:',  
     536                                        plural:"You have %1 undone messages today:" 
     537                                        }, 
     538                                        title: get_lang('Done'), 
     539                                        enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 
     540                                },                               
     541                                { 
     542                                        attrDeadline: 'alarmDeadline', 
     543                                        caption: { 
     544                                                singular:'You have a follow up due for today:',  
     545                                                plural:'You have %1 follow ups due for today:' 
     546                                        }, 
     547                                        title: get_lang('Follow ups'), 
     548                                        enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 
     549                                } 
     550                        ]; 
     551                        break; 
     552        } 
    508553        var i = 0; 
     554        // recupera e monta os dados para serem exibidos nas modais de alarmes 
    509555        while (it = toIterate.pop()){ 
    510556                if (!it.enable) continue; 
    511  
    512                 var alarmInRange = DataLayer.get('followupflagged', {filter: ['AND', ['>', it.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00')], ['<', it.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00')]], criteria: {deepness: 1}}); 
     557                 
     558                var alarmInRange = {}; 
     559                // caso for alarme de sinalizadores 
     560                if(it.attrDeadline == 'doneDeadline' || it.attrDeadline == 'alarmDeadline'){ 
     561                        alarmInRange = DataLayer.get('followupflagged', {filter: ['AND', ['>', it.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00')], ['<', it.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00')]], criteria: {deepness: 1}}); 
     562                        if(alarmInRange.length > 0){ 
     563                                for(var i=0; i<alarmInRange.length; i++){ 
     564                                        if(alarmInRange[i].isDone == 1){ 
     565                                                 alarmInRange.splice(i,1); 
     566                                                 i--; 
     567                                        } 
     568                                } 
     569                        } 
     570                         
     571                        if(alarmInRange.length > 0){ 
     572                                var messages_alarm = []; 
     573                                for(var i=0; i<alarmInRange.length; i++){ 
     574                                        var date = Date.parseExact(alarmInRange[i][it.attrDeadline], 'yyyy-MM-dd HH:mm:ss'); 
     575                                        if(date) 
     576                                                alarmInRange[i][it.attrDeadline] = date.toString('HH:mm'); 
     577                                         
     578                                        if(alarmInRange[i]['followupflag']['id'] < 7){ 
     579                                                var nameFollowupflag = get_lang(alarmInRange[i]['followupflag']['name']); 
     580                                        }else{ 
     581                                                var nameFollowupflag = alarmInRange[i]['followupflag']['name']; 
     582                                        } 
     583                                        var li_alarm = alarmInRange[i][it.attrDeadline] + ' - ' + nameFollowupflag + ' - ' + truncate(alarmInRange[i]['message']['headers']['subject'], 15); 
     584                                        messages_alarm.push({ 
     585                                                "msg_number" : alarmInRange[i]['messageNumber'], 
     586                                                "msg_folder" : alarmInRange[i]['folderName'], 
     587                                                "a"                      : li_alarm 
     588                                        });                              
     589                                } 
     590                        } 
     591                }  
     592                // caso for alarme de filtros 
     593                else if(filter_list){ 
     594                        alarmInRange = filter_list; 
     595                        if(alarmInRange.length > 0){ 
     596                                var messages_alarm = []; 
     597                                for(var i=0; i<alarmInRange.length; i++){ 
     598                                        var d = new Date(alarmInRange[i]['udate']*1000); 
     599                                        var dia = d.getDate(); 
     600                                        if(dia < 10){ 
     601                                                dia = "0" + dia; 
     602                                        } 
     603                                        var mes = (d.getMonth()) + 1; 
     604                                        if(mes < 10){ 
     605                                                mes = "0" + mes; 
     606                                        } 
     607                                        var ano = d.getFullYear(); 
     608                                        var dtFormatada = dia + '/' + mes + '/' + ano; 
     609                                        alarmInRange[i]['udate'] = dtFormatada; 
     610                                                 
     611                                        var li_alarm = alarmInRange[i]['udate'] + ' ' + alarmInRange[i]['smalldate'] + ' - ' + alarmInRange[i]['from'] + ' - ' + truncate(alarmInRange[i]['subject'], 15); 
     612                                        messages_alarm.push({ 
     613                                                "msg_number" : alarmInRange[i]['msg_number'], 
     614                                                "msg_folder" : alarmInRange[i]['msg_folder'], 
     615                                                "a"                      : li_alarm 
     616                                        });                              
     617                                } 
     618                        } 
     619                } 
     620                                 
    513621                if(alarmInRange.length > 0){ 
    514                         for(var i=0; i<alarmInRange.length; i++){ 
    515                                 if(alarmInRange[i].isDone == 1){ 
    516                                  alarmInRange.splice(i,1); 
    517                                  i--; 
    518                                 } 
    519                         } 
    520                 } 
    521                 if(alarmInRange.length > 0){ 
    522                         for(var i=0; i<alarmInRange.length; i++){ 
    523                                 var date = Date.parseExact(alarmInRange[i][it.attrDeadline], 'yyyy-MM-dd HH:mm:ss'); 
    524                                 if(date) 
    525                                         alarmInRange[i][it.attrDeadline] = date.toString('HH:mm'); 
    526                         } 
     622                        // monta o subtitulo da modal 
    527623                        var caption = (alarmInRange.length == 1) ? 
    528624                                get_lang(it.caption.singular): 
    529625                                get_lang(it.caption.plural, alarmInRange.length); 
    530                                  
     626                        // monta o array de dados a ser passado para o template  
    531627                        var data = { 
    532                                 alarmInRange : alarmInRange,  
     628                                alarmInRange : messages_alarm,  
    533629                                caption: caption,  
    534                                 it : it 
     630                                type: it.attrDeadline, 
     631                                captions: it.caption 
    535632                        }; 
     633                        // tipo de modal a ser exibida 
     634                        var type_alarm = it.attrDeadline; 
     635                        //função chamada ao clicar no botão Ok da modal 
     636                        var ok_function = function(event, type, type_cookie){ 
     637                                if($(event.target).parents('.'+type).find('[name="stopAlert"]').is(':checked')){ 
     638                                        $.cookie(type_cookie, (new Date).toString("dd/MM/yyyy"), {  
     639                                                expires: 1  
     640                                        }); 
     641                                } 
     642                        } 
     643                        // carrega o template dos alarmes e cria a modal utilizando o plugin freeow 
    536644                        var dialogText = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", data); 
     645                        var titulo = '<div class="header-alarm"><span class="img_title"></span><span class="title-alarm"><strong>'+it.title+'</strong></span><span name="header-icon" class="maximize-alarm"></span></div>'; 
     646                        $("#freeow").freeow(titulo, dialogText, { 
     647                                classes: ["gray", type_alarm], 
     648                                autoHide: false,  
     649                                startStyle: null, 
     650                                onClick: function(event){ 
     651                                        var type = ''; 
     652                                        var type_cookie = ''; 
     653                                        if($(this).hasClass('alarmDeadline')){ 
     654                                                type = 'alarmDeadline'; 
     655                                                type_cookie = 'fadeAlarm'; 
     656                                        }else if($(this).hasClass('doneDeadline')){ 
     657                                                type = 'doneDeadline'; 
     658                                                type_cookie = 'fadeCompleted'; 
     659                                        }else if($(this).hasClass('filtersDeadline')){ 
     660                                                type = 'filtersDeadline'; 
     661                                                type_cookie = 'fadeFilterAlarm'; 
     662                                        } 
     663                                        if($(event.target).hasClass('stop-alert-alarm')){ 
     664                                                return; 
     665                                        } 
     666                                        if($(event.target).hasClass('minimize-alarm')){ 
     667                                                $('.'+type).find('.content-alarm').hide(); 
     668                                                $(event.target).removeClass('minimize-alarm').addClass('maximize-alarm'); 
     669                                                return; 
     670                                        } 
     671                                        if($(event.target).hasClass('maximize-alarm')){ 
     672                                                $('.'+type).find('.content-alarm').show(); 
     673                                                $(event.target).removeClass('maximize-alarm').addClass('minimize-alarm'); 
     674                                                return; 
     675                                        } 
     676                                        if($(event.target).hasClass('confirm-alarm')){ 
     677                                                ok_function(event, type, type_cookie); 
     678                                                $('.'+type).remove(); 
     679                                                return; 
     680                                        } 
     681                                        return false; 
     682                                } 
     683                        }); 
     684                        // elementos do freeow desnecessários 
     685                        $('.gray .background .content p').remove(); 
     686                        $('.gray .icon').remove(); 
     687                        $('.gray .close').remove(); 
    537688                         
    538                         /** 
    539                          * A última dialog criada é a dialog mais ao alto 
    540                          */ 
    541                         var offsetHeight = $('.ZebraDialog.right-bottom:last').length ?  
    542                                 $(window).height() - $('.ZebraDialog.right-bottom:last').position().top : 0; 
    543  
    544                         /** 
    545                          * Se for a primeira, desloca para cima do rodapé do grid 
    546                          * caso contrário desloca para um pouco acima da última dialog criada 
    547                          */ 
    548                         offsetHeight = !offsetHeight ? 35 : offsetHeight + 20 ;                  
    549                         var dialog = new $.Zebra_Dialog(dialogText, { 
    550                                 'buttons':  ['Ok'], 
    551                                 'modal': false, 
    552                                 'vcenter_short_message': false, 
    553                                 'position': ['right - 20', 'bottom - ' + offsetHeight.toString() ], 
    554                                 'custom_class': 'right-bottom followupflag-alarm '+it.attrDeadline 
    555                         }).dialog; 
    556                         $(".ZebraDialog.followupflag-alarm .ZebraDialog_Button0").click(it.onOk); 
    557                         $(".ZebraDialog.followupflag-alarm .display-options .more").click(function(event) { 
    558                                 $(event.target).parents('.followupflag-alarm').find('.message-list').css('height', 'auto'); 
    559                         }); 
     689                        // botão ok da modal com jquery button 
     690                        $('.content-alarm button').button(); 
    560691                }                
    561692        } 
     693         
     694        // controle de qual janela de alarme estará maximizada 
     695        $('.gray').find('.content-alarm').hide(); 
     696        $('.gray').find('.header-alarm [name="header-icon"]').removeClass('minimize-alarm').addClass('maximize-alarm'); 
     697         
     698        if($('.gray').length > 0){ 
     699                if($('.gray').hasClass('filtersDeadline')){ 
     700                        $('.filtersDeadline').find('.content-alarm').show(); 
     701                        $('.filtersDeadline .header-alarm [name="header-icon"]').removeClass('maximize-alarm').addClass('minimize-alarm'); 
     702                }else if($('.gray').hasClass('alarmDeadline')){ 
     703                        $('.alarmDeadline').find('.content-alarm').show(); 
     704                        $('.alarmDeadline .header-alarm [name="header-icon"]').removeClass('maximize-alarm').addClass('minimize-alarm');         
     705                }else if($('.gray').hasClass('doneDeadline')){ 
     706                        $('.doneDeadline').find('.content-alarm').show(); 
     707                        $('.doneDeadline .header-alarm [name="header-icon"]').removeClass('maximize-alarm').addClass('minimize-alarm');  
     708                } 
     709        } 
     710         
    562711} 
     712                 
    563713$('#main_table').ready(function(){ 
    564     alarmFollowupflagged(); 
     714        handlerMessageFilter = function (data) { 
     715                alarmFollowupflagged(null, data); 
     716        } 
     717        /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     718        cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
    565719}); 
     720 
  • trunk/prototype/modules/mail/templates/followupflag_alarm_list.ejs

    r5738 r6487  
    1 <p class="title"><strong><%= data.caption %> </strong></p> 
    2  
    3 <ul class="message-list"> 
    4 <% 
    5 for(var i=0; i<data.alarmInRange.length; i++){ 
    6         var openMessageScript = "cExecute('$this.imap_functions.get_info_msg&msg_number="+data.alarmInRange[i].messageNumber+"&msg_folder="+data.alarmInRange[i].folderName+"&alarm=true', show_msg);"; 
    7         if(data.alarmInRange[i].followupflag.id < 7){ 
    8                 var nameFollowupflag = get_lang(data.alarmInRange[i].followupflag.name); 
    9         }else{ 
    10                 var nameFollowupflag = data.alarmInRange[i].followupflag.name; 
     1<div class="content-alarm"> 
     2        <span class="subtitle-alarm"> 
     3                <strong><%=data.caption %></strong> 
     4        </span> 
     5        <ul class="message-list"> 
     6        <% 
     7        for(var i=0; i<data.alarmInRange.length; i++){ 
     8                if(data.type == 'filtersDeadline') 
     9                        var openMessageScript = "$(this).parent().remove(); var msgs_count = $('.filtersDeadline').find('.message-item').length; if(msgs_count == 0){ $('.filtersDeadline').remove(); } $('.subtitle-alarm').find('strong').html((msgs_count == 1)?get_lang('"+data.captions.singular+"'):get_lang('"+data.captions.plural+"', msgs_count)); cExecute('$this.imap_functions.open_flagged_msg&msg_number="+data.alarmInRange[i].msg_number+"&msg_folder="+data.alarmInRange[i].msg_folder+"&alarm=true', show_msg);"; 
     10                else     
     11                        var openMessageScript = "cExecute('$this.imap_functions.get_info_msg&msg_number="+data.alarmInRange[i].msg_number+"&msg_folder="+data.alarmInRange[i].msg_folder+"&alarm=true', show_msg);"; 
     12        %> 
     13                <li class="message-item"> 
     14                        <a onclick="<%=openMessageScript%>"> 
     15                                <%= data.alarmInRange[i].a %> 
     16                        </a> 
     17                </li> 
     18        <% 
    1119        } 
    12 %> 
    13         <li class="message-item"> 
    14                 <a onclick="<%=openMessageScript%>"> 
    15                         <%= (it.attrDeadline == 'alarmDeadline') ? data.alarmInRange[i].alarmDeadline : data.alarmInRange[i].doneDeadline %> - <%= nameFollowupflag %> - <%= data.alarmInRange[i].message.headers.subject %> 
    16                 </a> 
    17         </li> 
    18 <% 
    19 } 
    20 %> 
    21 </ul>  
    22  
    23 <fieldset class="alert-options"> 
    24         <input type="checkbox" name="stopAlert"> <label><%= get_lang("Don't show this window anymore today.")%></label> 
    25 </fieldset> 
     20        %> 
     21        </ul>  
     22        <fieldset class="alert-options"> 
     23                <input type="checkbox" class="stop-alert-alarm" name="stopAlert"> <label><%= get_lang("Don't show this window anymore today.")%></label> 
     24                <button class="confirm-alarm">Ok</button> 
     25        </fieldset> 
     26</div> 
Note: See TracChangeset for help on using the changeset viewer.