From 7a211c6619848224b39910f0d672a1390ee634c1 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Mon, 19 Nov 2012 01:50:49 +0200 Subject: [PATCH] Add bootstrap.datepicker --- README.md | 1 + .../bootstrap.datepicker-tests.ts | 79 +++++++++++++++++++ .../bootstrap.datepicker.d.ts | 27 +++++++ 3 files changed, 107 insertions(+) create mode 100644 bootstrap.datepicker/bootstrap.datepicker-tests.ts create mode 100644 bootstrap.datepicker/bootstrap.datepicker.d.ts diff --git a/README.md b/README.md index c636fb8fd..0db7e815a 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Complete * [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov)) * [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) * [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov)) +* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov)) * [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon)) * [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov)) diff --git a/bootstrap.datepicker/bootstrap.datepicker-tests.ts b/bootstrap.datepicker/bootstrap.datepicker-tests.ts new file mode 100644 index 000000000..9ba7fe3fd --- /dev/null +++ b/bootstrap.datepicker/bootstrap.datepicker-tests.ts @@ -0,0 +1,79 @@ +/// +/// + +function tests_simple() { + $('#datepicker').datepicker(); + $('#datepicker').datepicker({ + format: 'mm-dd-yyyy' + }); + $('#datepicker').datepicker('setStartDate'); + $('#datepicker').datepicker('setStartDate', null); + $('#datepicker').datepicker('setEndDate', '2012-12-31'); + $('#date-end') + .datepicker() + .on('changeDate', function (ev) { }); + + var startDate = new Date(2012, 1, 20); + var endDate = new Date(2012, 1, 25); + $('#date-start') + .datepicker() + .on('changeDate', function (ev) { + if (ev.date.valueOf() > endDate.valueOf()) { + $('#alert').show().find('strong').text('The start date must be before the end date.'); + } else { + $('#alert').hide(); + startDate = new Date(ev.date); + $('#date-start-display').text($('#date-start').data('date')); + } + $('#date-start').datepicker('hide'); + }); + $('#date-end') + .datepicker() + .on('changeDate', function (ev) { + if (ev.date.valueOf() < startDate.valueOf()) { + $('#alert').show().find('strong').text('The end date must be after the start date.'); + } else { + $('#alert').hide(); + endDate = new Date(ev.date); + $('#date-end-display').text($('#date-end').data('date')); + } + $('#date-end').datepicker('hide'); + }); +} + +$(function () { + $('#dp1').datepicker({ + format: 'mm-dd-yyyy' + }); + $('#dp2').datepicker(); + $('#dp3').datepicker(); + $('#dp3').datepicker(); + $('#dpYears').datepicker(); + $('#dpMonths').datepicker(); + + + var startDate = new Date(2012, 1, 20); + var endDate = new Date(2012, 1, 25); + $('#dp4').datepicker() + .on('changeDate', function (ev) { + if (ev.date.valueOf() > endDate.valueOf()) { + $('#alert').show().find('strong').text('The start date can not be greater then the end date'); + } else { + $('#alert').hide(); + startDate = new Date(ev.date); + $('#startDate').text($('#dp4').data('date')); + } + $('#dp4').datepicker('hide'); + }); + $('#dp5').datepicker() + .on('changeDate', function (ev) { + if (ev.date.valueOf() < startDate.valueOf()) { + $('#alert').show().find('strong').text('The end date can not be less then the start date'); + } else { + $('#alert').hide(); + endDate = new Date(ev.date); + $('#endDate').text($('#dp5').data('date')); + } + $('#dp5').datepicker('hide'); + }); +}); \ No newline at end of file diff --git a/bootstrap.datepicker/bootstrap.datepicker.d.ts b/bootstrap.datepicker/bootstrap.datepicker.d.ts new file mode 100644 index 000000000..118526f91 --- /dev/null +++ b/bootstrap.datepicker/bootstrap.datepicker.d.ts @@ -0,0 +1,27 @@ +// Type definitions for bootstrap.datepicker +// Project: https://github.com/eternicode/bootstrap-datepicker +// Definitions by: Boris Yankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +/// + +interface DatepickerOptions { + format?: string; + weekStart?: number; + startDate?: Date; + endDate?: Date; + autoclose?: bool; + startView?: number; + todayBtn?: bool; + todayHighlight?: bool; + keyboardNavigation?: bool; + language?: string; +} + +interface JQuery { + datepicker(): JQuery; + datepicker(methodName: string): JQuery; + datepicker(methodName: string, params: any): JQuery; + datepicker(options: DatepickerOptions): JQuery; +} \ No newline at end of file