Changeset 6751


Ignore:
Timestamp:
07/10/12 13:13:27 (8 years ago)
Author:
marcieli
Message:

Ticket #2952 - Commit dos arquivos da implementação da nova funcionalidade.

Location:
sandbox/2.4.2-expresso1
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso1/expressoMail1_2/templates/default/main.css

    r6718 r6751  
    13991399        border-color : red; 
    14001400} 
     1401 
     1402/*freeow*/ 
     1403div.gray.alarmDeadline .button.delete 
     1404{ 
     1405/* 
     1406        display: block; 
     1407        position: absolute; 
     1408        right: 19px; 
     1409        top: 50px; 
     1410        */ 
     1411} 
     1412 
     1413/*div.gray.alarmDeadline ul.message-list{overflow: hidden;}*/ 
     1414 
     1415/*div.gray.alarmDeadline ul.message-list li{ margin: 5px 0;}*/ 
     1416 
     1417div.gray li{float: left; width: 253px;} 
     1418 
     1419div.gray li a.button.delete{float: right;} 
     1420 
  • sandbox/2.4.2-expresso1/prototype/modules/mail/js/followupflag.js

    r6641 r6751  
    178178         * #END: Implementação do widget de input-combobox 
    179179         */ 
     180         winElement.find('input[name="alarmDate"]').change(function(event){ 
     181                winElement.find('input[name="alarmTime"]').attr('disabled', ( $(this).val() == "" ? 'disabled' : false)); 
     182         }); 
     183 
     184         winElement.find('input[name="alarmDate"]').keyup(function(event){ 
     185                winElement.find('input[name="alarmTime"]').attr('disabled', ( $(this).val() == "" ? 'disabled' : false)).val(''); 
     186         }); 
    180187 
    181188        winElement.find('.button').button() 
     
    217224                                                        messageNumber : messageNumber, 
    218225                                                        isDone: isDone, 
     226                                                        isSent: 0, 
    219227                                                        backgroundColor : backgroundColor 
    220228                                                }, !!idFollowupflagged[i] ? {id: idFollowupflagged[i]} : {}); 
     
    414422        winElement.find('[name="alarm"]').click(function(){ 
    415423                if($(this).is(":checked")){ 
    416                         winElement.find('[name="alarmDate"],[name="alarmTime"]').removeAttr("disabled");                         
     424                        winElement.find('[name="alarmDate"]').removeAttr("disabled");                    
    417425                }else{ 
    418                         winElement.find('[name="alarmDate"],[name="alarmTime"]').attr("disabled","disabled"); 
     426                        winElement.find('[name="alarmDate"],[name="alarmTime"]').attr("disabled","disabled").val(''); 
    419427                } 
    420428        }); 
     429 
    421430        if(winElement.find('[name="alarm"]').is(":checked")){ 
    422431                winElement.find('[name="alarmDate"],[name="alarmTime"]').removeAttr("disabled"); 
    423432        } 
     433         
    424434        winElement.find('[name="done"]').click(function(){ 
    425435                if($(this).is(":checked")){ 
     
    492502 */ 
    493503function alarmFollowupflagged(alert_type, filter_list){ 
     504        var currentDate = new Date().toString("dd/MM/yyyy"); 
     505 
     506// ==========================================REFAZENDO TODO CODIGO=================================================== 
     507        var data = {alarmDeadline: false, doneDeadline: false, filtersAlarms: false}; 
     508 
    494509        switch(alert_type){ 
    495                 // carregar modais de sinalizadores 
    496510                case 'followupflagAlarms': 
    497511                        $('.doneDeadline').remove(); 
    498512                        $('.alarmDeadline').remove(); 
    499                         var toIterate = [ 
    500                                 { 
    501                                         attrDeadline: 'doneDeadline',  
    502                                         caption: {singular:'You have one undone message today:',  
    503                                         plural:"You have %1 undone messages today:" 
    504                                         }, 
    505                                         title: get_lang('Done'), 
    506                                         enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 
    507                                 }, 
    508                                 { 
    509                                         attrDeadline: 'alarmDeadline', 
    510                                         caption: { 
    511                                                 singular:'You have a follow up due for today:',  
    512                                                 plural:'You have %1 follow ups due for today:' 
    513                                         }, 
    514                                         title: get_lang('Follow ups'), 
    515                                         enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 
    516                                 } 
    517                         ]; 
    518                         break; 
    519                 // carregar modal de filtros 
     513                        data.alarmDeadline = $.cookie("fadeAlarm") != currentDate ? true : false; 
     514                        data.doneDeadline = $.cookie("fadeCompleted") != currentDate ? true : false; 
     515                break; 
    520516                case 'filtersAlarms': 
    521517                        $('.filtersDeadline').remove(); 
    522                         var toIterate = [ 
    523                                 { 
    524                                         attrDeadline: 'filtersDeadline', 
    525                                         caption: { 
    526                                                 singular:'You have an archived message:',  
    527                                                 plural:'You have %1 messages archived:' 
    528                                         }, 
    529                                         title: get_lang('Filter by sender'), 
    530                                         enable: ($.cookie("fadeFilterAlarm") != (new Date).toString("dd/MM/yyyy")) 
    531                                 } 
    532                         ]; 
    533                         break; 
    534                 // carregar todas as modais 
     518                        data.filtersAlarms = $.cookie("fadeFilterAlarm") != currentDate ? true : false; 
     519                break; 
    535520                default: 
    536521                        $('.gray').remove(); 
    537                         var toIterate = [ 
    538                                 { 
    539                                         attrDeadline: 'filtersDeadline', 
    540                                         caption: { 
    541                                                 singular:'You have an archived message:',  
    542                                                 plural:'You have %1 messages archived:' 
    543                                         }, 
     522                        data.alarmDeadline = $.cookie("fadeAlarm") != currentDate ? true : false; 
     523                        data.doneDeadline = $.cookie("fadeCompleted") != currentDate ? true : false; 
     524                        data.filtersAlarms = $.cookie("fadeFilterAlarm") != currentDate ? true : false; 
     525                break; 
     526        }; 
     527 
     528        var startDate = (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00'); 
     529        var endDate = (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00'); 
     530 
     531        if(data.alarmDeadline){ 
     532                var decodeAlarms = {'sent': [], 'task':[]};      
     533                alarms = DataLayer.get('followupflagged',  
     534                        { 
     535                                filter: ['AND', ['<', 'alarmDeadline', endDate], ['=','isSent','0'], ['=','isDone','0']],  
     536                                criteria: {deepness: 1} 
     537                        }); 
     538 
     539                if(alarms.length > 0){ 
     540                        var itens = []; 
     541                        for(var i = 0; i < alarms.length; i++){ 
     542 
     543                                var date = Date.parseExact(alarms[i]['alarmDeadline'], 'yyyy-MM-dd HH:mm:ss'); 
     544                        alarms[i]['alarmDeadline'] = date.toString('dd/MM HH:mm'); 
     545 
     546                                var nameFollowupflag = alarms[i]['followupflag']['id'] < 7 ? get_lang(alarms[i]['followupflag']['name']) : alarms[i]['followupflag']['name']; 
     547                                var li_alarm = alarms[i]['alarmDeadline'] + ' - ' + nameFollowupflag + ' - ' + alarms[i]['message']['headers']['subject']; 
     548 
     549                                if(alarms[i]['doneDeadline'] != ''){ 
     550                                        var dateDone = Date.parseExact(alarms[i]['doneDeadline'], 'yyyy-MM-dd HH:mm:ss'); 
     551                                        if(dateDone.getTime() < $.now()) 
     552                                                continue; 
     553                                } 
     554 
     555                                if(date.getTime() <= $.now()) 
     556                                        decodeAlarms.sent.push({ 
     557                                                "msg_number" : alarms[i]['messageNumber'], 
     558                                                "msg_folder" : alarms[i]['folderName'], 
     559                                                "a"                      : truncate(li_alarm, 34), 
     560                                                'id' : alarms[i].id 
     561                                        }); 
     562                        else 
     563                                decodeAlarms.task.push({ 
     564                                                a: truncate(li_alarm, 34), 
     565                                                sentTime:  date.getTime() / 1000, 
     566                                                id: alarms[i].id, 
     567                                                'msg_folder': alarms[i].folderName, 
     568                                                'msg_number': alarms[i].messageNumber 
     569                                        }); 
     570                        } 
     571 
     572                        if(decodeAlarms.task.length) 
     573                                alarmDeadline.load(decodeAlarms.task); 
     574 
     575                        if(decodeAlarms.sent.length) 
     576                                data.alarmDeadline = { 
     577                                                alarms: decodeAlarms.sent, 
     578                                                title: get_lang('Follow ups'), 
     579                                                caption: (itens.length == 1) ? get_lang('You have one undone message today:') : get_lang('You have %1 follow ups due for today:', decodeAlarms.sent.length), 
     580                                                type: 'alarmDeadline' 
     581                                        }; 
     582                        else 
     583                                data.alarmDeadline = false; 
     584                }else 
     585                        data.alarmDeadline = false; 
     586        } 
     587 
     588        if(data.doneDeadline){ 
     589                alarms = DataLayer.get('followupflagged', {filter: ['AND', ['>', 'doneDeadline', startDate], ['<', 'doneDeadline', endDate]], criteria: {deepness: 1}}); 
     590 
     591                if(alarms.length > 0){ 
     592                        var itens = []; 
     593                        for(var i = 0; i < alarms.length; i++){ 
     594 
     595                                var date = Date.parseExact(alarms[i]['doneDeadline'], 'yyyy-MM-dd HH:mm:ss'); 
     596                        alarms[i]['doneDeadline'] = date.toString('dd/MM HH:mm'); 
     597 
     598                                var nameFollowupflag = alarms[i]['followupflag']['id'] < 7 ? get_lang(alarms[i]['followupflag']['name']) : alarms[i]['followupflag']['name']; 
     599                                var li_alarm = alarms[i]['doneDeadline'] + ' - ' + nameFollowupflag + ' - ' + truncate(alarms[i]['message']['headers']['subject'], 15); 
     600 
     601                                itens.push({ 
     602                                        a: truncate(li_alarm, 34), 
     603                                        id: alarms[i].id, 
     604                                        'msg_folder': alarms[i].folderName, 
     605                                        'msg_number': alarms[i].messageNumber 
     606                                }); 
     607                        } 
     608 
     609                        data.doneDeadline = { 
     610                                        alarms: itens, 
     611                                        title: get_lang('Done'), 
     612                                        caption: (itens.length == 1) ? get_lang('You have one undone message today:') : get_lang('You have %1 follow ups due for today:', itens.length), 
     613                                        type: 'doneDeadline' 
     614                                }; 
     615                }else 
     616                        data.doneDeadline = false; 
     617        } 
     618 
     619        if(data.filtersAlarms){ 
     620 
     621                alarms = filter_list; 
     622 
     623                if(alarms.length > 0){ 
     624                        var itens = []; 
     625 
     626                        for(var i=0; i<alarms.length; i++){ 
     627                                 
     628                                alarms[i]['udate'] =  new Date(alarms[i]['udate']*1000).toString('dd/MM HH:mm'); 
     629                                var li_alarm = alarms[i]['udate'] + ' - ' + alarms[i]['from'] + ' - ' + alarms[i]['subject']; 
     630 
     631                                itens.push({ 
     632                                        'msg_number' : alarms[i]['msg_number'], 
     633                                        'msg_folder' : alarms[i]['msg_folder'], 
     634                                        a                        : truncate(html_entities(li_alarm), 34), 
     635                                        id : alarms[i].id 
     636                                });                              
     637                        } 
     638 
     639                        data.filtersAlarms = { 
     640                                        alarms: itens, 
    544641                                        title: get_lang('Filter by sender'), 
    545                                         enable: ($.cookie("fadeFilterAlarm") != (new Date).toString("dd/MM/yyyy")) 
    546                                 }, 
    547                                 { 
    548                                         attrDeadline: 'doneDeadline',  
    549                                         caption: {singular:'You have one undone message today:',  
    550                                         plural:"You have %1 undone messages today:" 
    551                                         }, 
    552                                         title: get_lang('Done'), 
    553                                         enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 
    554                                 },                               
    555                                 { 
    556                                         attrDeadline: 'alarmDeadline', 
    557                                         caption: { 
    558                                                 singular:'You have a follow up due for today:',  
    559                                                 plural:'You have %1 follow ups due for today:' 
    560                                         }, 
    561                                         title: get_lang('Follow ups'), 
    562                                         enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 
    563                                 } 
    564                         ]; 
    565                         break; 
    566         } 
    567         var i = 0; 
    568         // recupera e monta os dados para serem exibidos nas modais de alarmes 
    569         while (it = toIterate.pop()){ 
    570                 if (!it.enable) continue; 
    571                  
    572                 var alarmInRange = {}; 
    573                 // caso for alarme de sinalizadores 
    574                 if(it.attrDeadline == 'doneDeadline' || it.attrDeadline == 'alarmDeadline'){ 
    575                         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}}); 
    576                         if(alarmInRange.length > 0){ 
    577                                 for(var i=0; i<alarmInRange.length; i++){ 
    578                                         if(alarmInRange[i].isDone == 1){ 
    579                                                  alarmInRange.splice(i,1); 
    580                                                  i--; 
    581                                         } 
    582                                 } 
    583                         } 
    584                          
    585                         if(alarmInRange.length > 0){ 
    586                                 var messages_alarm = []; 
    587                                 for(var i=0; i<alarmInRange.length; i++){ 
    588                                         var date = Date.parseExact(alarmInRange[i][it.attrDeadline], 'yyyy-MM-dd HH:mm:ss'); 
    589                                         if(date) 
    590                                                 alarmInRange[i][it.attrDeadline] = date.toString('HH:mm'); 
    591                                          
    592                                         if(alarmInRange[i]['followupflag']['id'] < 7){ 
    593                                                 var nameFollowupflag = get_lang(alarmInRange[i]['followupflag']['name']); 
    594                                         }else{ 
    595                                                 var nameFollowupflag = alarmInRange[i]['followupflag']['name']; 
    596                                         } 
    597                                         var li_alarm = alarmInRange[i][it.attrDeadline] + ' - ' + nameFollowupflag + ' - ' + truncate(alarmInRange[i]['message']['headers']['subject'], 15); 
    598                                         messages_alarm.push({ 
    599                                                 "msg_number" : alarmInRange[i]['messageNumber'], 
    600                                                 "msg_folder" : alarmInRange[i]['folderName'], 
    601                                                 "a"                      : li_alarm 
    602                                         });                              
    603                                 } 
    604                         } 
    605                 }  
    606                 // caso for alarme de filtros 
    607                 else if(filter_list){ 
    608                         alarmInRange = filter_list; 
    609                         if(alarmInRange.length > 0){ 
    610                                 var messages_alarm = []; 
    611                                 for(var i=0; i<alarmInRange.length; i++){ 
    612                                         var d = new Date(alarmInRange[i]['udate']*1000); 
    613                                         var dia = d.getDate(); 
    614                                         if(dia < 10){ 
    615                                                 dia = "0" + dia; 
    616                                         } 
    617                                         var mes = (d.getMonth()) + 1; 
    618                                         if(mes < 10){ 
    619                                                 mes = "0" + mes; 
    620                                         } 
    621                                         var ano = d.getFullYear(); 
    622                                         var dtFormatada = dia + '/' + mes + '/' + ano; 
    623                                         alarmInRange[i]['udate'] = dtFormatada; 
    624                                                  
    625                                         var li_alarm = alarmInRange[i]['udate'] + ' ' + alarmInRange[i]['smalldate'] + ' - ' + alarmInRange[i]['from'] + ' - ' + truncate(alarmInRange[i]['subject'], 15); 
    626                                         messages_alarm.push({ 
    627                                                 "msg_number" : alarmInRange[i]['msg_number'], 
    628                                                 "msg_folder" : alarmInRange[i]['msg_folder'], 
    629                                                 "a"                      : li_alarm 
    630                                         });                              
    631                                 } 
    632                         } 
    633                 } 
    634                                  
    635                 if(alarmInRange.length > 0){ 
    636                         // monta o subtitulo da modal 
    637                         var caption = (alarmInRange.length == 1) ? 
    638                                 get_lang(it.caption.singular): 
    639                                 get_lang(it.caption.plural, alarmInRange.length); 
    640                         // monta o array de dados a ser passado para o template  
    641                         var data = { 
    642                                 alarmInRange : messages_alarm,  
    643                                 caption: caption,  
    644                                 type: it.attrDeadline, 
    645                                 captions: it.caption 
    646                         }; 
    647                         // tipo de modal a ser exibida 
    648                         var type_alarm = it.attrDeadline; 
    649                         //função chamada ao clicar no botão Ok da modal 
    650                         var ok_function = function(event, type, type_cookie){ 
    651                                 if($(event.target).parents('.'+type).find('[name="stopAlert"]').is(':checked')){ 
    652                                         $.cookie(type_cookie, (new Date).toString("dd/MM/yyyy"), {  
    653                                                 expires: 1  
    654                                         }); 
    655                                 } 
    656                         } 
    657                         // carrega o template dos alarmes e cria a modal utilizando o plugin freeow 
    658                         var dialogText = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", data); 
    659                         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>'; 
    660                         $("#freeow").freeow(titulo, dialogText, { 
    661                                 classes: ["gray", type_alarm], 
    662                                 autoHide: false,  
    663                                 startStyle: null, 
    664                                 onClick: function(event){ 
    665                                         var type = ''; 
    666                                         var type_cookie = ''; 
    667                                         if($(this).hasClass('alarmDeadline')){ 
    668                                                 type = 'alarmDeadline'; 
    669                                                 type_cookie = 'fadeAlarm'; 
    670                                         }else if($(this).hasClass('doneDeadline')){ 
    671                                                 type = 'doneDeadline'; 
    672                                                 type_cookie = 'fadeCompleted'; 
    673                                         }else if($(this).hasClass('filtersDeadline')){ 
    674                                                 type = 'filtersDeadline'; 
    675                                                 type_cookie = 'fadeFilterAlarm'; 
    676                                         } 
    677                                         if($(event.target).hasClass('stop-alert-alarm')){ 
    678                                                 return; 
    679                                         } 
    680                                         if($(event.target).hasClass('minimize-alarm')){ 
    681                                                 $('.'+type).find('.content-alarm').hide(); 
    682                                                 $(event.target).removeClass('minimize-alarm').addClass('maximize-alarm'); 
    683                                                 return; 
    684                                         } 
    685                                         if($(event.target).hasClass('maximize-alarm')){ 
    686                                                 $('.'+type).find('.content-alarm').show(); 
    687                                                 $(event.target).removeClass('maximize-alarm').addClass('minimize-alarm'); 
    688                                                 return; 
    689                                         } 
    690                                         if($(event.target).hasClass('confirm-alarm')){ 
    691                                                 ok_function(event, type, type_cookie); 
    692                                                 $('.'+type).remove(); 
    693                                                 return; 
    694                                         } 
    695                                         return false; 
    696                                 } 
    697                         }); 
    698                         // elementos do freeow desnecessários 
    699                         $('.gray .background .content p').remove(); 
    700                         $('.gray .icon').remove(); 
    701                         $('.gray .close').remove(); 
    702                          
    703                         // botão ok da modal com jquery button 
    704                         $('.content-alarm button').button(); 
    705                 }                
    706         } 
    707          
     642                                        caption: (itens.length == 1) ? get_lang('You have an archived message:') : get_lang('You have %1 messages archived:', itens.length), 
     643                                        type: 'filtersDeadline', 
     644                                        captions: { 
     645                                                singular:'You have one undone message today:',  
     646                                                plural:"You have %1 undone messages today:" 
     647                                        } 
     648                                }; 
     649 
     650                }else 
     651                        data.filtersAlarms = false; 
     652        } 
     653 
     654        for (var i in data) 
     655                if(data[i] != false) 
     656                        showAlarmsModal(data[i]); 
     657 
    708658        // controle de qual janela de alarme estará maximizada 
    709659        $('.gray').find('.content-alarm').hide(); 
     
    724674         
    725675} 
     676 
     677 
     678function showAlarmsModal(alarm){ 
     679         
     680        var ok_function = function(event, type, type_cookie){ 
     681                if($(event.target).parents('.'+type).find('[name="stopAlert"]').is(':checked')){ 
     682                        $.cookie(type_cookie, (new Date).toString("dd/MM/yyyy"), {  
     683                                expires: 1  
     684                        }); 
     685                } 
     686        } 
     687 
     688        // carrega o template dos alarmes e cria a modal utilizando o plugin freeow 
     689        var dialogText = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", alarm); 
     690        var titulo = '<div class="header-alarm"><span class="img_title"></span><span class="title-alarm"><strong>'+alarm.title+'</strong></span><span name="header-icon" class="maximize-alarm"></span></div>'; 
     691         
     692        $("#freeow").freeow(titulo, dialogText, { 
     693                classes: ["gray", alarm.type], 
     694                autoHide: false,  
     695                startStyle: null, 
     696                onClick: function(event){ 
     697                        var type = ''; 
     698                        var type_cookie = ''; 
     699                        if($(this).hasClass('alarmDeadline')){ 
     700                                type = 'alarmDeadline'; 
     701                                type_cookie = 'fadeAlarm'; 
     702                        }else if($(this).hasClass('doneDeadline')){ 
     703                                type = 'doneDeadline'; 
     704                                type_cookie = 'fadeCompleted'; 
     705                        }else if($(this).hasClass('filtersDeadline')){ 
     706                                type = 'filtersDeadline'; 
     707                                type_cookie = 'fadeFilterAlarm'; 
     708                        } 
     709                        if($(event.target).hasClass('stop-alert-alarm')){ 
     710                                return; 
     711                        } 
     712                        if($(event.target).hasClass('minimize-alarm')){ 
     713                                $('.'+type).find('.content-alarm').hide(); 
     714                                $(event.target).removeClass('minimize-alarm').addClass('maximize-alarm'); 
     715                                return; 
     716                        } 
     717                        if($(event.target).hasClass('maximize-alarm')){ 
     718                                $('.'+type).find('.content-alarm').show(); 
     719                                $(event.target).removeClass('maximize-alarm').addClass('minimize-alarm'); 
     720                                return; 
     721                        } 
     722                        if($(event.target).hasClass('confirm-alarm')){ 
     723                                ok_function(event, type, type_cookie); 
     724                                $('.'+type).remove(); 
     725                                return; 
     726                        } 
     727                        return false; 
     728                } 
     729        }); 
     730        // elementos do freeow desnecessários 
     731        $('.gray .background .content p').remove(); 
     732        $('.gray .icon').remove(); 
     733        $('.gray .close').remove(); 
     734 
     735        $('div.gray.alarmDeadline .button.delete').button({ 
     736                text: false, 
     737                icons:{ 
     738                        primary: 'ui-icon-close' 
     739                } 
     740        }) 
     741         
     742        // botão ok da modal com jquery button 
     743        $('.content-alarm button').button(); 
     744} 
     745 
     746function cancelAlarm(element, idAlarm, messageNumber, folderName){ 
     747 
     748        $(element).parents('li').remove(); 
     749 
     750        var view = 'div.gray.alarmDeadline'; 
     751        var length = $(view).find('ul.message-list li').length; 
     752 
     753        if(length > 0){ 
     754                var msg = ''; 
     755                if(length == 1) 
     756                        msg = get_lang( 'You have a follow up due for today:'); 
     757                else 
     758                        msg = get_lang('You have %1 follow ups due for today:', length); 
     759 
     760                $(view).find('span.subtitle-alarm strong').html(msg); 
     761        }else 
     762                $(view).remove(); 
     763 
     764        DataLayer.put('followupflagged',  
     765                { 
     766                        id: idAlarm ,  
     767                        isSent: '1', 
     768                        folderName: folderName, 
     769                        messageNumber: messageNumber, 
     770                        uid: User.me.uid 
     771                }); 
     772 
     773        DataLayer.commit(); 
     774 
     775} 
     776 
     777alarmDeadline = { 
     778 
     779 
     780        load: function(alarm){ 
     781                var currentDate = new Date().toString("dd/MM/yyyy") 
     782                if($.cookie("fadeAlarm") != currentDate) 
     783                        for(var i = 0; i < alarm.length; i++) 
     784                                this.addAlarm( alarm[i] ); 
     785        }, 
     786 
     787        addAlarm: function(alarm){ 
     788 
     789                    DataLayer.task( parseInt(alarm['sentTime']) , function( timestamp ){ 
     790                        var view = 'div.gray.alarmDeadline'; 
     791 
     792                        if(!$(view+' li.message-item.'+alarm.id).length){ 
     793 
     794                                var currentDate = new Date().toString("dd/MM/yyyy") 
     795                                        if($.cookie("fadeAlarm") != currentDate) 
     796                                         
     797                                        if($('div.gray.alarmDeadline').length){ 
     798                                                 
     799                                                $(view).find('ul.message-list').append(DataLayer.render("../prototype/modules/mail/templates/followupflag_alarmDeadline_add_item_list.ejs", alarm)) 
     800 
     801                                                var length = $(view).find('ul.message-list li').length; 
     802                                                var msg = ''; 
     803                                                if(length == 1) 
     804                                                        msg = get_lang( 'You have a follow up due for today:'); 
     805                                                else 
     806                                                        msg = get_lang('You have %1 follow ups due for today:', length); 
     807 
     808                                                $(view).find('span.subtitle-alarm strong').html(msg); 
     809 
     810                                                $(view+' .button.delete').button({ 
     811                                                                text: false, 
     812                                                                icons:{ 
     813                                                                        primary: 'ui-icon-close' 
     814                                                                } 
     815                                                        }); 
     816 
     817                                        }else{ 
     818                                                var item = { 
     819                                                                alarms: [alarm], 
     820                                                                title: get_lang('Follow ups'), 
     821                                                                caption: get_lang('You have one undone message today:'), 
     822                                                                type: 'alarmDeadline' 
     823                                                        }; 
     824                                                        showAlarmsModal(item); 
     825                                        } 
     826                                    } 
     827                                 
     828                    }); 
     829        } 
     830 
     831} 
    726832                 
    727833$('#main_table').ready(function(){ 
  • sandbox/2.4.2-expresso1/prototype/modules/mail/templates/followupflag_alarm_list.ejs

    r6487 r6751  
    33                <strong><%=data.caption %></strong> 
    44        </span> 
    5         <ul class="message-list"> 
     5        <ul class="message-list" style="float: left;"> 
    66        <% 
    7         for(var i=0; i<data.alarmInRange.length; i++){ 
     7        for(var i=0; i<data.alarms.length; i++){ 
    88                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);"; 
     9                        var openMessageScript = "$(this).parent().remove(); var msgs_count = $('.filtersDeadline').find('li.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.alarms[i].msg_number+"&msg_folder="+data.alarms[i].msg_folder+"&alarm=true', show_msg);"; 
    1010                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);"; 
     11                        var openMessageScript = "cExecute('$this.imap_functions.get_info_msg&msg_number="+data.alarms[i].msg_number+"&msg_folder="+data.alarms[i].msg_folder+"&alarm=true', show_msg);"; 
    1212        %> 
    13                 <li class="message-item"> 
     13                <li class="message-item <%= data.alarms[i].id %>"> 
    1414                        <a onclick="<%=openMessageScript%>"> 
    15                                 <%= data.alarmInRange[i].a %> 
     15                                <%= data.alarms[i].a %> 
    1616                        </a> 
     17                        <%if( data.type == 'alarmDeadline'){%> 
     18                                <a onclick='cancelAlarm(this, "<%= data.alarms[i].id %>", "<%= data.alarms[i].msg_number %>", "<%= data.alarms[i].msg_folder %>");' class="tiny button delete">close</a> 
     19                        <%}%> 
    1720                </li> 
    1821        <% 
  • sandbox/2.4.2-expresso1/prototype/modules/mail/templates/followupflag_configure.ejs

    r6294 r6751  
    7070                                <input type="checkbox" name="alarm" <%=(followupflagged.alarmDeadline) ? 'checked="checked"' : '' %> /><label><%= get_lang("Alarm")%>: </label> 
    7171                                <input type="text" name="alarmDate" class="date" size="12" value="<%=(followupflagged.alarmDeadline) ? followupflagged.alarmDeadline.toString('dd/MM/yyyy') : '' %>" />  
    72                                 <input type="hidden" name="alarmTime" class="time" size="8" value="00:01" /> 
     72                                <input type="text" name="alarmTime" class="time" size="8" disabled="disabled" value="<%=(followupflagged.alarmDeadline) ? followupflagged.alarmDeadline.toString('HH:mm') : '' %>" /> 
    7373                        </div>           
    7474                   <div class="completed-followup"> 
Note: See TracChangeset for help on using the changeset viewer.