)
We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: June 24, 2019).
Unfortunately, activation email could not send to your email. Please try again.
Essential JS2

Syncfusion jQuery based widgets are no longer in active development. Switch to our pure JavaScript based next generation Essential JS 2 library.

Syncfusion Feedback

How to customize the Recurrence editor?

Platform: jQuery |
Control: ejSchedule |
Published Date: June 30, 2017 |
Last Revised Date: May 28, 2019

The following steps shows the way to customize the recurrence editor.

 

Step 1:  Create a scheduler default sample and bind the appointmentWindowOpen event as shown below,  

$(function () {
            $("#Schedule1").ejSchedule({
                width: "100%",
                height: "525px",
                currentDate: new Date(2014, 4, 5),
                appointmentSettings: {
                    dataSource: [],
                    id: "Id",
                    subject: "Subject",
                    startTime: "StartTime",
                    endTime: "EndTime",
                    description: "Description",
                    allDay: "AllDay",
                    recurrence: "Recurrence",
                    recurrenceRule: "RecurrenceRule"
                },
                appointmentWindowOpen: "OnAppointmentWindowOpen"
            });
        });

 

Step 2: Define the appointmentWindowOpen event function OnAppointmentWindowOpen which contains the code to customize the recurrence editor. The following code example shows the logic.

function OnAppointmentWindowOpen() {
    this._appointmentAddWindow.find(".e-recurrenceeditor").ejRecurrenceEditor({ frequencies: ["daily", "weekly", "monthly"] }); // Repeat field is customized
    if (this._appointmentAddWindow.find(".e-recurrenceeditor").children().eq(0).hasClass("e-floatright")) {
        var element = this._appointmentAddWindow.find(".e-recurrenceeditor").children();
        element[0].parentNode.replaceChild(element[0], element[1]);
        element[0].parentNode.insertBefore(element[1], element[0]);
    }
    var recurEdit = this._appointmentAddWindow.find(".e-recurrenceeditor").data("ejRecurrenceEditor");
    $(".e-recurrenceeditor").ejRecurrenceEditor({
        change: function (args) {
            this.element.find('.monthposition').ejRadioButton({ checked: true });
            this.element.find('.e-recuruntil').ejRadioButton({ checked: true });
            // Every field is customized
            if (this._rRuleFreq != "WEEKLY")
                recurEdit._recurrenceContent.find("#" + recurEdit._id + "_every").addClass("custom");
            else
                recurEdit._recurrenceContent.find("#" + recurEdit._id + "_every").removeClass("custom"); 
        }
    });
    // Ends fields are customized
    recurEdit._recurrenceContent.find("#endsonnever").addClass("custom");
    recurEdit._recurrenceContent.find("#endsonafter").addClass("custom");
    recurEdit._recurrenceContent.find("#monthdaytr").addClass("custom");
 
}

 

Sample: http://jsplayground.syncfusion.com/kvtttmen

 

Step 3: Run the above sample and the recurrence editor is customized as shown below.

Scheduler with customized recurrence editor

Figure 1: Scheduler with customized recurrence editor.

ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile
Live Chat Icon