Files
2022-11-04 13:24:24 +02:00

224 lines
8.6 KiB
HTML
Executable File

<!DOCTYPE html>
<html>
<head>
<title>Selected Date and Range</title>
<meta charset="utf-8">
<link href="../content/shared/styles/examples-offline.css" rel="stylesheet">
<link href="../../styles/kendo.common.min.css" rel="stylesheet">
<link href="../../styles/kendo.rtl.min.css" rel="stylesheet">
<link href="../../styles/kendo.default.min.css" rel="stylesheet">
<link href="../../styles/kendo.default.mobile.min.css" rel="stylesheet">
<script src="../../js/jquery.min.js"></script>
<script src="../../js/jszip.min.js"></script>
<script src="../../js/kendo.all.min.js"></script>
<script src="../content/shared/js/console.js"></script>
<script>
</script>
</head>
<body>
<a class="offline-button" href="../index.html">Back</a>
<div id="example">
<div class="configurator">
<div class="header">Configurator</div>
<div class="box-col">
<h4>Start date of range</h4>
<input id="start-range" />
</div>
<div class="box-col">
<h4>End date of range</h4>
<input id="end-range" />
</div>
<div class="box-col">
<h4>Set Selected Date</h4>
<input id="date" />
</div>
</div>
<div id="gantt"></div>
<script>
$(document).ready(function () {
var serviceRoot = "https://demos.telerik.com/kendo-ui/service";
var tasksDataSource = new kendo.data.GanttDataSource({
transport: {
read: {
url: serviceRoot + "/GanttTasks",
dataType: "jsonp"
}
},
schema: {
model: {
id: "id",
fields: {
id: { from: "ID" },
orderId: { from: "OrderID", type: "number" },
parentId: { from: "ParentID", type: "number", nullable: true },
start: { from: "Start", type: "date" },
end: { from: "End", type: "date" },
title: { from: "Title", type: "string" },
percentComplete: { from: "PercentComplete", type: "number" },
summary: { from: "Summary", type: "boolean" },
expanded: { from: "Expanded", type: "boolean" }
}
}
}
});
var dependenciesDataSource = new kendo.data.GanttDependencyDataSource({
transport: {
read: {
url: serviceRoot + "/GanttDependencies",
dataType: "jsonp"
}
},
schema: {
model: {
id: "id",
fields: {
id: { from: "ID", type: "number" },
predecessorId: { from: "PredecessorID", type: "number" },
successorId: { from: "SuccessorID", type: "number" },
type: { from: "Type", type: "number" }
}
}
}
});
var gantt = $("#gantt").kendoGantt({
dataSource: tasksDataSource,
dependencies: dependenciesDataSource,
views: [{
type: "day",
range: {
start: new Date("2014/6/2"),
end: new Date("2014/6/8")
},
date: new Date("2014/6/2"),
}, {
type: "week",
selected: true,
range: {
start: new Date("2014/6/1"),
end: new Date("2014/7/13")
},
date: new Date("2014/6/1")
}, {
type: "month",
range: {
start: new Date("2014/5/18"),
end: new Date("2014/8/3")
},
date: new Date("2014/5/18")
}],
columns: [
{ field: "id", title: "ID", width: 60 },
{ field: "title", title: "Title" },
{ field: "start", title: "Start Time", format: "{0:MM/dd/yyyy}", width: 100 },
{ field: "end", title: "End Time", format: "{0:MM/dd/yyyy}", width: 100 }
],
height: 700,
editable: false,
showWorkHours: false,
showWorkDays: false,
snap: false,
navigate: function (e) {
var viewsOptions = e.sender.options.views;
viewsOptions.forEach(function (view) {
if (view.type === e.view) {
startRange.value(view.range.start);
endRange.value(view.range.end);
date.value(view.date);
return;
}
})
}
}).data("kendoGantt");
var startRange = $("#start-range").kendoDatePicker({
value: new Date("2014/6/1"),
disableDates: function (date) {
var end = endRange ? endRange.value() : new Date("2014/7/13");
if (date >= end) {
return true;
} else {
return false;
}
},
open: function (e) {
e.sender.setOptions(e.sender.options);
},
change: function () {
var range = gantt.range();
range.start = this.value();
gantt.range(range);
if (this.value() > date.value()) {
date.value("");
}
}
}).data("kendoDatePicker");
var endRange = $("#end-range").kendoDatePicker({
value: new Date("2014/7/13"),
disableDates: function (date) {
var start = startRange ? startRange.value() : new Date("2014/6/1");
if (date <= start) {
return true;
} else {
return false;
}
},
open: function (e) {
e.sender.setOptions(e.sender.options);
},
change: function () {
var range = gantt.range();
range.end = this.value();
gantt.range(range);
if (this.value() <= date.value()) {
date.value("");
}
}
}).data("kendoDatePicker");
var date = $("#date").kendoDatePicker({
value: new Date("2014/6/1"),
disableDates: function (date) {
var start = startRange ? startRange.value() : new Date("2014/6/1");
var end = endRange ? endRange.value() : new Date("2014/7/13");
if (date < start || date >= end) {
return true;
} else {
return false;
}
},
open: function (e) {
e.sender.setOptions(e.sender.options);
},
change: function () {
gantt.date(this.value());
}
}).data("kendoDatePicker");
$(document).bind("kendo:skinChange", function () {
gantt.refresh();
});
});
</script>
</div>
</body>
</html>