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/helpers.js

    r6412 r6453  
    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      
    54     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     } 
     74   if (customDate)      
     75              if ( !($('.new-event-win.active .customDateEnd').val().length) )  
     76                 return errors['emptyEndData'];  
     77            
     78   if (occurrences){ 
     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 } 
     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);  
    25182546         
    25192547} 
Note: See TracChangeset for help on using the changeset viewer.