Changeset 7858


Ignore:
Timestamp:
02/05/13 17:38:45 (7 years ago)
Author:
antonio
Message:

Ticket #3338 - DFD0148 - Inclusão de atalho para criar filtro a partir da msg

Location:
sandbox/2.5.1-expresso2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.1-expresso2/expressoMail1_2/js/common_functions.js

    r7827 r7858  
    694694} 
    695695 
     696/* 
     697    Abre o diálogo de edição de filtro na tela de criação de filtro,  
     698    com os dados da mensagem (remetente e assunto) pré-carregados. 
     699*/ 
     700 
     701function filter_from_msg (msg) { 
     702    var html = DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {}); 
     703    initialize_container(html); 
     704    list_container = create_filter_dialog(); 
     705    render_new_rule(msg.from.email, html_entities(msg.subject)); 
     706    $('.expresso-window-container').dialog('open'); 
     707} 
    696708 
    697709function sharebox(){ 
  • sandbox/2.5.1-expresso2/expressoMail1_2/js/doiMenuData.js

    r7791 r7858  
    173173                } 
    174174 
     175                // Desabilita a opção de criar filtro a partir da mensagem, caso mais de uma mensagem esteja selecionada: 
     176                var is_filterFromMsg_disabled = function () { 
     177                    var base_selector = ".table_box tbody tr.selected_msg"; 
     178                    return ($(base_selector).length > 1) || ($(base_selector + " td span").text().indexOf(get_lang("Draft")) > -1); 
     179                } 
     180 
    175181                var lastItens = { 
    176182                    "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }}, 
    177183                    "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }}, 
    178184                    "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }}, 
     185                    /*Abre o diálogo de criação de filtro a partir da mensagem:*/ 
     186                    "filterFromMsg": { 
     187                        "name": get_lang("Create filter from message"),  
     188                        "icon": "filter",  
     189                        callback: function (key, opt) { 
     190                            var msg_number = get_selected_messages(); 
     191                            var msg = onceOpenedHeadersMessages[current_folder][msg_number]; 
     192                            if (msg !== undefined) 
     193                            { 
     194                                filter_from_msg(msg); 
     195                            } 
     196                        }, 
     197                        disabled: is_filterFromMsg_disabled() 
     198                    }, 
    179199                    "archive": archive 
    180200                } 
  • sandbox/2.5.1-expresso2/expressoMail1_2/js/draw_api.js

    r7800 r7858  
    30043004                var option_export = '<span onclick="proxy_mensagens.export_all_messages()" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Export")+'</span> | '; 
    30053005                var report_error = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=reports_window("'+currentTab+'");>'+get_lang("Report error")+'</span> | ';  
    3006                 div_other_more_options.innerHTML += option_move + option_print + option_export + block_user +  report_error; 
     3006                // Opção do menu 'Mais Ações' para criar filtro a partir da mensagem aberta:  
     3007        var option_create_filter = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=filter_from_msg(onceOpenedHeadersMessages[\'' + html_entities(info_msg.msg_folder) + '\'][' + info_msg.msg_number + ']);>' + get_lang("Create filter from message") + '</span> | '; 
     3008        div_other_more_options.innerHTML += option_create_filter + option_move + option_print + option_export + block_user +  report_error; 
    30073009                 
    30083010                 
  • sandbox/2.5.1-expresso2/expressoMail1_2/setup/phpgw_pt-br.lang

    r7703 r7858  
    973973Error trying to send the message. Retry in a few seconds...     expressoMail1_2 pt-br   Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos... 
    974974Sending the message...  expressoMail1_2 pt-br   Enviando a mensagem... 
     975Create filter from message      expressoMail1_2 pt-br   Criar filtro a partir da mensagem 
     976 
  • sandbox/2.5.1-expresso2/prototype/modules/filters/edit-filter.ejs

    r7703 r7858  
    2828 
    2929                                </select> 
    30                                 <input type="text" name="criteriaValue[]" /> 
     30                                <input type="text" name="criteriaValue[]" value="<%= data.from %>" /> 
    3131                                <input type="hidden" name="criteriaType[]" value="from"/> 
    3232                        </fieldset> 
     
    5353 
    5454                                </select> 
    55                                 <input type="text" name="criteriaValue[]" /> 
     55                                <input type="text" name="criteriaValue[]" value="<%= data.subject %>" /> 
    5656                                <input type="hidden" name="criteriaType[]" value="subject"/> 
    5757                        </fieldset> 
  • sandbox/2.5.1-expresso2/prototype/modules/filters/filters.js

    r7753 r7858  
    603603 * Lista os filtros para o usuário 
    604604 */ 
    605 function list_filters(html){ 
    606         outOfficeVerify(); 
    607         for (var index in selectedMessages) { 
    608                 delete selectedMessages[index]; 
    609         } 
    610         if(html){ 
    611                 if( ! $(".filters-windows").length ) 
    612                         container = $('.expressomail-module-container').append("<div class='filters-windows'></div>").find(".filters-windows").html( html ).find(".expresso-window-container"); 
    613                 list_container = $('.expressomail-module-container').find(".rule-list-container"); 
    614         } 
    615         list_container = $(".expresso-window-filters").dialog({ 
    616                 title: get_lang('Filters'), 
    617             width:700, 
    618             modal: true, 
    619                 resizable: false, 
    620             closeOnEscape:true, 
    621             close:function(event, ui) { 
    622                     event.stopPropagation(); 
    623                         if(list_container.find(".cancel").length) 
    624                                 list_container.find(".cancel").trigger('click'); 
    625                         $(".dialog-head-buttonpane").hide(); 
    626             }, 
    627                 open: function () { 
    628                         $(".ui-dialog .ui-dialog-titlebar") 
    629                         .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>') 
    630                         .find('.ui-dialog-titlebar-minimize').click(function() { 
    631                                 $(".ui-dialog-buttonpane, .ui-dialog-content").toggle(); 
    632                                 $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin'); 
    633                         }); 
    634                         $(".dialog-head-buttonpane").show(); 
    635                 }, 
    636             autoOpen: false, 
    637                 buttons: [{ 
    638                         text : get_lang("Close"), 
    639                         click : function() { 
    640                                 $( this ).dialog( "close" ); 
    641                         } 
    642                 }] 
    643     }); 
    644         $(".ui-dialog-titlebar").after("<div class='dialog-head-buttonpane ui-dialog-buttonpane ui-widget-content ui-helper-clearfix' style='background-color: rgb(224, 238, 238); '><div class='ui-dialog-buttonset header-buttonpane'></div></div>"); 
    645         $(".dialog-head-buttonpane").css("padding", "5px"). 
    646         find(".header-buttonpane").html("<a href='#' class='button add' title='"+get_lang("Add new rule")+"'>"+get_lang("New rule")+"</a>"+(!outoffice ? "<a href='#' class='button add vacation' title='"+get_lang("Add rule out of office")+"'>"+get_lang("Out of office")+"</a>" : "")).find(".button").button(); 
    647  
    648         $(".ui-dialog-buttonpane.ui-widget-content").css("background-color", "#E0EEEE"); 
     605function list_filters(html) 
     606{ 
     607    outOfficeVerify(); 
     608    for(var index in selectedMessages) 
     609    { 
     610        delete selectedMessages[index]; 
     611    } 
     612 
     613    initialize_container(html); // Inicializa o container do diálogo de filtros 
     614 
     615    list_container = create_filter_dialog(); // Cria a estrutura básica do diálogo 
     616 
    649617        var list = DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', DataLayer.get("filter:detail", true)); 
    650618        list_container.html(list).find(".button").button(); 
     
    866834 
    867835        list_container.parent().find(".button.add:first").click(function(){ 
    868                 list_container.parent().find(".dialog-head-buttonpane").addClass("hidden"); 
    869                 DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true), delimiter: cyrus_delimiter},function(html){ 
    870                         list_container.html(html); 
    871                         var accord = list_container.find(".rule-details-container").accordion({autoHeight: false}); 
    872                         list_container.find(".button").button().filter(".forth").click(function(){ 
    873                                 accord.accordion('activate',1); 
    874                         }).end().filter(".forth2").click(function(){ 
    875                                 accord.accordion('activate',2); 
    876                         }).end().filter(".back").click(function(){ 
    877                                 accord.accordion('activate',0); 
    878                         }).end().filter(".back2").click(function(){ 
    879                                 accord.accordion('activate',1); 
    880                         }).end().filter(".cancel").click(function(){ 
    881                                 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
    882                         }).end().filter(".submit").click(function() { 
    883                                 if(valid_save()) 
    884                                         $(this).submit(); 
    885                                 else 
    886                                         return; 
    887                                 DataLayer.commit( 'filter',false,function(){ 
    888                                         if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 
    889                                                 for (var index in selectedMessages) { 
    890                                                         set_message_flag(index, action, false); 
    891                                                 } 
    892                                         } 
    893                                         DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 
    894                                         getFromAlertRules(); 
    895                                 }); 
    896                         }).end().filter('.button.search').click(function() { 
    897                                 if(valid_save()) 
    898                                         showGridMessages($(this)); 
    899                                 else 
    900                                         return; 
    901                         }); // end function click 
    902                 });     // end DataLayer.render 
     836        render_new_rule(); // Renderiza a tela de criação de nova regra de filtragem. 
    903837        }); 
    904838        list_container.parent().find(".button.add.vacation").click(function(){ 
     
    931865 
    932866 
     867/* 
     868    Inicializa o container do diálogo de gerenciamento de filtros. 
     869*/ 
     870function initialize_container (html) { 
     871    if(html) 
     872    { 
     873        if(!$(".filters-windows").length)  
     874        { 
     875            container = $('.expressomail-module-container').append("<div class='filters-windows'></div>").find(".filters-windows").html(html).find(".expresso-window-container"); 
     876        } 
     877    } 
     878} 
     879 
     880/* 
     881    Cria a estrutura básica do diálogo de gerenciamento de filtros. 
     882*/ 
     883 
     884function create_filter_dialog () { 
     885    var dialog = $(".expresso-window-filters").dialog( 
     886    { 
     887        title: get_lang('Filters'), 
     888        width: 700, 
     889        modal: true, 
     890        resizable: false, 
     891        closeOnEscape: true, 
     892        close: function(event, ui) 
     893        { 
     894            event.stopPropagation(); 
     895            if(list_container.find(".cancel").length) list_container.find(".cancel").trigger('click'); 
     896            $(".dialog-head-buttonpane").hide(); 
     897        }, 
     898        open: function() 
     899        { 
     900            $(".ui-dialog .ui-dialog-titlebar").append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>').find('.ui-dialog-titlebar-minimize').click(function() 
     901            { 
     902                $(".ui-dialog-buttonpane, .ui-dialog-content").toggle(); 
     903                $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin'); 
     904            }); 
     905            $(".dialog-head-buttonpane").show(); 
     906        }, 
     907        autoOpen: false, 
     908        buttons: [ 
     909        { 
     910            text: get_lang("Close"), 
     911            click: function() 
     912            { 
     913                $(this).dialog("close"); 
     914            } 
     915        }] 
     916    }); 
     917 
     918    $(".ui-dialog-titlebar").after("<div class='dialog-head-buttonpane ui-dialog-buttonpane ui-widget-content ui-helper-clearfix' style='background-color: rgb(224, 238, 238); '><div class='ui-dialog-buttonset header-buttonpane'></div></div>"); 
     919    $(".dialog-head-buttonpane").css("padding", "5px"). 
     920    find(".header-buttonpane").html("<a href='#' class='button add' title='" + get_lang("Add new rule") + "'>" + get_lang("New rule") + "</a>" + (!outoffice ? "<a href='#' class='button add vacation' title='" + get_lang("Add rule out of office") + "'>" + get_lang("Out of office") + "</a>" : "")).find(".button").button(); 
     921    $(".ui-dialog-buttonpane.ui-widget-content").css("background-color", "#E0EEEE"); 
     922 
     923    return dialog; 
     924} 
     925 
     926/* 
     927    Renderiza a tela de adição de uma nova regra de filtragem,  
     928    dentro do diálogo de gerenciamento de filtros. 
     929*/ 
     930function render_new_rule (from, subject) { 
     931    list_container.parent().find(".dialog-head-buttonpane").addClass("hidden"); 
     932    var data = { 
     933        folders: DataLayer.get("folder", true), 
     934        delimiter: cyrus_delimiter, 
     935        from: from, 
     936        subject: subject ? html_entities(subject) : subject 
     937    } 
     938 
     939    DataLayer.render(BASE_PATH + 'modules/filters/edit-filter.ejs', data, function(html) 
     940    { 
     941        list_container.html(html); 
     942        var accord = list_container.find(".rule-details-container").accordion( 
     943        { 
     944            autoHeight: false 
     945        }); 
     946        list_container.find(".button").button().filter(".forth").click(function() 
     947        { 
     948            accord.accordion('activate', 1); 
     949        }).end().filter(".forth2").click(function() 
     950        { 
     951            accord.accordion('activate', 2); 
     952        }).end().filter(".back").click(function() 
     953        { 
     954            accord.accordion('activate', 0); 
     955        }).end().filter(".back2").click(function() 
     956        { 
     957            accord.accordion('activate', 1); 
     958        }).end().filter(".cancel").click(function() 
     959        { 
     960            DataLayer.render(BASE_PATH + 'modules/filters/init.ejs', {}, list_filters); 
     961        }).end().filter(".submit").click(function() 
     962        { 
     963            if(valid_save()) $(this).submit(); 
     964            else return; 
     965            DataLayer.commit('filter', false, function() 
     966            { 
     967                if($('#gbox_fields-search-messages-grid').length > 0 && action != '') 
     968                { 
     969                    for(var index in selectedMessages) 
     970                    { 
     971                        set_message_flag(index, action, false); 
     972                    } 
     973                } 
     974                DataLayer.render(BASE_PATH + 'modules/filters/init.ejs', {}, list_filters); 
     975                getFromAlertRules(); 
     976            }); 
     977        }).end().filter('.button.search').click(function() 
     978        { 
     979            if(valid_save()) showGridMessages($(this)); 
     980            else return; 
     981        }); // end function click 
     982    }); // end DataLayer.render 
     983    } 
     984 
    933985/* Inicializa os filtros e chama o list_filters  
    934986 * Inicia a funcionalidade de filtros de mensagens 
Note: See TracChangeset for help on using the changeset viewer.