Your search did not match any results.

DevExtreme HTML5 JavaScript Scheduler is a client-side scheduling component available as a jQuery plugin. This control can be bound to local or remote data including online services like Google Calendar. In this demo, Scheduler is highly customized using templates. Appointments on the view are grouped by employee. View other demos in this section to explore more Scheduler features, like multiple calendar views, appointment editing, time zones support, etc.

Copy to CodePen
Apply
Reset
$(function() { $(".scheduler").dxScheduler({ dataSource: data, views: ["month"], currentView: "month", currentDate: new Date(2016, 7, 2, 11, 30), firstDayOfWeek: 1, startDayHour: 8, endDayHour: 18, showAllDayPanel: false, height: 600, groups: ["employeeID"], resources: [ { fieldExpr: "employeeID", allowMultiple: false, dataSource: employees, label: "Employee" } ], dataCellTemplate: function (cellData, index, container) { var employeeID = cellData.groups.employeeID, currentTraining = getCurrentTraining(cellData.startDate.getDate(), employeeID); var wrapper = $("<div>") .toggleClass("employee-weekend-" + employeeID, isWeekEnd(cellData.startDate)).appendTo(container) .addClass("employee-" + employeeID) .addClass("dx-template-wrapper"); wrapper.append($("<div>") .text(cellData.text) .addClass(currentTraining) .addClass("day-cell") ); }, resourceCellTemplate: function (cellData) { var name = $("<div>") .addClass("name") .css({ backgroundColor: cellData.color }) .append($("<h2>") .text(cellData.text)); var avatar = $("<div>") .addClass("avatar") .html("<img src=" + cellData.data.avatar + ">") .attr("title", cellData.text); var info = $("<div>") .addClass("info") .css({ color: cellData.color }) .html("Age: " + cellData.data.age + "<br/><b>" + cellData.data.discipline + "</b>"); return $("<div>").append([name, avatar, info]); } }); function isWeekEnd(date) { var day = date.getDay(); return day === 0 || day === 6; } function getCurrentTraining(date, employeeID) { var result = (date + employeeID) % 3, currentTraining = "training-background-" + result; return currentTraining; } });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/18.1.4/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/18.1.4/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/18.1.4/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/18.1.4/js/dx.all.js"></script> <script src="data.js"></script> <link rel="stylesheet" type ="text/css" href ="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div class="scheduler"></div> </div> </body> </html>
.dx-scheduler-group-header { position: relative; } .dx-scheduler-date-table-other-month.dx-scheduler-date-table-cell { opacity: 1; color: rgba(0, 0, 0, 0.3); } .dx-template-wrapper { position: relative; height: 100%; } .avatar { width: 155px; float: left; overflow: hidden; position: relative; height: 125px; } .name { position: absolute; bottom: 0; left: 0; width: 100%; } .name h2 { color: #fff; text-align: left; padding: 0 0 5px 175px; } .info { width: auto; text-align: left; height: 100%; font-size: 11pt; font-weight: normal; padding: 25px 20px; color: #707070; } .dx-color-scheme-contrast .info { color: #FFF; } .userInfo div { margin: 20px; } .day-cell { width: 100%; height: 100%; background-position: center center; background-repeat: no-repeat; } .employee-1 { background-color: rgba(86, 202, 133, 0.1); } .employee-2 { background-color: rgba(255, 151, 71, 0.1); } .employee-weekend-1 { background-color: rgba(86, 202, 133, 0.2); } .employee-weekend-2 { background-color: rgba(255, 151, 71, 0.2); } .training-background-0 { background-image: url("../../../../images/gym/icon-abs.png"); } .training-background-1 { background-image: url("../../../../images/gym/icon-step.png"); } .training-background-2 { background-image: url("../../../../images/gym/icon-fitball.png"); }
var employees = [{ text : "John Heart", id: 1, color: "#56ca85", avatar: "../../../../images/gym/coach-man.png", age: 27, discipline: "ABS, Fitball, StepFit" }, { text : "Sandra Johnson", id: 2, color: "#ff9747", avatar: "../../../../images/gym/coach-woman.png", age: 25, discipline: "ABS, Fitball, StepFit" }]; var data = [{ text: "Helen", employeeID: 2, startDate: new Date(2016, 7, 2, 9, 30), endDate: new Date(2016, 7, 2, 11, 30) }, { text: "Helen", employeeID: 2, startDate: new Date(2016, 7, 11, 9, 30), endDate: new Date(2016, 7, 12, 11, 30) }, { text: "Alex", employeeID: 1, startDate: new Date(2016, 7, 3, 9, 30), endDate: new Date(2016, 7, 3, 11, 30) }, { text: "Alex", employeeID: 1, startDate: new Date(2016, 7, 12, 12, 0), endDate: new Date(2016, 7, 12, 13, 0) }, { text: "Alex", employeeID: 2, startDate: new Date(2016, 7, 17, 9, 30), endDate: new Date(2016, 7, 17, 11, 30) }, { text: "Stan", employeeID: 1, startDate: new Date(2016, 7, 8, 9, 30), endDate: new Date(2016, 7, 8, 11, 30) }, { text: "Stan", employeeID: 1, startDate: new Date(2016, 7, 29, 9, 30), endDate: new Date(2016, 7, 29, 11, 30) }, { text: "Stan", employeeID: 1, startDate: new Date(2016, 7, 31, 9, 30), endDate: new Date(2016, 7, 31, 11, 30) }, { text: "Rachel", employeeID: 2, startDate: new Date(2016, 7, 5, 9, 30), endDate: new Date(2016, 7, 5, 11, 30) }, { text: "Rachel", employeeID: 2, startDate: new Date(2016, 7, 8, 9, 30), endDate: new Date(2016, 7, 8, 11, 30) }, { text: "Rachel", employeeID: 1, startDate: new Date(2016, 7, 22, 9, 30), endDate: new Date(2016, 7, 22, 11, 30) }, { text: "Kelly", employeeID: 2, startDate: new Date(2016, 7, 16, 9, 30), endDate: new Date(2016, 7, 16, 11, 30) }, { text: "Kelly", employeeID: 2, startDate: new Date(2016, 7, 30, 9, 30), endDate: new Date(2016, 7, 30, 11, 30) }];