So I have the recurrence editor in my edit form, and it works as its included with the code:
<
div
class
=
"k-edit-label"
><
label
for
=
"recurrenceRule"
>Repeat</
label
></
div
>
<
div
data-container-for
=
"recurrenceRule"
class
=
"k-edit-field"
>
<
div
data-bind
=
"value:recurrenceRule"
name
=
"recurrenceRule"
data-role
=
"recurrenceeditor"
></
div
>
</
div
>
And activated with the script:
editable: {
template: $("#editorx").html()
}
Is this possible in a custom add form? I have found no reference in the documentation on how to created kendo type templates for the add forms, only edit.
Thanks in advance.
3 Answers, 1 is accepted
0
Hi Andrew,
From the provided information it's not clear for us what exactly you are trying to achieve - could you please elaborate more on this? Also if possible please provide the full Scheduler configuration in order to get better overview of the current setup that you have.
Regards,
Vladimir Iliev
Telerik
From the provided information it's not clear for us what exactly you are trying to achieve - could you please elaborate more on this? Also if possible please provide the full Scheduler configuration in order to get better overview of the current setup that you have.
Regards,
Vladimir Iliev
Telerik
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
Andrew
Top achievements
Rank 1
answered on 15 Mar 2016, 04:37 PM
My goal is simple: construct an add event form that uses the Scheduler's recurrence editor.
Here is my configuration:
$(
"#scheduler"
).kendoScheduler({
date:
new
Date(),
startTime:
new
Date(),
height: 750,
eventTemplate: $(
"#event-template"
).html(),
//kendo.template(eventTemplateString), //$("#event-template").html(),
editable: {
template: $(
"#editorx"
).html()
},
add: scheduler_add,
//editable: false,
dataBound:
function
(e) {
if
(!dangLoad) {
dangLoad =
true
;
//wut? ok Brenden. DANGLOAD
hideEvent();
}
//console.log(e);
var
scheduler =
this
;
var
view = scheduler.view();
view.table.find(
"td[role=gridcell]"
).each(
function
() {
var
element = $(
this
);
var
slot = scheduler.slotByElement(element);
if
(slot.startDate <
new
Date) {
element.addClass(
"greyCell"
);
}
});
$(
"#scheduler"
).kendoTooltip({
filter:
".k-event"
,
position:
"top"
,
width: 250,
content: kendo.template($(
'#templatezz'
).html())
//content: "Tooltip content"
});
},
change:
function
(e) {
console.log(
"Changing."
);
if
(user.role ==
"read-only"
) {
console.log(
"You can not execute this action from a read-only account"
);
e.preventDefault();
return
1;
}
console.log(
'change'
);
if
(e.event.result ==
'Manual'
) {}
else
{
alert(
"cannot change "
+ e.event.case_name +
" as it was created in Access"
);
e.preventDefault();
}
//e.preventDefault();
//console.log("Editing", e.event.title);
},
edit:
function
(e) {
this
.one(
"save"
,
function
() {
console.log(
"saving: \n"
);
console.log(e);
e.preventDefault();
});
if
(user.role ==
"read-only"
) {
alert(
"You can not perform this action from a read-only account"
);
e.preventDefault();
showReadOnlyModal(e.event);
return
1;
}
console.log(meds);
console.log(e.event.created_by);
if
(user.role ==
"mediator"
) {
editRights = _.contains(meds, e.event.created_by);
}
else
{
editRights = !_.contains(meds, e.event.created_by);
//Admins edit everything not created by a mediator.
}
console.log(
"edit rights: "
+ editRights);
if
(e.event.created_by ==
"SOL Converter"
) {
console.log(
"Created by SOL Converter"
);
editRights =
false
;
}
if
(!editRights) {
//alert("You do not have the right to edit this entry.");
showReadOnlyModal(e.event);
e.preventDefault();
return
1;
}
console.log(
"editing"
);
var
addr, body, subject;
//For automated emails.
addr =
""
;
console.log(e.event.mediatorIds);
e.event.last_updated = Date();
e.event.last_updated_by = Cookies.get(
"name"
);
if
(e.event.result ==
'Manual'
) {
console.log(e.event);
var
getInfoPromise = getWhoCreatedModified(e.event._id);
console.log(e.event._id);
getInfoPromise.then(onGetWhoCreatedModifiedComplete, onErrorFunction);
}
else
{
showPartyInfoModal(e.event.parties, e.event.description, e.event.caseNumber, e.event);
e.preventDefault();
}
},
remove:
function
(e) {
if
(user.role ==
"mediator"
) {
editRights = _.contains(meds, e.event.created_by);
}
else
{
editRights = !_.contains(meds, e.event.created_by);
//Admins edit everything not created by a mediator.
}
console.log(
"edit rights: "
+ editRights);
if
(user.role ==
"read-only"
) {
console.log(
"You can not execute this action from a read-only account"
);
e.preventDefault();
return
1;
}
if
(e.event.result ==
'Manual'
) {
console.log(
"hey you try and remove"
);
console.log(e);
var
meetingToDelete = e.event._id;
var
deleteEntryPromise = deleteEntry(meetingToDelete);
deleteEntryPromise.then(onDeleteEntryComplete, onErrorFunction);
}
else
{
alert(
"cannot remove "
+ e.event.case_name +
" as it was created in Access"
);
e.preventDefault();
}
//e.preventDefault();
//console.log("Editing", e.event.title);
},
//editable: editRights,
views: [{
type:
"day"
}, {
type:
"workWeek"
}, {
type:
"month"
,
selected:
true
,
eventHeight: 35
}, {
type:
"agenda"
}
/*, {
type: "timeline"
}, {
type: "timelineWorkWeek"
}, {
type: "timelineMonth"
}*/
],
timezone:
"Etc/UTC"
,
dataSource: {
//data: scheduleDataz,
transport: {
read: {
//url: "getData.pl?ACTION=GETMEETINGS", //node rewrite
url:
"/meetings"
,
dataType:
"JSON"
// "jsonp" is required for cross-domain requests; use "json" for same-domain requests
},
update: {
url:
"/meeting"
,
//node rewrite
dataType:
"JSON"
,
type:
"POST"
,
contentType:
"application/json; charset=utf-8"
},
//last_updated, last_updated_by
destroy: {
url:
"/deleteMeeting"
,
dataType:
"JSON"
,
type:
"POST"
,
contentType:
"application/json; charset=utf-8"
},
parameterMap:
function
(data, op) {
return
JSON.stringify(data);
}
},
requestEnd:
function
(e) {
//check the "response" argument to skip the local operations
if
(e.type ===
"read"
&& e.response) {
console.log(
"Current request is 'read'."
);
console.log(e.response);
}
},
schema: {
parse:
function
(res) {
var
meetings = [];
for
(
var
i = 0; i < res.length; i++) {
var
meet = res[i];
meet.start_time =
new
Date(meet.start_time);
meet.end_time =
new
Date(meet.end_time);
meetings.push(meet);
}
return
meetings;
},
data:
function
(data) {
console.log(data);
if
(data.length == 0) {
return
[];
}
return
data;
},
model: {
id:
"MeetingID"
,
fields: {
MeetingID: {
from:
"meeting_id"
},
title: {
from:
"case_name"
,
defaultValue:
"No title"
,
validation: {
required:
true
}
},
start: {
type:
"date"
,
from:
"start_time"
},
end: {
type:
"date"
,
from:
"end_time"
},
description: {
from:
"case_desc"
},
caseManager: {
from:
"case_manager"
,
nullable:
true
},
mediatorIds: {
from:
"mediator_LawyerIDs"
},
result: {
from:
"meeting_result"
,
nullable:
true
},
caseNumber: {
from:
"case_number"
,
nullable:
true
},
case_location: {
from:
"location"
,
nullable:
true
},
parties: {
from:
"parties"
,
nullable:
true
},
numParties: {
from:
"number_of_parties"
,
nullable:
true
},
created_by: {
from:
"created_by"
,
nullable:
true
},
creation_timestamp: {
from:
"creation_timestamp"
,
nullable:
true
},
//Recurrence specific fields
recurrenceId: {
from:
"RecurrenceId"
},
recurrenceRule: {
from:
"RecurrenceRule"
},
recurrenceException: {
from:
"RecurrenceException"
}
}
}
}
},
resources: [{
field:
"result"
,
title:
"Meeting Result"
,
dataSource: [{
text:
"_"
,
value:
"Manual"
,
color:
"#661155"
}, {
text:
"Canceled"
,
value:
"Canceled"
,
color:
"#CCCCCC"
}, {
text:
"Settled"
,
value:
"Settled"
}, {
text:
"Not settled"
,
value:
"Not settled"
}, {
text:
"Settled Without Mediation"
,
value:
"Settled w/o Mediation"
}]
}, {
field:
"mediatorIds"
,
// The field of the scheduler event which contains the resource identifier
title:
"Mediator"
,
// The label displayed in the scheduler edit form for this resource
dataSource: mediatorResources,
multiple:
true
}]
});
0
Hello Andrew,
It' still not clear for me what is the desired behavior that you need, however if you need to have different edit and create templates than you can include all editors in current edit template and hide parts of it using the "edit" event of the Scheduler:
Regards,
Vladimir Iliev
Telerik
It' still not clear for me what is the desired behavior that you need, however if you need to have different edit and create templates than you can include all editors in current edit template and hide parts of it using the "edit" event of the Scheduler:
Regards,
Vladimir Iliev
Telerik
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!