Ignore:
Timestamp:
03/18/12 15:07:09 (12 years ago)
Author:
acoutinho
Message:

Ticket #2434 - Suporte copia/edicao/remocao de ocorrencias de repeticao

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/js/init.js

    r5592 r5746  
    231231                }, 
    232232 
    233                 eventDrop: function( event ){ 
    234                         if(!event.disableDragging){ 
    235                                 DataLayer.put( "schedulable:calendar", event ); 
     233                eventDrop: function( evt, event, view  ){ 
     234                        evt.id = evt.id.split('-')[0]; 
     235                        if(!evt.disableDragging){ 
     236                             
     237                             if(evt.isRepeat){ 
     238                                 var schedulable = copyAndMoveTo(false , evt.id , false, "3", evt); 
     239                                  
     240                                 var repeat = mount_exception(evt.id, evt.occurrence); 
     241                                 DataLayer.remove('repeat', false); 
     242                                 DataLayer.put('repeat', repeat); 
     243                                 DataLayer.commit('repeat', false, function(data){ 
     244                                      
     245                                    DataLayer.put('schedulable', schedulable); 
     246                                      
     247                                 }); 
     248 
     249                             }else{                                  
     250                                DataLayer.put( "schedulable:calendar", evt ); 
    236251 
    237252                                event.editable = false; 
    238253                                event.className = "blocked-event"; 
    239                                 calendar.fullCalendar( 'updateEvent', event ); 
     254                                calendar.fullCalendar( 'updateEvent', evt ); 
     255                             } 
     256                              
     257                        }else 
     258                            Calendar.rerenderView(true); 
     259                }, 
     260 
     261                eventResize: function( evt, event, view ){ 
     262                        evt.id = evt.id.split('-')[0]; 
     263                        if(!evt.disableDragging){ 
     264                             if(evt.isRepeat){ 
     265                                 var schedulable = copyAndMoveTo(false , evt.id , false, "3", evt); 
     266                                  
     267                                 //Normaliza a data para o backend 
     268                                 schedulable.startTime = new Date(parseInt(schedulable.startTime)).toString('yyyy-MM-dd hh:mm:00'); 
     269                                 schedulable.endTime = new Date(parseInt(schedulable.endTime)).toString('yyyy-MM-dd hh:mm:00'); 
     270                                  
     271                                 var repeat = mount_exception(evt.id, evt.occurrence); 
     272                                  
     273                                 DataLayer.remove('repeat', false); 
     274                                 DataLayer.put('repeat', repeat); 
     275                                 DataLayer.commit('repeat', false, function(data){ 
     276                                      
     277                                    DataLayer.put('schedulable', schedulable); 
     278                                      
     279                                 }); 
     280                             }else{                                  
     281                                DataLayer.put( "schedulable:calendar", evt );    
     282                                evt.editable = false; 
     283                                evt.className = "blocked-event"; 
     284                                calendar.fullCalendar( 'updateEvent', evt ); 
     285                             } 
     286                         
    240287                        }else 
    241288                                Calendar.rerenderView(true); 
    242289                }, 
    243290 
    244                 eventResize: function( event ){ 
    245                         if(!event.disableDragging){ 
    246                         DataLayer.put( "schedulable:calendar", event ); 
    247  
    248                         event.editable = false; 
    249                         event.className = "blocked-event"; 
    250                         calendar.fullCalendar( 'updateEvent', event ); 
    251                         }else 
    252                                 Calendar.rerenderView(true); 
    253                 }, 
    254  
    255291                eventClick: function( evt, event, view ){ 
    256                         if(evt.selectable) 
    257                                 eventDetails( DataLayer.get( "schedulable", evt.id), true); 
     292                        evt.id = evt.id.split('-')[0]; 
     293                        if(evt.selectable){ 
     294                            if(evt.isRepeat){ 
     295                                $.Zebra_Dialog(evt.title + ' é um evento com repetição.', { 
     296                                        'type':     'question', 
     297                                        'overlay_opacity': '0.5', 
     298                                        'buttons':  ['Editar todas ocorrências', 'Editar essa ocorrência'], 
     299                                        'onClose':  function(clicked) { 
     300                                                if(clicked == 'Editar todas ocorrências') { 
     301                                                    eventDetails( DataLayer.get( "schedulable", evt.id), true); 
     302                                                }else{ 
     303                                                    /* 
     304                                                    * TODO - repeat foi adicionado pois melhorias devem ser feitas no rollback do 
     305                                                    *DataLayer, repeat somente é usado quando se trata da criação de um evento 
     306                                                    *pela edição de uma ocorrência. 
     307                                                    */       
     308                                                    var repeat = mount_exception(evt.id, evt.occurrence); 
     309                                                                                                   
     310                                                    $('.calendar-copy-move input[name="typeEvent"]').val("3"); 
     311                                                     
     312                                                    eventDetails(copyAndMoveTo(false , evt.id , false, "3", evt), true, '', false, repeat); 
     313                                                }        
     314                                        } 
     315                                }); 
     316                                 
     317                            }else 
     318                                eventDetails( DataLayer.get( "schedulable", evt.id), true); 
     319                                 
     320                        } 
    258321                } 
    259322        }, dateCalendar)); 
Note: See TracChangeset for help on using the changeset viewer.