Recurring event save button doesn't work all the time

If I scheduler a recurring event daily and tell it to stop after 3 days it save correctly.

If I put an ending date in there the save button does nothing, and then I can’t go back and do what I successfully did before (above).

I put the recurring module at the bottom of the scheduler page to make sure it was being loaded last hoping this might help but that didn’t work.

I have the previous version to the 4 release. What steps can I take to make this work since it seems to be an issue with that module.

TIA,

David

It appears recurring events don’t work when:

  • there are blocked days within the range
  • if I’m in a weekly view and the event extends itself to the next week
  • if there’s an overlapping event at the same time

Otherwise, it works fine.

Can’t I scheduler a recurring event during a large period and have it save (ignoring the restricted dates or views)

TIA

David

I am attached to Codeigniter. Typically, it fires the insert statement when a recurring event is saved. In cases where the range is longer than the current view (that’s my theory), or there are blocked days it doesn’t even call the CI insert (I verified that with a print statement to the Apache log file).

Any insight would be greatly appreciated. Finishing my contract here this week after a year and a half development on the government scheduler and a week before delivery. Seems like the last bug to resolve and leave in good standings…

If I don’t have the chance thanks to the DHTMLX folks for having a nice scheduling system and not having to re-invent the wheel by doing one on my own…

-David

I’ve isolated the problems.

Having a blocked date withing a recurring range stops the save button from working…

Any ideas how to get around this?

Thanks,

David

I found the solution.

Ranges are validated based on blocked days.

Is there any way it could scheduler around the blocked days?

Thanks,

David

scheduler.config.check_limits = false; /* solved my issue */

Hi,
you can also try using onLimitViolation which triggers when a limit extension blocks the operation.
If you return ‘true’ from the handler, the operation will be allowed
docs.dhtmlx.com/scheduler/api__s … event.html

Awesome!!!

I’ll put that in and this will wrap things up for them.

Thanks so much,

David

Is there anyway to avoid the confirmation coming up again after I have accepted to scheduler anyway?

Thanks,

David

         var mycheck = true;                                                                   
         scheduler.attachEvent("onLimitViolation",function(id, obj){                           
             var r = confirm("One or more dates/time are marked as unavailable (holiday/weekend

/blocked). Would you still like to schedule it anyway?");

             if (mycheck && r == true) {                                                       
                 mycheck = false;                                                              
                 return true;                                                                  
             }                                                                                 
         });

The event will trigger each time limit check is performed and the conflict is found. I’m not sure in what case it is triggered multiple times for the same event, by you can set some flag variable after the first confirmation and not show confirms if the flag is set. You can clear the flag when event is saved to the server, e.g. from onAfterUpdate event of the dataprocessor
docs.dhtmlx.com/api__dataprocess … event.html

Thank you,

David

Got the flag working that stops the popup coming up 2x

Thanks again,

David

     var mycheck = 0;                                                                          
                                                                                               
     function init() {                                                                         
         scheduler.locale.labels.confirm_deleting = ""; // stops confirmation                  
         scheduler.locale.labels.new_event = "New event type";                                 
         scheduler.locale.labels.workweek_tab = "Week";                                        
         scheduler.locale.labels.grid_tab = "Grid";                                            
                                                                                               
         scheduler.attachEvent("onLimitViolation",function(id, obj){                           
                 mycheck += 1;                                                                 
                 if (mycheck == 2) {                                                           
                     mycheck = 0;                                                              
                     return false;                                                             
                 }                                                                             
                 if (mycheck == 1) {                                                           
                     var r = confirm("You are attempting to schedule on a restricted day (holid

ay/weekend/blocked). Would you like to proceed?");
if (r == true) {
return true;
}
}
});