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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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 
Note: See TracChangeset for help on using the changeset viewer.