Ignore:
Timestamp:
06/08/12 17:22:36 (12 years ago)
Author:
eduardow
Message:

Ticket #2846 - Melhorias e inconsistências gerais no modulo Expresso Calendar.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4/prototype/modules/calendar/js/calendar.codecs.js

    r6420 r6453  
    144144}); 
    145145 
    146 Refresh = { 
    147     //Tempo em que após a ultima sincronização será verificado atualizações 
    148     timeRefresh : 180, 
    149     clookRefresh: false, 
    150  
    151     init: function(){ 
    152  
    153         delete DataLayer.tasks[this.clookRefresh]; 
    154          
    155         //Realiza agendamentos de atualização de view somente se o módulo aberto for expressoCalendar 
    156         if(User.moduleName == "expressoCalendar"){ 
    157             this.clookRefresh = (parseInt(($.now()) / 1000) + this.timeRefresh); 
    158  
    159             DataLayer.task( this.clookRefresh , function(){ 
    160                 Calendar.rerenderView(true); 
    161             }); 
    162         } 
    163     } 
    164 } 
    165  
    166 Calendar = { 
    167    
    168     load: function(){ 
    169         this.lastView = 0; 
    170         var filter = ['=', 'user', User.me.id]; 
    171         if(!!User.me.gidNumber){ 
    172             if(!$.isArray(User.me.gidNumber)) 
    173                 User.me.gidNumber = [User.me.gidNumber]; 
    174  
    175             filter = ['OR', filter, ['IN', 'user', User.me.gidNumber]]; 
    176         } 
    177  
    178         //var descart = DataLayer.get("calendarSignature", {filter: filter, criteria: {deepness: 2}}); 
    179         this.signatures  = DataLayer.get("calendarSignature", { 
    180             filter: filter,  
    181             criteria: { 
    182                 deepness: 2 
    183             } 
    184         }); 
    185            
    186     var prevSources = this.sources; 
    187      
    188     this.sources = DataLayer.encode( "calendarSignature:calendar", this.signatures ); 
    189  
    190      if( prevSources ) 
    191     { 
    192         var newSources = this.sources.slice(); 
    193  
    194         for( var i = 0; i < newSources.length; i++ ) 
    195             $('#calendar').fullCalendar( 'addEventSource', newSources[i] ); 
    196  
    197         for( var i = 0; i < prevSources.length; i++ ) 
    198             $('#calendar').fullCalendar( 'removeEventSource', prevSources[i] ); 
    199     } 
    200  
    201     this.calendarIds = [], this.signatureOf = {}, this.calendars = [], this.calendarOf= {}; 
    202  
    203     for( var i = 0; i < this.signatures.length; i++ ){ 
    204         if(this.signatures[i].isOwner == "0") 
    205             this.signatures[i].permission =  DataLayer.encode('calendarToPermission:detail', this.signatures[i].permission); 
    206         this.signatureOf[ this.calendarIds[i] = ( this.calendars[ this.calendars.length ] = this.calendarOf[ this.signatures[i].id ] = this.signatures[i].calendar ).id ] = this.signatures[i]; 
    207     } 
    208  
    209     delete Calendar.currentViewKey; 
    210     Refresh.init(); 
    211     }, 
    212  
    213     rerenderView: function(force){ 
    214         //TODO - Remover if quando centralizar o objeto User que contem as informações do usuário logado em um local acessível a todos módulos 
    215         if(User.moduleName == "expressoCalendar"){ 
    216             if((typeof($tabs) != "undefined") && $tabs.tabs('option' ,'selected') == 0){ 
    217                 if(force){ 
    218                     delete Calendar.currentViewKey; 
    219                     $('#calendar').fullCalendar( 'refetchEvents' ); 
    220  
    221                     //Recarrega os alarmes de eventos     
    222                     Alarms.load(); 
    223  
    224                     Refresh.init(); 
    225                 } 
    226  
    227                 var calendarNotSelected = getSelectedCalendars( true ); 
    228                 for(var i = 0; i < calendarNotSelected.length; i++) 
    229                         if(!!Calendar.currentView[ calendarNotSelected[i] ]) 
    230                         Calendar.currentView[ calendarNotSelected[i] ].hidden = true; 
    231  
    232                 $('#calendar').fullCalendar( 'refetchEvents' );  
    233  
    234                 contentMenu(); 
    235             }else if((typeof($tabs) != "undefined") && $tabs.tabs('option' ,'selected') != 0) 
    236                 pageselectCallback($('.events-list-win.active [name=keyword]').val(), 0); 
    237         } 
    238     } 
    239 } 
    240  
    241 Alarms = { 
    242     load: function(){ 
    243         var eventsDay = DataLayer.get('alarm:schedulable',['=', 'date', Date.today().getTime()]); 
    244         if(eventsDay) 
    245         for(var i = 0; i < eventsDay.length; i++){ 
    246             this.addAlarm( eventsDay[i] ); 
    247         } 
    248     }, 
    249          
    250     addAlarm: function( eventDay ){             
    251         if(!DataLayer.tasks[parseInt(eventDay.sendTime)]){ 
    252             DataLayer.task( parseInt(eventDay.sendTime) , function( timestamp ){ 
    253                 var path = User.moduleName == 'expressoCalendar' ? '' : '../prototype/modules/calendar/'; 
    254                 DataLayer.render(path+'templates/alarm.ejs',{ 
    255                     event: eventDay 
    256                 }, function( html ){                                 
    257                     $.Zebra_Dialog(html , { 
    258                         'type':     'question', 
    259                         'overlay_opacity': '0.5', 
    260                         'buttons':  ['Fechar'], 
    261                         'onClose':  function(clicked) {} 
    262                     }); 
    263                 }); 
    264             }); 
    265         } 
    266     } 
    267 } 
    268  
    269146DataLayer.codec( "modulePreference", "detail", { 
    270147    decoder: function( evtObj ){ 
     
    309186    } 
    310187}); 
    311  
    312 User.init(); 
    313 Calendar.load(); 
    314188 
    315189/*Todo Melhorias serão feitas na API*/ 
     
    475349            return { 
    476350                participant : meAttendee(form.attendee),  
    477                 startTime: Date.parseExact(form.startDate + (!!form.allDay ? " 00:00": " "+$.trim(form.startHour)) , formatString ).toString('yyyy-MM-dd HH:mm:00'), 
    478                 endTime:  Date.parseExact(form.endDate + ( !!form.allDay ? " 00:00": " "+$.trim(form.endHour)), formatString ).toString('yyyy-MM-dd HH:mm:00'), 
     351                startTime: Date.parseExact(form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'),  
     352                endTime:  Date.parseExact(form.endDate + " "+$.trim(form.endHour), formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'),  
    479353                allDay: ( !!form.allDay ? 1 : 0 ), 
    480354                schedulable: form.idEvent 
     
    569443                            if(form.startDate){ 
    570444                                var tzId =  DataLayer.get('schedulable', form.idEvent).timezone || User.preferences.timezone, 
    571                                 formatString = ( typeof form.allDay !== "undefined" && !!form.allDay )? pref.dateFormat+" HH:mm" : pref.dateFormat + " " + pref.hourFormat; 
     445                                formatString = pref.dateFormat + " " + pref.hourFormat; 
    572446                                                                 
    573447                                DataLayer.put('notification', { 
     
    766640    patati['byday'] = day.join(','); 
    767641 
    768     var formatString = ( typeof form.allDay !== "undefined" && !!form.allDay )? User.preferences.dateFormat+" HH:mm" : User.preferences.dateFormat + " " + User.preferences.hourFormat; 
    769  
    770     var date = Date.parseExact( form.startDate + (!!form.allDay ? " 00:00": " "+$.trim(form.startHour)) , formatString ); 
    771          
    772     patati['startTime'] = date.toString('yyyy-MM-dd HH:mm:00'); 
     642    var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat;  
     643   
     644    patati['startTime'] = Date.parseExact( form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00');  
    773645         
    774646    if( !patati['byday'] ) 
     
    782654                break; 
    783655            case 'yearly': 
    784                 patati['byyearday'] = (1 + date.getDayOfYear()); 
     656                patati['byyearday'] = (1 + date.getDayOfYear());  
    785657                break; 
    786658            default : 
     
    792664         
    793665    if (($(".endRepeat").val() == 'customDate')) 
    794         patati['endTime'] = Date.parseExact( $(".customDateEnd").val() + (!!form.allDay ? " 00:00": " "+$.trim(form.endHour)) , formatString ).toString('yyyy-MM-dd HH:mm:00'); 
    795          
    796     patati['interval']  = $(".eventInterval").val(); 
     666        patati['endTime'] = Date.parseExact( $(".customDateEnd").val() + (" "+$.trim(form.endHour)) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00');  
     667    
     668 patati['interval']  = $(".eventInterval").val(); 
    797669 
    798670    /** 
     
    841713            var tzId =  form.timezone || Calendar.signatureOf[form.calendar].calendar.timezone || User.preferences.timezone, 
    842714 
    843             formatString = ( typeof form.allDay !== "undefined" && !!form.allDay )? pref.dateFormat+" HH:mm" : pref.dateFormat + " " + pref.hourFormat; 
     715            formatString = pref.dateFormat + " " + pref.hourFormat; 
    844716 
    845717            var Owner = decodeOwnerCalendar(form.calendar); 
     
    847719            return DataLayer.merge({ 
    848720                "class": form["class"], 
    849                 startTime: Date.parseExact(form.startDate + (!!form.allDay ? " 00:00": " "+$.trim(form.startHour)) , formatString ).toString('yyyy-MM-dd HH:mm:00'), 
    850                 endTime:  Date.parseExact(form.endDate + ( !!form.allDay ? " 00:00": " "+$.trim(form.endHour)), formatString ).toString('yyyy-MM-dd HH:mm:00'),  //+ (!!form.allDay ? 86400000 : 0) , 
     721                startTime: Date.parseExact(form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'),  
     722                endTime:  Date.parseExact(form.endDate + " "+$.trim(form.endHour), formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'),  //+ (!!form.allDay ? 86400000 : 0) ,  
    851723                allDay: ( !!form.allDay ? 1 : 0 ),        
    852724                id: form.idEvent, 
     
    12391111}); 
    12401112 
    1241 Alarms.load(); 
     1113User.init(); 
    12421114 
    12431115// DataLayer.decoder( "participant", "detail", function( form ){ 
Note: See TracChangeset for help on using the changeset viewer.