Changeset 6444 for trunk


Ignore:
Timestamp:
06/07/12 21:13:08 (12 years ago)
Author:
acoutinho
Message:

Ticket #2846 - Melhorias e inconsistências gerais no modulo expressoCalendar

Location:
trunk
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/index.php

    r5804 r6444  
    3434             
    3535            <script type="text/javascript" src="../prototype/modules/calendar/js/calendar.codecs.js"></script> 
     36            <script type="text/javascript" src="../prototype/modules/calendar/js/load.js"></script> 
    3637             
    3738            <script type="text/javascript" src="js/jscode/assing_calendar.js"></script> 
  • trunk/expressoMail1_2/js/main.js

    r6426 r6444  
    35333533                //$.ajax({ url: "../expressoCalendar/index.php", async: false}); 
    35343534                //$.ajax({url: "../prototype/modules/calendar/js/calendar.date.js", async: false, beforeSend: function( xhr ) { xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     3535                $.ajax({url: "../prototype/modules/calendar/js/load.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    35353536                $.ajax({url: "../prototype/modules/calendar/js/map.disponibility.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    35363537                $.ajax({url: "../prototype/modules/calendar/js/helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
  • trunk/prototype/api/datalayer.js

    r6443 r6444  
    631631     
    632632    rollback: function( concept, ids ){ 
    633        
     633    if(!DataLayer.storage.cache[':diff']) 
     634                return false; 
    634635        if(concept){ 
    635636                if(ids){ 
  • trunk/prototype/modules/calendar/js/calendar.codecs.js

    r6419 r6444  
    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'] ) 
     
    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'); 
     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'); 
    795667         
    796668    patati['interval']  = $(".eventInterval").val(); 
     
    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 ){ 
  • trunk/prototype/modules/calendar/js/calendar.date.js

    r5510 r6444  
    143143                return dateFormat( date, format.replace(/m/g, 'M') ); 
    144144 
     145        }, 
     146 
     147        toString: function(date, format){ 
     148                        return dateFormat( date, format.replace(/M/g, 'm') ); 
     149        }, 
     150         
     151        decodeRange: function(date, range){ 
     152                        return (parseInt(date.getTime()) + (range * 60000)); 
    145153        } 
    146          
    147          
    148154                 
    149155} 
  • trunk/prototype/modules/calendar/js/helpers.js

    r6412 r6444  
    1313 
    1414function validDateEvent(){ 
     15         
     16        var errors = { 
     17                'emptyInitData': 'Por favor, informe uma data inicial', 
     18                'emptyEndData': 'Por favor, informe uma data final', 
     19                'emptyInitHour': 'Por favor, informe uma hora inicial', 
     20                'emptyEndHour': 'Por favor, informe uma hora final', 
     21                 
     22                'invalidInitData' : 'Data inicial inválida', 
     23                'invalidEndData' : 'Data final inválida', 
     24                 
     25                'equalData' : 'Hora inicial igual a final', 
     26                'theirData' : 'Hora final menor que a inicial', 
     27                 
     28                'emptyOcurrence' : 'Por favor, informe o número de ocorrências', 
     29                'invalidOcurrence' : 'Por favor, informe um valor válido para a quantidade de ocorrências', 
     30                 
     31                'emptyInterval' : 'Por favor, informe o intervalo', 
     32                'invalidInterval' : 'Por favor informe um valor válido para o intervalo' 
     33        }; 
     34 
    1535    var start_date = $(".new-event-win.active .start-date").val(); 
    1636    var end_date   = $(".new-event-win.active .end-date").val(); 
     
    2343     
    2444    if(start_date == "") 
    25         return 'Por favor, informe uma data inicial'; 
     45                return errors['emptyInitData']; 
    2646    else if(end_date == "") 
    27         return 'Por favor, informe uma data final'; 
     47                return errors['emptyEndData']; 
    2848    else if(!isAllDay && start_time == "") 
    29         return 'Por favor, informe uma hora inicial'; 
     49                return errors['emptyInitHour']; 
    3050    else if(!isAllDay && end_time == "") 
    31         return 'Por favor, informe uma hora final'; 
    32          
    33     var formatString = (isAllDay)? User.preferences.dateFormat+" HH:mm" : User.preferences.dateFormat + " " + User.preferences.hourFormat; 
    34                  
    35     var startDate = Date.parseExact( isAllDay ? start_date+ " 00:00": start_date + " " + $.trim(start_time) , formatString ); 
    36     var endDate = Date.parseExact( isAllDay ? end_date+ " 00:00": end_date + " " + $.trim(end_time) , formatString ); 
     51                return errors['emptyEndHour']; 
     52         
     53    var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat; 
     54                 
     55    var startDate = Date.parseExact( start_date + " " + $.trim(start_time) , formatString ); 
     56    var endDate = Date.parseExact( end_date + " " + $.trim(end_time) , formatString ); 
    3757 
    3858    if(startDate == null || startDate.getTime() < 0 ) 
    39         return 'Data inicial inválida'; 
     59                return errors['invalidInitData']; 
    4060    if(endDate == null || endDate.getTime() < 0) 
    41         return 'Data final inválida'; 
    42          
    43     if((endDate.compareTo(startDate) != 1) && !((endDate.compareTo(startDate) == 0) && (isAllDay))){ 
    44         return (start_date == end_date) ?  
    45         ((end_time == start_time) ? 'Hora inicial igual a final' : 'Hora final menor que a inicial') : 
    46         'Data final menor que a inicial'; 
    47     } 
     61                return errors['invalidEndData']; 
     62         
     63        if(isAllDay){ 
     64                startDate.clearTime(); 
     65                endDate.clearTime(); 
     66                if(endDate.compareTo(startDate) == -1) 
     67                        return errors['theirData']; 
     68        }else{ 
     69                var conditon = endDate.compareTo(startDate); 
     70                if(conditon != 1)  
     71                        return errors[conditon == 0 ? 'equalData' : 'theirData']; 
     72        } 
    4873     
    49     if (customDate){      
    50         if ( !($('.new-event-win.active .customDateEnd').val().length) ) 
    51            return 'Por favor, informe uma data final';      
    52     } 
    53      
     74    if (customDate)     
     75                if ( !($('.new-event-win.active .customDateEnd').val().length) ) 
     76                   return errors['emptyEndData']; 
     77 
    5478    if (occurrences){ 
    55         if ( !($('.occurrencesEnd').val().length) )  
    56            return 'Por favor, informe o número de ocorrências'; 
    57        else if (parseInt($('.occurrencesEnd').val(),10) <= 0 || parseInt($('.occurrencesEnd').val(),10).toString() == "NaN") 
    58            return 'Por favor, informe um valor válido para a quantidade de ocorrências'; 
    59     } 
     79                if ( !($('.occurrencesEnd').val().length) )  
     80                   return errors['emptyOcurrence']; 
     81                else if (parseInt($('.occurrencesEnd').val(),10) <= 0 || parseInt($('.occurrencesEnd').val(),10).toString() == "NaN") 
     82                   return errors['invalidOcurrence']; 
     83        } 
    6084 
    6185    if (!($('.new-event-win.active p.input-group.finish_event.repeat-in').hasClass('hidden'))){ 
    6286        if (!eventInterval.length) 
    63             return 'Por favor, informe o intervalo'; 
     87            return errors['emptyInterval']; 
    6488        else if (parseInt(eventInterval,10) < 1 || parseInt(eventInterval,10).toString() == "NaN") 
    65             return 'Por favor informe um valor válido para o intervalo'; 
     89            return errors['invalidInterval']; 
    6690    }     
    6791    return false; 
     
    453477 
    454478    UI.dialogs.addEvent.find('#calendar_addevent_details3').html(repeatHtml); 
    455     $(".date").datepicker(); 
     479    $(".date").datepicker({ 
     480                dateFormat: User.preferences.dateFormat.replace(/M/g, 'm').replace(/yyyy/g, 'yy') 
     481                }); 
    456482                   
    457483    if(objEvent.repeat)  
     
    821847 
    822848var dates = UI.dialogs.addEvent.find('input.date').datepicker({ 
    823     dateFormat: 'dd/mm/yy', 
     849    dateFormat: User.preferences.dateFormat.replace(/M/g, 'm').replace(/yyyy/g, 'yy'), 
    824850    onSelect : function( selectedDate ){ 
    825851        updateMap(); 
     
    24702496} 
    24712497// não há resultados     
     2498 
     2499var currentView = '#tab_events_list_' + ((Base64.encode(keyword)).replace(/[^\w\s]/gi, "") || ''); 
     2500 
    24722501if ((((typeof(results) == 'undefined') || (!results.events_list )) && selecteds) &&(keyword != '' && keyword != null)) { 
    2473     jQuery('#tab_events_list_' + ((Base64.encode(keyword)).replace(/[^\w\s]/gi, "")|| '')).html( 
    2474         '<div title="Lista de eventos" class="events-list events-list-win active empty">' + 
    2475         '<label>Não foi encontrado nenhum evento correspondente à sua pesquisa.</label>' + 
    2476         '</div>' 
     2502    $(currentView).html( 
     2503                '<div title="Lista de eventos" class="events-list events-list-win active empty">' + 
     2504                '<label>Não foi encontrado nenhum evento correspondente à sua pesquisa.</label>' + 
     2505                '</div>' 
    24772506        ); 
    24782507// há resultados e Agendas Selecionadas 
    24792508} else{  
    24802509    if(typeof(results) != 'undefined'){ 
    2481         results['page_index'] = page_index; 
    2482         results['keyword'] = keyword; 
    2483                          
    2484         DataLayer.render( 'templates/event_list.ejs', results, function( html ){ 
    2485             var currentView = '#tab_events_list_' + ((Base64.encode(keyword)).replace(/[^\w\s]/gi, "") || ''); 
    2486             jQuery(currentView).html( html ); 
    2487             jQuery('.events-list-win .menu-container .button').button(); 
    2488                                                                                                                  
    2489             $(".event-details-item").parent().click(function(){ 
    2490  
    2491                 $(this).siblings("div.details-event-list").toggleClass("hidden") 
    2492                 .find('.button.delete').click(function(){ 
    2493                     var eventId = $(this).siblings('[name="eventid"]').val(); 
    2494                     var calendarId = $(this).siblings('[name="calendarid"]').val(); 
    2495  
    2496                     remove_event(eventId, calendarId); 
    2497                 }) 
    2498                 .end().find('.button.edit').click(function(){                            
    2499                     eventDetails( DataLayer.get( "schedulable", $(this).siblings('[name="eventid"]').val() ), true );                                    
     2510                results['page_index'] = page_index; 
     2511                results['keyword'] = keyword; 
     2512                                 
     2513                DataLayer.render( 'templates/event_list.ejs', results, function( html ){ 
     2514                         
     2515                        $(currentView).html( html ); 
     2516                        $('.events-list-win .menu-container .button').button(); 
     2517                                                                                                                         
     2518                        $(".event-details-item").parent().click(function(){ 
     2519 
     2520                        $(this).siblings("div.details-event-list").toggleClass("hidden") 
     2521                        .find('.button.delete').click(function(){ 
     2522                                var eventId = $(this).siblings('[name="eventid"]').val(); 
     2523                                var calendarId = $(this).siblings('[name="calendarid"]').val(); 
     2524 
     2525                                remove_event(eventId, calendarId); 
     2526                        }) 
     2527                        .end().find('.button.edit').click(function(){                            
     2528                                eventDetails( DataLayer.get( "schedulable", $(this).siblings('[name="eventid"]').val() ), true );                                        
     2529                        }); 
     2530 
     2531                        }); 
     2532                        paginatorListEvent(currentView, (keyword == '' || keyword == null) ? 'list' : 'search',  !!view ? view : User.preferences.defaultCalView); 
    25002533                }); 
    2501  
    2502             }); 
    2503             paginatorListEvent(currentView, (keyword == '' || keyword == null) ? 'list' : 'search',  !!view ? view : User.preferences.defaultCalView); 
    2504         }); 
    25052534    }else{ 
    2506         var currentView = '#tab_events_list_' + ((Base64.encode(keyword)).replace(/[^\w\s]/gi, "") || ''); 
    2507         jQuery('#tab_events_list_' + ((Base64.encode(keyword)).replace(/[^\w\s]/gi, "")|| '')).html( 
    2508             '<div title="Lista de eventos" class="events-list events-list-win active empty">' + 
    2509             '<input type="hidden" name="page_index" value="'+page_index+'"></inpunt>'+ 
    2510             '<input type="hidden" name="keyword" value="'+keyword+'"></inpunt>'+ 
    2511             '<label class="empty-result">Não foram encontrados eventos neste intervalo.</label>' + 
    2512             '</div>' 
    2513             ); 
    2514         paginatorListEvent(currentView, 'list', !!view ? view : User.preferences.defaultCalView); 
    2515     } 
    2516                  
    2517 } 
    2518          
     2535                $(currentView).html( 
     2536                        '<div title="Lista de eventos" class="events-list events-list-win active empty">' + 
     2537                        '<input type="hidden" name="page_index" value="'+page_index+'"></inpunt>'+ 
     2538                        '<input type="hidden" name="keyword" value="'+keyword+'"></inpunt>'+ 
     2539                        '<label class="empty-result">Não foram encontrados eventos neste intervalo.</label>' + 
     2540                        '</div>' 
     2541                        ); 
     2542                paginatorListEvent(currentView, 'list', !!view ? view : User.preferences.defaultCalView); 
     2543    } 
     2544} 
     2545        $tabs.tabs("select", currentView); 
    25192546} 
    25202547 
  • trunk/prototype/modules/calendar/js/init.js

    r5947 r6444  
    137137      -----------------------------------------------------------------*/ 
    138138                $(".button.add.add-event").click(function(event){ 
    139                         var startEvent = new Date();   
    140                         if(startEvent.toString('mm') < 30)  
    141                                         startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
    142                         else  
    143                                         startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
    144                         var endEvent = function(date){  
    145                                         if(!!User.preferences.defaultCalendar){  
    146                                                         return  parseInt(date.getTime()) +  
    147                                                                 (       !!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
    148                                                                         (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
    149                                                                         (User.preferences.defaultDuration * 60000) 
    150                                                                 ); 
    151                                         }else  
    152                                                         return parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000);  
    153                         };        
    154                          
     139                        var startEvent = new Date(); 
     140                        var configData = (startEvent.toString('mm') < 30)  ? {minutes: (30 - parseInt(startEvent.toString('mm')))} : {hours: 1, minutes: '-'+startEvent.toString('mm')}; 
     141                        startEvent.add(configData);  
     142 
    155143                        eventDetails({  
    156144                                startTime: startEvent.getTime(), 
    157                                 endTime: endEvent(startEvent) 
     145                                endTime: dateCalendar.decodeRange(startEvent, (!!User.preferences.defaultCalendar ? (   !!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
     146                                                (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration) : (User.preferences.defaultDuration)) : (User.preferences.defaultDuration))) 
    158147                        }, true ); 
    159148                }); 
  • trunk/prototype/modules/calendar/js/map.disponibility.js

    r6327 r6444  
    1515        var isAllDay   = $('.new-event-win.active input[name="allDay"]').is(':checked'); 
    1616         
    17         var formatString = (isAllDay)? User.preferences.dateFormat+" HH:mm" : User.preferences.dateFormat + " " + User.preferences.hourFormat; 
     17        var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat; 
    1818         
    19         var startDate = Date.parseExact( isAllDay ? start_date+ " 00:00": start_date + " " + $.trim(start_time) , formatString ); 
    20         var endDate = Date.parseExact( isAllDay ? end_date+ " 00:00": end_date + " " + $.trim(end_time) , formatString ); 
     19        var startDate = Date.parseExact( start_date + " " + $.trim(start_time) , formatString ); 
     20        var endDate = Date.parseExact( end_date + " " + $.trim(end_time) , formatString ); 
    2121         
    2222         
     
    3636 
    3737function disponibily(objEvent, path, attendees){ 
    38         var formatString = (objEvent.allDay)? User.preferences.dateFormat+" HH:mm" : User.preferences.dateFormat + " " + User.preferences.hourFormat; 
    39         var startDate = Date.parseExact( objEvent.allDay ? objEvent.startDate+ " 00:00": objEvent.startDate + " " + $.trim(objEvent.startHour) , formatString ); 
    40         var endDate = Date.parseExact( objEvent.allDay ? objEvent.endDate+ " 00:00": objEvent.endDate + " " + $.trim(objEvent.endHour) , formatString ); 
     38        var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat; 
     39        var startDate = Date.parseExact( objEvent.startDate + " " + $.trim(objEvent.startHour) , formatString ); 
     40        var endDate = Date.parseExact( objEvent.endDate + " " + $.trim(objEvent.endHour) , formatString ); 
    4141          
    4242        var mapHtml = DataLayer.render( path+'templates/availability_map.ejs', {}); 
     
    4444        $("#new_event_map").fullCalendar(DataLayer.merge({ 
    4545                height : 300, 
    46                 timeFormat: { 
    47                         agenda: 'HH:mm{ - HH:mm}', 
    48                         '': 'HH:mm{ - HH:mm} }' 
    49                 }, 
     46                timeFormat: User.preferences.hourFormat, 
    5047                axisFormat: User.preferences.hourFormat, 
    5148                firstDay: dateCalendar.dayOfWeek[User.preferences.weekStart], 
     
    7673                        $("#new_event_map").fullCalendar( 'updateEvent', event2 ); 
    7774                         
    78                         $('[name="startDate"]').val(start.toString("dd/MM/yyyy")); 
    79                         $('[name="endDate"]').val(end.toString("dd/MM/yyyy")); 
     75                        $('[name="startDate"]').val(start.toString(User.preferences.dateFormat)); 
     76                        $('[name="endDate"]').val(end.toString(User.preferences.dateFormat)); 
    8077                        if(!allDay){ 
    8178                                $('[name="allDay"]').attr("checked", false);  
    8279                                UI.dialogs.addEvent.find('.start-time, .end-time').removeClass('hidden'); 
    8380                                 
    84                                 $('[name="startHour"]').val(start.toString("HH:mm")); 
     81                                $('[name="startHour"]').val(start.toString(User.preferences.hourFormat)); 
    8582                                if(end){ 
    86                                         $('[name="endHour"]').val(end.toString("HH:mm")); 
     83                                        $('[name="endHour"]').val(end.toString(User.preferences.hourFormat)); 
    8784                                } 
    8885                        }else{ 
     
    108105                                $('[name="allDay"]').attr("checked", true);  
    109106                                UI.dialogs.addEvent.find('.start-time, .end-time').addClass('hidden'); 
    110                                 $('[name="startDate"]').val(event.start.toString("dd/MM/yyyy")); 
    111                                 if(event.end) 
    112                                         $('[name="endDate"]').val(event.end.toString("dd/MM/yyyy")); 
    113                                 else 
    114                                         $('[name="endDate"]').val(event.start.toString("dd/MM/yyyy")); 
    115                                 return; 
     107                                 
     108                                $('[name="startDate"]').val(dateCalendar.toString(event.start, User.preferences.dateFormat));                            
     109                                $('[name="endDate"]').val(dateCalendar.toString((event.end ? event.end : event.start), User.preferences.dateFormat)); 
     110 
    116111                        }else{ 
    117112                                $('[name="allDay"]').attr("checked", false);  
    118113                                UI.dialogs.addEvent.find('.start-time, .end-time').removeClass('hidden'); 
     114                         
     115                                $('[name="startHour"]').val(dateCalendar.formatDate(event.start, User.preferences.hourFormat)); 
     116                                $('[name="startDate"]').val(dateCalendar.toString(event.start, User.preferences.dateFormat)); 
     117                                 
     118                                $('[name="endHour"]').val(dateCalendar.formatDate((event.end ? event.end : new Date(dateCalendar.decodeRange(event.start, 120))), User.preferences.hourFormat)); 
     119 
     120                                $('[name="endDate"]').val(dateCalendar.toString(event.end ? event.end : event.start , User.preferences.dateFormat)); 
    119121                        } 
    120                         $('[name="startHour"]').val(event.start.toString("HH:mm")); 
    121                         $('[name="startDate"]').val(event.start.toString("dd/MM/yyyy")); 
    122                         if(event.end){ 
    123                                 $('[name="endHour"]').val(event.end.toString("HH:mm")); 
    124                                 $('[name="endDate"]').val(event.end.toString("dd/MM/yyyy")); 
    125                         }else 
    126                                 $('[name="endDate"]').val(event.start.toString("dd/MM/yyyy")); 
    127122                }, 
    128123                eventResize: function(event,dayDelta,minuteDelta,revertFunc) { 
    129                         if(event.end){ 
    130                                 $('[name="endHour"]').val(event.end.toString("HH:mm")); 
    131                                 $('[name="endDate"]').val(event.end.toString("dd/MM/yyyy")); 
    132                         }else 
    133                                 $('[name="endDate"]').val(event.start.toString("dd/MM/yyyy")); 
     124                        if(event.end) 
     125                                $('[name="endHour"]').val(dateCalendar.formatDate(event.end, User.preferences.hourFormat)); 
     126                         
     127                        $('[name="endDate"]').val(dateCalendar.toString(event.end ? event.end : event.start , User.preferences.dateFormat)); 
    134128                                 
    135129                }, 
    136                 defaultView : "agendaWeek" 
     130        defaultView : "agendaWeek" 
    137131        }, dateCalendar)); 
    138132        var eventSource = new Array(); 
  • trunk/prototype/modules/calendar/templates/index.ejs

    r5957 r6444  
    9191<script type='text/javascript' src='<?= MODULESURL ?>/js/timezone.js'></script> 
    9292<script type='text/javascript' src='<?= MODULESURL ?>/js/calendar.codecs.js'></script> 
     93<script type='text/javascript' src='<?= MODULESURL ?>/js/load.js'></script>      
    9394 
    9495<script type='text/javascript' src='<?= MODULESURL ?>/js/I18n.js'></script> 
Note: See TracChangeset for help on using the changeset viewer.