1/*!
2 * DateRangePicker Javascript.
3 *
4 * @copyright Copyright (c) WHMCS Limited 2005-2019
5 * @license http://www.whmcs.com/license/ WHMCS Eula
6 */
7function initDateRangePicker()
8{
9 jQuery(document).ready(function () {
10 // Date range picker.
11
12 jQuery('.date-picker-search').each(function (index) {
13 var self = jQuery(this),
14 opens = self.data('opens'),
15 drops = self.data('drops'),
16 range = adminJsVars.dateRangePicker.defaultRanges,
17 format = adminJsVars.dateRangeFormat;
18 if (!opens || typeof opens === "undefined") {
19 opens = 'center';
20 }
21 if (!drops || typeof drops === "undefined") {
22 drops = 'down';
23 }
24 if (self.hasClass('future')) {
25 range = adminJsVars.dateRangePicker.futureRanges;
26 }
27 self.daterangepicker({
28 autoUpdateInput: false,
29 ranges: range,
30 alwaysShowCalendars: true,
31 opens: opens,
32 drops: drops,
33 showDropdowns: true,
34 minYear: adminJsVars.minYear,
35 maxYear: adminJsVars.maxYear,
36 locale: {
37 format: format,
38 applyLabel: adminJsVars.dateRangePicker.applyLabel,
39 cancelLabel: adminJsVars.dateRangePicker.cancelLabel,
40 customRangeLabel: adminJsVars.dateRangePicker.customRangeLabel,
41 monthNames: adminJsVars.dateRangePicker.months,
42 daysOfWeek: adminJsVars.dateRangePicker.daysOfWeek
43 }
44 }).on('show.daterangepicker', function (ev, picker) {
45 // Identify the date picker modal using the input ID if available.
46 if (picker.element[0].id != '') {
47 picker.container[0].id = 'dateRangePicker_' + picker.element[0].id;
48 }
49 }).on('apply.daterangepicker', function (ev, picker) {
50 jQuery(this).val(picker.startDate.format(adminJsVars.dateRangeFormat)
51 + ' - ' + picker.endDate.format(adminJsVars.dateRangeFormat));
52 }).on('cancel.daterangepicker', function (ev, picker) {
53 jQuery(this).val('');
54 });
55 });
56
57 jQuery('.datepick,.date-picker,.date-picker-single').each(function (index) {
58 var self = jQuery(this),
59 opens = self.data('opens'),
60 drops = self.data('drops'),
61 range = adminJsVars.dateRangePicker.defaultSingleRanges,
62 format = adminJsVars.dateRangeFormat,
63 time = false;
64 if (!opens || typeof opens === "undefined") {
65 opens = 'center';
66 }
67 if (!drops || typeof drops === "undefined") {
68 drops = 'down';
69 }
70 if (self.hasClass('future')) {
71 range = adminJsVars.dateRangePicker.futureSingleRanges;
72 }
73 if (self.hasClass('time')) {
74 time = true;
75 format = adminJsVars.dateTimeRangeFormat;
76 if (self.hasClass('future')) {
77 range = adminJsVars.dateRangePicker.futureTimeSingleRanges;
78 }
79 }
80
81 self.daterangepicker({
82 singleDatePicker: true,
83 autoUpdateInput: false,
84 ranges: range,
85 alwaysShowCalendars: true,
86 opens: opens,
87 drops: drops,
88 showDropdowns: true,
89 minYear: adminJsVars.minYear,
90 maxYear: adminJsVars.maxYear,
91 timePicker: time,
92 timePickerSeconds: false,
93 locale: {
94 format: format,
95 customRangeLabel: adminJsVars.dateRangePicker.customRangeLabel,
96 monthNames: adminJsVars.dateRangePicker.months,
97 daysOfWeek: adminJsVars.dateRangePicker.daysOfWeek
98 }
99 }).on('show.daterangepicker', function (ev, picker) {
100 // Identify the date picker modal using the input ID if available.
101 if (picker.element[0].id != '') {
102 picker.container[0].id = 'dateRangePicker_' + picker.element[0].id;
103 }
104 }).on('apply.daterangepicker', function (ev, picker) {
105 jQuery(this).data(
106 'original-value',
107 picker.startDate.format(format)
108 )
109 .val(picker.startDate.format(format));
110 }).on('cancel.daterangepicker', function (ev, picker) {
111 jQuery(this).val(jQuery(this).data('original-value'));
112 });
113 });
114 });
115}
116initDateRangePicker();
117