Skip to content

Instantly share code, notes, and snippets.

@SaucyJack
Forked from gist-master/app.html
Last active November 13, 2017 21:03
Show Gist options
  • Save SaucyJack/67db3493a4fa8b055fea4683381532ae to your computer and use it in GitHub Desktop.
Save SaucyJack/67db3493a4fa8b055fea4683381532ae to your computer and use it in GitHub Desktop.
Datepicker: range selection
<template>
<require from="aurelia-kendoui-bridge/datepicker/datepicker"></require>
<require from="aurelia-kendoui-bridge/common/template"></require>
<ak-template id="footerTemplate">
<button type="button">Click me</button>
</ak-template>
<div id="example">
<div class="demo-section k-content">
<h4>Start date:</h4>
<input ak-datepicker="k-value.bind : '10/10/2011';
k-widget.two-way: startDatePicker"
k-footer.bind="footerTemplate"
k-on-change.delegate="startChange()"
id="start"
style="width: 100%;"/>
<h4 style="margin-top: 2em">End date:</h4>
<input id="end"
style="width: 100%;"
ak-datepicker="k-value.bind : '10/10/2012';
k-widget.two-way: endDatePicker"
k-on-change.delegate="endChange()"/>
</div>
</div>
</template>
export class RangeSelection {
// kendo controls aren't ready yet in the attached() callback
// so we use the aurelia-after-attached-plugin which adds the afterAttached callback
// https://github.com/aurelia-ui-toolkits/aurelia-after-attached-plugin
afterAttached() {
this.startDatePicker.max(this.endDatePicker.value());
this.endDatePicker.min(this.startDatePicker.value());
}
startChange() {
let startDate = this.startDatePicker.value();
let endDate = this.endDatePicker.value();
if (startDate) {
startDate = new Date(startDate);
startDate.setDate(startDate.getDate());
this.endDatePicker.min(startDate);
} else if (endDate) {
this.startDatePicker.max(new Date(endDate));
} else {
endDate = new Date();
this.startDatePicker.max(endDate);
this.endDatePicker.min(endDate);
}
}
endChange() {
let endDate = this.endDatePicker.value();
let startDate = this.startDatePicker.value();
if (endDate) {
endDate = new Date(endDate);
endDate.setDate(endDate.getDate());
this.startDatePicker.max(endDate);
} else if (startDate) {
this.endDatePicker.min(new Date(startDate));
} else {
endDate = new Date();
this.startDatePicker.max(endDate);
this.endDatePicker.min(endDate);
}
}
}
<!doctype html>
<html>
<head>
<title>Aurelia KendoUI bridge</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/styles/kendo.common.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/styles/kendo.default.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/styles/kendo.mobile.all.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.4.0/bluebird.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/1.2.1/chroma.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2016.2.714/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2016.2.714/js/jszip.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2016.2.714/js/kendo.all.min.js"></script>
</head>
<body aurelia-app="main">
<h1>Loading...</h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.6/system.js"></script>
<script src="https://rawgit.com/aurelia-ui-toolkits/aurelia-kendoui-bundles/1.0.0-beta.1.0.6/config2.js"></script>
<script>
System.import('aurelia-bootstrapper');
</script>
</body>
</html>
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.plugin('aurelia-after-attached-plugin')
.plugin('aurelia-kendoui-bridge');
aurelia.start().then(a => a.setRoot());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment