Changeset 5571


Ignore:
Timestamp:
02/28/12 08:12:32 (12 years ago)
Author:
adriano
Message:

Ticket #2486 - correcoes de diversos bugs e refactory de parte do codigo dos alarms

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/common_functions.js

    r5554 r5571  
    704704                        folder_name = current_folder; 
    705705                }else{ 
    706                         var tr = Element(selectedMessageIds[i]+'_s'+id_border); 
    707                         folder_name = tr.getAttribute('name'); 
     706                        //var tr = Element(selectedMessageIds[i]+'_s'+id_border); 
     707                        //folder_name = tr.getAttribute('name'); 
     708                        folder_name = $('#'+selectedMessageIds[i]+'_s'+id_border).attr('name'); 
    708709                } 
    709710                messages.push(onceOpenedHeadersMessages[folder_name][selectedMessageIds[i]]); 
     
    711712 
    712713        if(!User.followupflags) 
    713                 User.followupflags = DataLayer.get('followupflag',true); 
     714                User.followupflags = DataLayer.get('followupflag', true); 
    714715        var data = { 
    715716                followupflags: User.followupflags, 
     
    721722                width:542, 
    722723                height:420, 
    723                 title:get_lang('Acompanhamento'), 
     724                title:get_lang('Follow up'), 
    724725                resizable:false, 
    725726                modal: true, 
    726727                closeOnEscape:true, 
    727728                close:function(event, ui) { 
    728                         $('.followupflag-configure-win').addClass('hidden'); 
     729                        //$('.followupflag-configure-win').addClass('hidden'); 
    729730                        select_all_search_messages(false, 'content_id_'+currentTab); 
    730731                        event.stopPropagation(); 
     
    733734        });      
    734735        init_followup({window:dialogElement, selectedMessages:selectedMessageIds}); 
    735         $('.followupflag-configure-win').removeClass('hidden'); 
     736        //$('.followupflag-configure-win').removeClass('hidden'); 
    736737        dialogElement.dialog("open"); 
    737738} 
     739function dump(arr,level) { 
     740    var dumped_text = ""; 
     741    if(!level) level = 0; 
     742 
     743    //The padding given at the beginning of the line. 
     744    var level_padding = ""; 
     745    for(var j=0;j<level+1;j++) level_padding += "    "; 
     746 
     747    if(typeof(arr) == 'object') { //Array/Hashes/Objects 
     748        for(var item in arr) { 
     749            var value = arr[item]; 
     750 
     751            if(typeof(value) == 'object') { //If it is an array, 
     752                dumped_text += level_padding + "'" + item + "' ...\n"; 
     753                dumped_text += dump(value,level+1); 
     754            } else { 
     755                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; 
     756            } 
     757        } 
     758    } else { //Stings/Chars/Numbers etc. 
     759        dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; 
     760    } 
     761    return dumped_text; 
     762}  
    738763 
    739764function open_rss(param){ 
  • trunk/expressoMail1_2/js/doiMenuData.js

    r5568 r5571  
    3434                         
    3535                        /**  
    36                          * Aply labels to selected messages 
     36                         * Apply labels to selected messages 
    3737                         */ 
    3838                        var isLabel = key.match(/label(.*)/); 
     
    8484                                } 
    8585                                DataLayer.commit(); 
    86                                         for (var i=0; i < messages.length; i++) { 
    87                                                 updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false}); 
    88                                         } 
     86                                for (var i=0; i < messages.length; i++) { 
     87                                        updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false}); 
     88                                } 
    8989                        } 
    9090                }, 
     
    153153        }, 
    154154        callback: function(key, options) { 
    155                  
     155                //TODO - default actions 
    156156        }, 
    157157        items: menuToolsItems 
     
    161161function updateLabelsColumn(messageInfo) { 
    162162        var msg_number = messageInfo.msg_number; 
    163         if(messageInfo.uid != '' && messageInfo.uid != 'undefined' && messageInfo.uid != null){ 
     163        if(!messageInfo.uid){ 
    164164                msg_number = messageInfo.uid; 
    165165        } 
     
    188188                                menuItems[labeleds[i].label.id] = labeleds[i].label; 
    189189                } else { 
    190                         //não tem labels 
     190                        //não existem labels 
    191191                        return false; 
    192192                } 
     
    201201                autoHide:true, 
    202202                callback: function(key, options) { 
    203                         //alert($(this).attr('id')); 
     203                        //TODO - default actions 
    204204                }, 
    205205                items: menuItems 
    206206        }); 
    207207} 
    208  
    209 /** 
    210  * TODO 
    211  * * ao clicar com o botao direito em cima da mensagem, selecionar a mensagem 
    212  * * clarear a cor do menu ferramentas 
    213  * * pintar o botao ferramentas, quando clicado, da cor do menu 
    214  *  
    215  */ 
  • trunk/expressoMail1_2/js/draw_api.js

    r5569 r5571  
    88 * formatação, etc.)  
    99 */ 
    10  
    11          
    1210onceOpenedHeadersMessages = {}; 
    1311 
     
    10251023          
    10261024        /** 
    1027          * Get the labels aplyed to the messages and saves the information  
     1025         * Get the labels applied to the messages and saves the information  
    10281026         * into message array  
    10291027         */ 
     
    10501048         
    10511049        /** 
    1052          * Get the followupflags aplyed to the messages and saves the information  
     1050         * Get the followupflags applied to the messages and saves the information  
    10531051         * into message array  
    10541052         */ 
  • trunk/expressoMail1_2/templates/default/index.tpl

    r5546 r5571  
    208208</div> 
    209209<div id="windowLabels" class="label-configure-win"></div> 
    210 <div id="followupFlag" class="followupflag-configure-win hidden"></div> 
     210<div id="followupFlag" class="followupflag-configure-win"></div> 
    211211<!-- END list --> 
  • trunk/prototype/modules/mail/css/followupflag.css

    r5533 r5571  
    1 .ZebraDialog_Body .footerMais,.footerMenos {cursor: pointer; color: #0f1dff;} 
    2 .ZebraDialog_Body .footerMais2,.footerMenos2 {cursor: pointer; color: #0f1dff;} 
    3 .ZebraDialog_Body .alert-flags a{ cursor: pointer;} 
    4 .ZebraDialog_Body .alert-flags li:hover{ text-decoration: underline;} 
    5  
    61.followupflag-configure-win { width:543px; height:412px !important;  }  
    72.followupflag-container {  
     
    7166        padding:0; 
    7267} 
     68 
     69 
     70 
     71.ZebraDialog.followupflag-alarm {} 
     72.ZebraDialog.followupflag-alarm  fieldset{border:none; margin:0; padding:3px 0;} 
     73.ZebraDialog.followupflag-alarm  fieldset input{margin-left:0; padding-left:3px 0;} 
     74.ZebraDialog.followupflag-alarm .message-list{overflow: hidden; height: 50px; list-style:none; padding-left:10px;} 
     75.ZebraDialog.followupflag-alarm .message-list li{width: 270px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis; cursor: pointer;} 
     76.ZebraDialog.followupflag-alarm .message-list li:hover{ text-decoration: underline;} 
     77.ZebraDialog.followupflag-alarm  .display-option { color:#2363a4; cursor: pointer;} 
  • trunk/prototype/modules/mail/js/followupflag.js

    r5564 r5571  
    1 //se  caso não existir nenhuma mensagem concluida para o dia atual, ele não mostra a modal. 
    2  if($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")){ 
    3         var alarmInRange = DataLayer.get('followupflagged', {filter: ['AND', ['>', 'alarmDeadline', (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00')], ['<', 'alarmDeadline', (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00')]], criteria: {deepness: 1}}); 
     1/** 
     2 * constrói as duas possíveis janela de alerta, utilizando o mesmo template 
     3 */ 
     4var toIterate = [ 
     5        { 
     6                attrDeadline: 'doneDeadline',  
     7                caption: {singular:'Você tem uma mensagem concluindo hoje:', plural:"Você tem %1 mensagens concluindo hoje:"}, 
     8                onOk: function(event){ 
     9                        if($(event.target).parents('.followupflag-alarm').find('[name="stopAlert"]').is(':checked')){ 
     10                                $.cookie("fadeCompleted", (new Date).toString("dd/MM/yyyy"), { expires: 1 }); 
     11                        } 
     12                }, 
     13                enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 
     14        }, 
     15        { 
     16                attrDeadline: 'alarmDeadline',  
     17                caption: {singular:'Você tem uma mensagem sinalizada para hoje:', plural:'Você tem %1 mensagens sinalizadas para hoje:'}, 
     18                onOk: function(event){ 
     19                        if($(event.target).parents('.followupflag-alarm').find('[name="stopAlert"]').is(':checked')){ 
     20                                $.cookie("fadeAlarm", (new Date).toString("dd/MM/yyyy"), { expires: 1 }); 
     21                        } 
     22                }, 
     23                enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 
     24        } 
     25]; 
     26 
     27while (it = toIterate.pop()){ 
     28        if (!it.enable) continue; 
     29         
     30        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')], ['<', toIterate.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00')]], criteria: {deepness: 1}}); 
    431        if(alarmInRange.length > 0){ 
    532                for(var i=0; i<alarmInRange.length; i++){ 
     
    734                        alarmInRange[i].alarmDeadline = date.toString('hh:mm'); 
    835                } 
    9                 var data = {alarmInRange : alarmInRange}; 
    10                 var valueZebra = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", data); 
    11                  
    12                 new $.Zebra_Dialog(valueZebra, { 
    13                 'buttons':  ['Ok'], 
    14                 'modal': false, 
    15                 'position': ['right - 20', 'bottom - 30'], 
    16                 'custom_class': 'zebraClass2', 
    17                 });      
    18                  
    19         $(".ZebraDialog_Body .footerMenos").hide() 
    20  
    21                 $(".ZebraDialog_Body .footerMais").click(function(){ 
    22                         $('.ZebraDialog').css('visibility','hidden'); 
    23                         $(this).parents('.ZebraDialog').css("visibility","visible"); 
    24                         $(this).parents('.ZebraDialog').animate( { top: '-=300px' } , 280) 
    25                         .find("ul.alert-flags").animate( { height: 375 } , 300); 
    26                         $(".ZebraDialog_Body .footerMais").hide(); 
    27                         $(".ZebraDialog_Body .footerMenos").show(); 
     36                var caption = (alarmInRange.length == 1) ? 
     37                        get_lang(it.caption.singular): 
     38                        get_lang(it.caption.plural, alarmInRange.length); 
     39                         
     40                var data = {alarmInRange : alarmInRange, caption: caption}; 
     41                var dialogText = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", data); 
     42                 
     43                /** 
     44                 * A última dialog criada é a dialog mais ao alto 
     45                 */ 
     46                var offsetHeight = $('.ZebraDialog.right-bottom:last').length ?  
     47                        $(window).height() - $('.ZebraDialog.right-bottom:last').position().top : 0; 
     48 
     49                /** 
     50                 * Se for a primeira, desloca para cima do rodapé do grid 
     51                 * caso contrário desloca para um pouco acima da última dialog criada 
     52                 */ 
     53                offsetHeight = !offsetHeight ? 35 : offsetHeight + 20 ; 
     54                var dialog = new $.Zebra_Dialog(dialogText, { 
     55                        'buttons':  ['Ok'], 
     56                        'modal': false, 
     57                        'vcenter_short_message': false, 
     58                        'position': ['right - 20', 'bottom - ' + offsetHeight.toString() ], 
     59                        'custom_class': 'right-bottom followupflag-alarm', 
     60                }).dialog; 
     61 
     62                $(".ZebraDialog.followupflag-alarm .ZebraDialog_Button0").click(it.onOk); 
     63                 
     64                $(".ZebraDialog.followupflag-alarm .display-options .more").click(function(event) { 
     65                        $(event.target).parents('.followupflag-alarm').find('.message-list').css('height', 'auto'); 
    2866                }); 
    29                 $(".ZebraDialog_Body .footermenos").click(function(){ 
    30                         $('.ZebraDialog').css('visibility','visible'); 
    31                         $(this).parents('.ZebraDialog').animate( { top: '+=300px' } , 280) 
    32                         .find("ul.alert-flags").animate( { height: 70 } , 300); 
    33                          
    34                         $(this).parents('.ZebraDialog').css({ 
    35                         }); 
    36                         $(".ZebraDialog_Body .footerMenos").hide(); 
    37                         $(".ZebraDialog_Body .footerMais").show(); 
    38                 }); 
    39                  
    40                  
    41                 $("ul.alert-flags li").css({ 
    42                         'width': '270px', 
    43                         'white-space': 'nowrap', 
    44                         'overflow': 'hidden', 
    45                         'text-overflow': 'ellipsis' 
    46                 }); 
    47                  
    48                 $("span.exc-ocul").css({ 
    49                         'float' : 'right', 
    50                         'margin-right' : '0', 
    51                         'color' : '#2363a4', 
    52                         'cursor' : 'pointer' 
    53                 }).parent("ul").css(); 
    54                  
    55                 $(".zebraClass2 .ZebraDialog_Buttons .ZebraDialog_Button0").click(function(){ 
    56                         var countCheckbox2 = $("input:checked").length; 
    57  
    58                         if(countCheckbox2 == 1){ 
    59                                 date2 = (new Date).toString("dd/MM/yyyy"); 
    60                                 $.cookie("fadeAlarm", date2 , { expires: 1 }); 
    61                         } 
    62                 }); 
     67                 
    6368        }                
    6469} 
    6570 
    66 if($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")){      
    67         var doneInRange = DataLayer.get('followupflagged', {filter: ['AND', ['>', 'doneDeadline', (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00')], ['<', 'doneDeadline', (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00')]], criteria: {deepness: 1}}); 
    68         if(doneInRange.length > 0){ 
    69                 for(var i=0; i<doneInRange.length; i++){ 
    70                         var date = Date.parseExact(doneInRange[i].doneDeadline, 'yyyy-MM-dd hh:mm:ss'); 
    71                         doneInRange[i].doneDeadline = date.toString('hh:mm'); 
    72                 } 
    73                 var data = {doneInRange : doneInRange}; 
    74                 var valueZebra = DataLayer.render("../prototype/modules/mail/templates/followupflag_completed_list.ejs", data); 
    75                  
    76                 //verificando se a primeira "model de alarme" está oculta ou não.. 
    77                 //caso ela esteja caira nesse primeiro if, que coloca a model de "concluidos" no lugar da model de alarme. 
    78                 if($(".zebraClass2").length == 0){ 
    79                         new $.Zebra_Dialog(valueZebra, { 
    80                                 'buttons':  ['Ok'], 
    81                                 'modal': false, 
    82                                 'position': ['right - 20', 'bottom - 30' ], 
    83                                 'custom_class': 'zebraClass', 
    84                                 });               
    85                 }else{ 
    86                         new $.Zebra_Dialog(valueZebra, { 
    87                                 'buttons':  ['Ok'], 
    88                                 'modal': false, 
    89                                 'position': ['right - 20', 'bottom - 275' ], 
    90                                 'custom_class': 'zebraClass', 
    91                                 });      
    92                 } 
    93                  
    94         $(".ZebraDialog_Body .footerMenos2").hide() 
    95  
    96                 $(".ZebraDialog_Body .footerMais2").click(function(){ 
    97                         $('.ZebraDialog').css('visibility','hidden'); 
    98                         $(this).parents('.ZebraDialog').css("visibility","visible"); 
    99                         if($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")){ 
    100                                 $(this).parents('.ZebraDialog').animate( { top: '-=60px' } , 280) 
    101                                 .find("ul.alert-flags").animate( { height: 360 } , 300); 
    102                         } else { 
    103                                 $(this).parents('.ZebraDialog').animate( { top: '-=300px' } , 280) 
    104                                 .find("ul.alert-flags").animate( { height: 360 } , 300); 
    105                         } 
    106                          
    107                         $(".ZebraDialog_Body .footerMais2").hide(); 
    108                         $(".ZebraDialog_Body .footerMenos2").show(); 
    109                 }); 
    110                 $(".ZebraDialog_Body .footermenos2").click(function(){ 
    111                         $('.ZebraDialog').css('visibility','visible'); 
    112                         if($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")){ 
    113                                 $(this).parents('.ZebraDialog').animate( { top: '+=60px' } , 280) 
    114                                 .find("ul.alert-flags").animate( { height: 70 } , 300); 
    115                         } else { 
    116                                 $(this).parents('.ZebraDialog').animate( { top: '+=300px' } , 280) 
    117                                 .find("ul.alert-flags").animate( { height: 70 } , 300); 
    118                         } 
    119                         $(this).parents('.ZebraDialog').css({ 
    120                         }); 
    121                         $(".ZebraDialog_Body .footerMenos2").hide(); 
    122                         $(".ZebraDialog_Body .footerMais2").show(); 
    123                 }); 
    124                  
    125                  
    126                 $("ul.alert-flags li").css({ 
    127                         'width': '270px', 
    128                         'white-space': 'nowrap', 
    129                         'overflow': 'hidden', 
    130                         'text-overflow': 'ellipsis' 
    131                 }); 
    132                  
    133                 $("span.exc-ocul").css({ 
    134                         'float' : 'right', 
    135                         'margin-right' : '0', 
    136                         'color' : '#2363a4', 
    137                         'cursor' : 'pointer' 
    138                 }).parent("ul").css(); 
    139                  
    140                 $(".zebraClass .ZebraDialog_Buttons .ZebraDialog_Button0").click(function(){ 
    141                  
    142                         var countCheckbox1 = $("input:checked").length; 
    143  
    144                         if(countCheckbox1 == 1){ 
    145                                 date1 = (new Date).toString("dd/MM/yyyy"); 
    146                                 $.cookie("fadeCompleted", date1 , { expires: 1 }); 
    147                         } 
    148                 }); 
    149         }                
    150 } 
    15171function init_followup(data){ 
    15272 
     
    423343        }); 
    424344         
    425         if(winElement.find("#selectCor option:selected").val() == "custom"){ 
    426                 winElement.find("#selectCor").trigger("change"); 
     345        if(winElement.find('[name="setColor"] option:selected').val() == "custom"){ 
     346                winElement.find('[name="setColor"]').trigger("change"); 
    427347        } 
    428348 
     
    445365                 
    446366        }); 
    447         if(winElement.find("#selectCor option:selected").val() == "custom"){ 
     367        if(winElement.find('[name="setColor"] option:selected').val() == "custom"){ 
    448368                winElement.find(".colorwell").focus(); 
    449369        } 
  • trunk/prototype/modules/mail/templates/followupflag_alarm_list.ejs

    r5533 r5571  
    1 <p class="title"><strong>Você tem <%= data.alarmInRange.length %> <%= (data.alarmInRange.length == 1) ? 'mensagem sinalizada para hoje.' : 'mensagens sinalizadas para hoje.'%> </p></strong> 
    2                                         <ul class="alert-flags" style="overflow: hidden; height: 70px;"> 
    3          
     1<p class="title"><strong><%= data.caption %> </strong></p> 
     2 
     3<ul class="message-list"> 
    44<% 
    55for(var i=0; i<data.alarmInRange.length; i++){ 
     6 
     7        var openMessageScript = "cExecute('$this.imap_functions.get_info_msg&msg_number="+data.alarmInRange[i].messageNumber+"&msg_folder="+data.alarmInRange[i].folderName+"', show_msg);"; 
    68%> 
    7  
    8         <li><a onclick="cExecute('$this.imap_functions.get_info_msg&msg_number=<%=data.alarmInRange[i].messageNumber %>&msg_folder=<%= data.alarmInRange[i].folderName %>', show_msg);"><%= data.alarmInRange[i].alarmDeadline %> - <%= data.alarmInRange[i].followupflag.name %> - <%= data.alarmInRange[i].message.headers.subject %></a></li> 
     9        <li class="message-item"> 
     10                <a onclick="<%=openMessageScript%>"> 
     11                        <%= data.alarmInRange[i].alarmDeadline %> - <%= data.alarmInRange[i].followupflag.name %> - <%= data.alarmInRange[i].message.headers.subject %> 
     12                </a> 
     13        </li> 
    914<% 
    1015} 
    1116%> 
    12                                         </ul>  
    13                                          
    14 <br> 
    15 <a class="footerMais">ver mais</a><a class="footerMenos">ver menos</a> 
    16 <br><br> 
    17         <input type="checkbox" name="fadeModel2"> Não mostrar essa janela por hoje. 
     17</ul>  
     18 
     19<div class="display-options"> 
     20        <a class="display-option more">ver mais</a> 
     21        <a class="display-option less" style="display:none;">ver menos</a> 
     22</div> 
     23<fieldset class="alert-options"> 
     24        <input type="checkbox" name="stopAlert"> <label>Não mostrar essa janela por hoje.</label> 
     25</fieldset> 
  • trunk/prototype/modules/mail/templates/followupflag_configure.ejs

    r5567 r5571  
    4040                } 
    4141        } 
    42 typeFlag = DataLayer.get("followupflag", id = data.messages[0].followupflagged.followupflagId ).name; 
    43 //followupflagged.followupflag.name 
    4442%> 
    4543<div class="followupflag-container"> 
     
    5250                                <% for(var i=0; i<data.followupflags.length; i++) {  %> 
    5351                                         
    54                                         <% var selected = (data.followupflags[i].name == typeFlag ) ? 'selected="selected"' : '' %>  
     52                                        <% var selected = (data.followupflags[i].id == followupflagged.followupflagId ) ? 'selected="selected"' : '' %>  
    5553                                        <option value="<%= data.followupflags[i].id %>" <%= selected %>><%= data.followupflags[i].name %></option> 
    5654                                <% } %> 
     
    8785                                } 
    8886                        %> 
    89                         <select id="selectCor" name="setColor"> 
    90                                 <option value="default" <%= (defaultColor) ? 'selected="selected"' : ''%> ><%= get_lang("Default")%></option> 
    91                                 <option value="custom" <%= (!defaultColor) ? 'selected="selected"' : ''%> ><%= get_lang("Custom")%></option> 
     87                        <select name="setColor"> 
     88                                <option value="default" <%= (defaultColor && !followupflagged.backgroundColor) ? 'selected="selected"' : ''%> ><%= get_lang("Default")%></option> 
     89                                <option value="custom" <%= (!defaultColor && followupflagged.backgroundColor) ? 'selected="selected"' : ''%> ><%= get_lang("Custom")%></option> 
    9290                        </select> 
    9391                </div> 
     
    116114        </div> 
    117115</div>  
    118  
    119 <!-- 
    120         TODO 
    121         ** Vai ter que ser arrumado a parte de buscar o tipo do sinalizador atual. 
    122 --> 
Note: See TracChangeset for help on using the changeset viewer.