<ejs-schedule id="schedule" currentView="Month" actionComplete="onActionComplete"></ejs-schedule>
<script>
function onActionComplete(args) {
if (args.requestType === "viewNavigate" || args.requestType === 'dateNavigate') {
var scheduleObj = document.getElementById('schedule').ej2_instances[0];
// You can get current view dates below.
console.log(scheduleObj.getCurrentViewDates());
}
}
</script> |
<ejs-schedule id="schedule" currentView="Month" navigating="onNavigating"></ejs-schedule>
<script>
function onNavigating(args) {
// Navigating event is triggered when view change.
}
</script> |
<script id="event-template" type="text/x-template">
<div class='template-wrap'>
<div class='subject'>${Subject}<span class='e-icons e-dot custom'></span></div>
<div class='time'>Time: ${getTimeString(data.StartTime)} - ${getTimeString(data.EndTime)}</div>
</div>
</script>
function onEventRendered(args) {
var tooltipObj = document.querySelector('.e-tooltip').ej2_instances[0];
args.element.querySelector(".custom").addEventListener("mouseover", function (e) {
var target = args.element.querySelector('.custom');
// To open the tooltip on mouse hover to icon element
if (target) {
tooltipObj.open(target);
}
});
// To close the tooltip on mouse out from icon element
args.element.querySelector(".custom").addEventListener("mouseout", function (e) {
tooltipObj.close();
});
} |
Hi Juan Manuel Gago,Thanks for the update.Q1:We have validated your reported scenario at our end and let you know that the Scheduler control has a context menu by default. Please refer the below UG and online demos for further details.Online Demos: https://ej2.syncfusion.com/aspnetcore/Schedule/ContextMenu#/material
UG: https://ej2.syncfusion.com/aspnetcore/documentation/schedule/context-menu/Q2:We can add the icon in the appointments and also bind the tooltip for the icon itself by making use of eventRendered event and eventTemplate like below highlighted code snippet
<script id="event-template" type="text/x-template"><div class='template-wrap'><div class='subject'>${Subject}<span class='e-icons e-dot custom'></span></div><div class='time'>Time: ${getTimeString(data.StartTime)} - ${getTimeString(data.EndTime)}</div></div></script>function onEventRendered(args) {var tooltipObj = document.querySelector('.e-tooltip').ej2_instances[0];args.element.querySelector(".custom").addEventListener("mouseover", function (e) {var target = args.element.querySelector('.custom');// To open the tooltip on mouse hover to icon elementif (target) {tooltipObj.open(target);}});// To close the tooltip on mouse out from icon elementargs.element.querySelector(".custom").addEventListener("mouseout", function (e) {tooltipObj.close();});}eventTemplate: https://ej2.syncfusion.com/javascript/documentation/api/schedule/viewsModel/#eventtemplateKindly try the above sample and let us know if you have any concerns.Regards,Balasubramanian S
<script id="resourceTemplate" type="text/x-template">
<div class='template-wrap' oncontextmenu="resourceHeaderClick(event);return false;">
<div class="resource-details">
<div class="resource-name">${getDoctorName(data)}</div>
</div>
</div>
</script>
<script type="text/javascript">
window.getDoctorName = function (value) {
return value.resourceData ? value.resourceData[value.resource.textField] : value.resourceName;
};
function resourceHeaderClick(event) {
console.log("resource header is right clicked.");
return false;
}
</script> |
<script id="event-template" type="text/x-template"> <div class='template-wrap'> <div class='subject'>${Subject}<span class='e-icons e-dot custom'>span>div> <div class='time'>Time: ${getTimeString(data.StartTime)} - ${getTimeString(data.EndTime)}div> div> script> function onEventRendered(args) { var tooltipObj = document.querySelector('.e-tooltip').ej2_instances[0]; args.element.querySelector(".custom").addEventListener("mouseover", function (e) { var target = args.element.querySelector('.custom'); // To open the tooltip on mouse hover to icon element if (target) { tooltipObj.open(target); } }); // To close the tooltip on mouse out from icon element args.element.querySelector(".custom").addEventListener("mouseout", function (e) { tooltipObj.close(); }); } |
<ejs-contextmenu id="contextmenu" cssClass="schedule-context-menu" target=".e-schedule" items="ViewBag.menuItems" beforeOpen="onContextMenuBeforeOpen" select="onMenuItemSelect">
</ejs-contextmenu>
... ...
...
var selectedTarget;
function onContextMenuBeforeOpen(args) {
var targetElement = args.event.target;
if (ej.base.closest(targetElement, '.e-contextmenu')) {
return;
}
selectedTarget = ej.base.closest(targetElement, '.e-resource-cells');
if (ej.base.isNullOrUndefined(selectedTarget)) {
args.cancel = true;
return;
}
}
function onMenuItemSelect(args) {
alert('Clicked the menu item')
} |