/// // Date picker tests from http://amsul.ca/pickadate.js/date/ $('.datepicker').pickadate(); // Change the month and weekday labels $('.datepicker').pickadate({ weekdaysShort: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], showMonthsShort: true }); // Change button text or hide a button completely $('.datepicker').pickadate({ today: '', clear: 'Clear selection', close: 'Cancel' }); // Change the title attributes of several elements within the picker $('.datepicker').pickadate({ labelMonthNext: 'Go to the next month', labelMonthPrev: 'Go to the previous month', labelMonthSelect: 'Pick a month from the dropdown', labelYearSelect: 'Pick a year from the dropdown', selectMonths: true, selectYears: true }); // Extend the default picker options for all instances. $.extend($.fn.pickadate.defaults, { monthsFull: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'], weekdaysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'], today: 'aujourd\'hui', clear: 'effacer', formatSubmit: 'yyyy/mm/dd' }); // Or, pass the months and weekdays as an array for each invocation. $('.datepicker').pickadate({ monthsFull: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'], weekdaysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'], today: 'aujourd\'hui', clear: 'effacer', formatSubmit: 'yyyy/mm/dd' }); // Display a human-friendly format and use an alternate one to submit to the server $('.datepicker').pickadate({ // Escape any "rule" characters with an exclamation mark (!). format: 'You selecte!d: dddd, dd mmm, yyyy', formatSubmit: 'yyyy/mm/dd', hiddenPrefix: 'prefix__', hiddenSuffix: '__suffix' }); // Send the hidden value only $('.datepicker').pickadate({ formatSubmit: 'yyyy/mm/dd', hiddenName: true }); // Editable input $('.datepicker').pickadate({ editable: true }); // Display select menus to pick the month and year $('.datepicker').pickadate({ selectYears: true, selectMonths: true }); // Specify the number of years to show in the dropdown using an // even integer - half before and half after the year in focus: $('.datepicker').pickadate({ // `true` defaults to 10. selectYears: 4 }); // The first day of the week can be set to either Sunday or Monday. // Anything truth-y sets it as Monday and anything false-y as Sunday. $('.datepicker').pickadate({ firstDay: 1 }); // Date Limits // Using JavaScript dates $('.datepicker').pickadate({ min: new Date(2013, 3, 20), max: new Date(2013, 7, 14) }); // Using arrays formatted as [YEAR,MONTH,DATE] $('.datepicker').pickadate({ min: [2013, 3, 20], max: [2013, 7, 14] }); // Using integers or a boolean $('.datepicker').pickadate({ // An integer (positive/negative) sets it relative to today. min: -15, // `true` sets it to today. `false` removes any limits. max: true }); // Disable dates // Using JavaScript dates $('.datepicker').pickadate({ disable: [ new Date(2013, 3, 13), new Date(2013, 3, 29) ] }); // Using arrays formatted as [YEAR,MONTH,DATE] $('.datepicker').pickadate({ disable: [ [2015, 3, 3], [2015, 3, 12], [2015, 3, 20] ] }); // Using integers as days of the week (1 to 7) $('.datepicker').pickadate({ disable: [ 1, 4, 7 ] }); // Using objects as a range of dates $('.datepicker').pickadate({ disable: [ { from: [2016, 2, 14], to: [2016, 2, 27] } ] }); // Enable only a specific or arbitrary set of dates by setting true as the first item in the collection $('.datepicker').pickadate({ disable: [ true, 1, 4, 7, [2013, 3, 3], [2013, 3, 12], [2013, 3, 20], new Date(2015, 3, 13), new Date(2015, 3, 29) ] }); // Enable dates that fall within a range of disabled dates by adding // the inverted parameter to the item within the collection $('.datepicker').pickadate({ disable: [ 5, [2015, 10, 21, 'inverted'], { from: [2016, 3, 15], to: [2016, 3, 25] }, [2016, 3, 20, 'inverted'], { from: [2016, 3, 17], to: [2016, 3, 18], inverted: true } ] }); // Specify where to insert the root element by passing any valid CSS selector to the container option $('.datepicker').pickadate({ container: '#root-picker-outlet' }); // Specify where to insert the hidden element by passing any valid CSS selector to the containerHidden option $('.datepicker').pickadate({ containerHidden: '#hidden-input-outlet' }); // Close on a user action $('.datepicker').pickadate({ closeOnSelect: false, closeOnClear: false }); // Fire off events as the user interacts with the picker $('.datepicker').pickadate({ onStart: function () { console.log('Hello there :)') }, onRender: function () { console.log('Whoa.. rendered anew') }, onOpen: function () { console.log('Opened up') }, onClose: function () { console.log('Closed now') }, onStop: function () { console.log('See ya.') }, onSet: function (context) { console.log('Just set stuff:', context) } }); // Time picker tests from http://amsul.ca/pickadate.js/time/ $('.timepicker').pickatime(); // Extend the default picker options for all instances. $.extend($.fn.pickatime.defaults, { clear: 'Effacer' }); // Or, pass the months and weekdays as an array for each invocation. $('.timepicker').pickatime({ clear: 'Effacer' }); // Change the text or hide the button completely by passing a false-y value $('.timepicker').pickatime({ clear: '' }); // Display a human-friendly label and input format and use an alternate one to submit $('.timepicker').pickatime({ // Escape any "rule" characters with an exclamation mark (!). format: 'T!ime selected: h:i a', formatLabel: 'h:i a', formatSubmit: 'HH:i', hiddenPrefix: 'prefix__', hiddenSuffix: '__suffix' }); // The formatLabel option is unique. It can contain HTML and it can also // be a function if you want to create the label during run-time: $('.timepicker').pickatime({ formatLabel: function (time) { var hours = (time.pick - this.get('now').pick) / 60, label = hours < 0 ? ' !hours to now' : hours > 0 ? ' !hours from now' : 'now' return 'h:i a ' + (hours ? Math.abs(hours) : '') + label + '' } }); // Send the hidden value only $('.timepicker').pickatime({ formatSubmit: 'HH:i', hiddenName: true }); // Editable input $('.timepicker').pickatime({ editable: true }); // Choose the minutes interval between each time in the list $('.timepicker').pickatime({ interval: 150 }); // Time Limits // Using JavaScript dates $('.timepicker').pickatime({ min: new Date(2015, 3, 20, 7), max: new Date(2015, 7, 14, 18, 30) }); // Using arrays formatted as [HOUR,MINUTE] $('.timepicker').pickatime({ min: [7, 30], max: [14, 0] }); // Using integers or a boolean $('.timepicker').pickatime({ // An integer (positive/negative) sets it as intervals relative from now. min: -5, // `true` sets it to now. `false` removes any limits. max: true }); // Disable Times // Using JavaScript dates $('.timepicker').pickatime({ disable: [ new Date(2016, 3, 20, 4, 30), new Date(2016, 3, 20, 9) ] }); // Using arrays formatted as [HOUR,MINUTE] $('.timepicker').pickatime({ disable: [ [0, 30], [2, 0], [8, 30], [9, 0] ] }); // Using integers as hours (0 to 23) $('.timepicker').pickatime({ disable: [ 3, 5, 7 ] }); // Using objects as a range of times $('.timepicker').pickatime({ disable: [ { from: [2, 0], to: [5, 30] } ] }); // Enable only a specific or arbitrary set of times by setting true as the first item in the collection $('.timepicker').pickatime({ disable: [ true, 3, 5, 7, [0, 30], [2, 0], [8, 30], [9, 0] ] }); // Enable times that fall within a range of disabled times by adding // the inverted parameter to the item within the collection $('.timepicker').pickatime({ disable: [ 1, [1, 30, 'inverted'], { from: [4, 30], to: [10, 30] }, [6, 30, 'inverted'], { from: [8, 0], to: [9, 0], inverted: true } ] }); // Specify where to insert the root element by passing any valid CSS selector to the container option $('.timepicker').pickatime({ container: '#root-picker-outlet' }); // Specify where to insert the hidden element by passing any valid CSS selector to the containerHidden option $('.timepicker').pickatime({ containerHidden: '#hidden-input-outlet' }); // Close on a user action $('.timepicker').pickatime({ closeOnSelect: false, closeOnClear: false }); // Fire off events as the user interacts with the picker $('.timepicker').pickatime({ onStart: function () { console.log('Hello there :)') }, onRender: function () { console.log('Whoa.. rendered anew') }, onOpen: function () { console.log('Opened up') }, onClose: function () { console.log('Closed now') }, onStop: function () { console.log('See ya.') }, onSet: function (context) { console.log('Just set stuff:', context) } }); // API tests from http://amsul.ca/pickadate.js/api/ var $input = $('.datepicker').pickadate(); // Use the picker object directly. var picker = $input.pickadate('picker'); picker.$node; picker.$root; picker._hidden; // Or pass through the element’s plugin data. $input.pickadate('open'); $input.pickadate('close'); $input.pickadate('close'); $input.pickadate('start'); $input.pickadate('stop'); $input.pickadate('render'); $input.pickadate('get'); $input.pickadate('set', 'highlight', 1429970887654); $input.pickadate('on', 'open', function () { }); $input.pickadate('on', 'close', function () { }); $input.pickadate('off', 'open', 'close'); $input.pickadate('trigger', 'open'); $input.pickadate('$node'); $input.pickadate('$root'); $input.pickadate('_hidden'); picker.open().clear().close(); picker.open(); picker.close(); picker.close(true); picker.open(false); $(document).on('click', function () { picker.close(); }); picker.start(); picker.stop(); picker.render(); picker.render(true); picker.clear(); picker.get(); // Short for `picker.get('value')` picker.get('select'); picker.get('select', 'yyyy/mm/dd'); picker.get('highlight'); picker.get('highlight', 'yyyy/mm/dd'); picker.get('view'); picker.get('view', 'yyyy/mm/dd'); picker.get('min'); picker.get('min', 'yyyy/mm/dd'); picker.get('max'); picker.get('max', 'yyyy/mm/dd'); picker.get('open'); picker.get('start'); picker.get('id'); picker.get('enable'); picker.get('disable'); // Set multiple at once picker.set({ select: new Date(2015, 3, 20), highlight: [2015, 3, 20], min: -4 }); // Muted callbacks // One at a time picker.set('disable', 'flip', { muted: true }); // Multiple at once picker.set({ select: [1988, 7, 14], view: new Date(1988, 7, 14), max: 4 }, { muted: true }); // Clear the value in the picker’s input element. picker.set('clear'); // Set select for a date item object // Using arrays formatted as [YEAR,MONTH,DATE]. picker.set('select', [2013, 3, 20]); // Using JavaScript Date objects. picker.set('select', new Date(2013, 3, 20)); // Using positive integers as UNIX timestamps. picker.set('select', 1365961912346); // Using a string along with the parsing format (defaults to `format` option). picker.set('select', '2016-04-20', { format: 'yyyy-mm-dd' }); // Set select for a time item object // Using arrays formatted as [HOUR,MINUTE]. picker.set('select', [3, 0]); // Using JavaScript Date objects. picker.set('select', new Date(2015, 3, 20, 10, 30)); // Using positive integers as minutes. picker.set('select', 540); // Using a string along with the parsing format (defaults to `format` option). picker.set('select', '04-30', { format: 'hh-i' }); // Set highlight for a date item object // Using arrays formatted as [YEAR,MONTH,DATE]. picker.set('highlight', [2013, 3, 20]); // Using JavaScript Date objects. picker.set('highlight', new Date(2015, 3, 30)); // Using positive integers as UNIX timestamps. picker.set('highlight', 1365961912346); // Using a string along with the parsing format (defaults to `format` option). picker.set('highlight', '2016-04-20', { format: 'yyyy-mm-dd' }); // Set highlight for a time item object // Using arrays formatted as [HOUR,MINUTE]. picker.set('highlight', [15, 30]); // Using JavaScript Date objects. picker.set('highlight', new Date(2015, 3, 20, 10, 30)); // Using positive integers as minutes. picker.set('highlight', 1080); // Using a string along with the parsing format (defaults to `format` option). picker.set('highlight', '04-30', { format: 'hh-i' }); // Set view for a date item object // Using arrays formatted as [YEAR,MONTH,DATE]. picker.set('view', [2000, 3, 20]); // Using JavaScript Date objects. picker.set('view', new Date(1988, 7, 14)); // Using positive integers as UNIX timestamps. picker.set('view', 1587355200000); // Using a string along with the parsing format (defaults to `format` option). picker.set('view', '2016-04-20', { format: 'yyyy-mm-dd' }); // Set view for a time item object // Using arrays formatted as [HOUR,MINUTE]. picker.set('view', [15, 30]); // Using JavaScript Date objects. picker.set('view', new Date(2015, 3, 20, 10, 30)); // Using positive integers as minutes. picker.set('view', 1080); // Using a string along with the parsing format (defaults to `format` option). picker.set('view', '04-30', { format: 'hh-i' }); // Limit the min date // Using arrays formatted as [YEAR,MONTH,DATE]. picker.set('min', [2013, 3, 20]); // Using JavaScript Date objects. picker.set('min', new Date(2015, 7, 14)); // Using formatted strings. picker.set('min', '8 January, 2016'); // Using integers as days relative to today. picker.set('min', -4); // Using `true` for "today". picker.set('min', true); // Using `false` to remove. picker.set('min', false); // Limit the min time // Using arrays formatted as [HOUR,MINUTE]. picker.set('min', [15, 30]); // Using JavaScript Date objects. picker.set('min', new Date(2015, 3, 20, 10, 30)); // Using formatted strings. picker.set('min', '4:30 PM'); // Using integers as intervals relative from now. picker.set('min', -4); // Using `true` for "now". picker.set('min', true); // Using `false` to remove. picker.set('min', false); // Limit the max date // Using arrays formatted as [YEAR,MONTH,DATE]. picker.set('max', [2013, 3, 20]); // Using JavaScript Date objects. picker.set('max', new Date(2015, 7, 14)); // Using formatted strings. picker.set('max', '20 April, 2016'); // Using integers as days relative to today. picker.set('max', 4); // Using `true` for "today". picker.set('max', true); // Using `false` to remove. picker.set('max', false); // Limit the max time // Using arrays formatted as [HOUR,MINUTE]. picker.set('max', [15, 30]); // Using JavaScript Date objects. picker.set('max', new Date(2015, 3, 20, 10, 30)); // Using formatted strings. picker.set('max', '11:30 AM'); // Using integers as intervals relative from now. picker.set('max', 4); // Using `true` for "now". picker.set('max', true); // Using `false` to remove. picker.set('max', false); // Disable/enable specific dates picker.set('disable', [ // Using a collection of arrays formatted as [YEAR,MONTH,DATE] [2016, 9, 3], [2016, 9, 9], [2016, 9, 20], // Using JavaScript Date objects new Date(2015, 9, 13), new Date(2015, 9, 24) ]); picker.set('enable', [ [2016, 9, 9], [2016, 9, 13], new Date(2015, 9, 20) ]); // Disable/enable ranges of dates picker.set('disable', [ 1, 4, 7, // Using integers as the days of the week (1 to 7) // Using a range object with a "from" and "to" property { from: [2016, 2, 14], to: [2016, 2, 27] } ]); picker.set('enable', [ 4, { from: [2016, 2, 24], to: [2016, 2, 27] } ]); // "Flip" the enabled and disabled dates: picker.set('disable', 'flip'); picker.set('enable', 'flip'); // Disable all the dates picker.set('disable', true); picker.set('enable', false); // Enable all the dates picker.set('enable', true); picker.set('disable', false); // Disable/enable specific times picker.set('disable', [ // Using a collection of arrays formatted as [HOUR,MINUTES] [2, 30], [4, 30], [9, 0], // Using JavaScript Date objects new Date(2015, 9, 13, 6), new Date(2015, 9, 13, 12, 30) ]); picker.set('enable', [ [4, 30], [6, 0], new Date(2015, 9, 13, 9) ]); // Disable/enable ranges of times picker.set('disable', [ 1, 4, 7, // Using integers as hours of the day (from 0 to 23) // Using a range object with a “from” and “to” property { from: [10, 30], to: [18, 0] } ]); picker.set('enable', [ 4, { from: [14, 0], to: [16, 30] } ]); // "Flip" the enabled and disabled times: picker.set('disable', 'flip'); picker.set('enable', 'flip'); // Disable all the times picker.set('disable', true); picker.set('enable', true); // Enable all the times picker.set('enable', true); picker.set('disable', false); // Enable an element within a disabled range picker.set('disable', [ // Disable all Mondays, except November 15th, 2015. 1, [2015, 10, 15, 'inverted'], // Disable all dates from March 2nd, 2016 to March 28th, 2016 // except for March 10th and all between March 14th and March 23rd. { from: [2016, 2, 2], to: [2016, 2, 28] }, [2016, 2, 10, 'inverted'], { from: [2016, 2, 14], to: [2016, 2, 23], inverted: true } ]); picker.set('disable', [ // Disable all times from 1:00 AM to 1:59 AM, except 1:30 AM. 1, [1, 30, 'inverted'], // Disable all times from 3:00 AM to 6:00 PM except // for 4:30 AM and all between 7:30 AM and 11:30 AM. { from: [3, 0], to: [18, 0] }, [4, 30, 'inverted'], { from: [7, 30], to: [11, 30], inverted: true } ]); // For the time picker only, you can change the interval between each time display // using integers representing the interval length in minutes. picker.set('interval', 15); picker.set('interval', 20); picker.set('interval', 120); picker.on({ open: function () { console.log('Opened up!') }, close: function () { console.log('Closed now') }, render: function () { console.log('Just rendered anew') }, stop: function () { console.log('See ya') }, set: function (thingSet) { console.log('Set stuff:', thingSet) } }); $('.datepicker').pickadate({ onOpen: function () { console.log('Opened up!') }, onClose: function () { console.log('Closed now') }, onRender: function () { console.log('Just rendered anew') }, onStart: function () { console.log('Hello there :)') }, onStop: function () { console.log('See ya') }, onSet: function (thingSet) { console.log('Set stuff:', thingSet) } }); picker.on('open', function () { console.log('Even when I’m opened, I’m not logged..'); }); picker.off('open'); // Trigger an event’s callbacks that have been queued up picker.on('open', function () { console.log('This logs without opening!'); }); picker.trigger('open'); // Optionally, you can also pass some data to the method being triggered picker.on('open', function (data) { console.log('This logs without opening with this data:', data); }); picker.trigger('open', { some: 'value' });