jquery_datepick 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +58 -0
- data/Rakefile +1 -0
- data/jquery_datepick.gemspec +20 -0
- data/lib/jquery_datepick/datepick_helper.rb +13 -0
- data/lib/jquery_datepick/form_helper.rb +61 -0
- data/lib/jquery_datepick/version.rb +3 -0
- data/lib/jquery_datepick.rb +16 -0
- data/vendor/assets/images/calendar-blue.gif +0 -0
- data/vendor/assets/images/calendar-green.gif +0 -0
- data/vendor/assets/images/calendar.gif +0 -0
- data/vendor/assets/javascripts/jquery.datepick-af.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-am.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ar-DZ.js +28 -0
- data/vendor/assets/javascripts/jquery.datepick-ar-EG.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ar.js +30 -0
- data/vendor/assets/javascripts/jquery.datepick-az.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-bg.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-bs.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ca.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-cs.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-da.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-de-CH.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-de.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-el.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-en-AU.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-en-GB.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-en-NZ.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-eo.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-es-AR.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-es-PE.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-es.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-et.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-eu.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-fa.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-fi.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-fo.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-fr-CH.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-fr.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-gl.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-gu.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-he.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-hi-IN.js +27 -0
- data/vendor/assets/javascripts/jquery.datepick-hi.js +27 -0
- data/vendor/assets/javascripts/jquery.datepick-hr.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-hu.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-hy.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-id.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-is.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-it.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ja.js +31 -0
- data/vendor/assets/javascripts/jquery.datepick-ka.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-km.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ko.js +31 -0
- data/vendor/assets/javascripts/jquery.datepick-lt.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-lv.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-me-ME.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-me.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-mk.js +31 -0
- data/vendor/assets/javascripts/jquery.datepick-ml.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ms.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-mt.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-nl-BE.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-nl.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-no.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-pl.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-pt-BR.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-pt.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-rm.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ro.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ru.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-sk.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-sl.js +30 -0
- data/vendor/assets/javascripts/jquery.datepick-sq.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-sr-SR.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-sr.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-sv.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ta.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-th.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-tr.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-uk.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-ur.js +30 -0
- data/vendor/assets/javascripts/jquery.datepick-vi.js +29 -0
- data/vendor/assets/javascripts/jquery.datepick-zh-CN.js +31 -0
- data/vendor/assets/javascripts/jquery.datepick-zh-HK.js +31 -0
- data/vendor/assets/javascripts/jquery.datepick-zh-TW.js +31 -0
- data/vendor/assets/javascripts/jquery.datepick.ext.js +264 -0
- data/vendor/assets/javascripts/jquery.datepick.ext.min.js +7 -0
- data/vendor/assets/javascripts/jquery.datepick.js +2056 -0
- data/vendor/assets/javascripts/jquery.datepick.lang.js +2185 -0
- data/vendor/assets/javascripts/jquery.datepick.lang.min.js +3 -0
- data/vendor/assets/javascripts/jquery.datepick.min.js +7 -0
- data/vendor/assets/javascripts/jquery.datepick.validation.js +230 -0
- data/vendor/assets/javascripts/jquery.datepick.validation.min.js +8 -0
- data/vendor/assets/stylesheets/flora.datepick.css +208 -0
- data/vendor/assets/stylesheets/humanity.datepick.css +197 -0
- data/vendor/assets/stylesheets/jquery.datepick.css +216 -0
- data/vendor/assets/stylesheets/redmond.datepick.css +199 -0
- data/vendor/assets/stylesheets/smoothness.datepick.css +200 -0
- data/vendor/assets/stylesheets/ui-black-tie.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-blitzer.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-cupertino.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-dark-hive.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-dot-luv.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-eggplant.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-excite-bike.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-flick.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-hot-sneaks.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-humanity.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-le-frog.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-mint-choc.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-overcast.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-pepper-grinder.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-redmond.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-smoothness.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-south-street.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-start.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-sunny.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-swanky-purse.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-trontastic.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-ui-darkness.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-ui-lightness.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui-vader.datepick.css +18 -0
- data/vendor/assets/stylesheets/ui.datepick.css +118 -0
- metadata +194 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
/* http://keith-wood.name/datepick.html
|
2
|
+
Hong Kong Chinese localisation for jQuery Datepicker.
|
3
|
+
Written by SCCY (samuelcychan@gmail.com). */
|
4
|
+
(function($) {
|
5
|
+
$.datepick.regional['zh-HK'] = {
|
6
|
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
7
|
+
'七月','八月','九月','十月','十一月','十二月'],
|
8
|
+
monthNamesShort: ['一','二','三','四','五','六',
|
9
|
+
'七','八','九','十','十一','十二'],
|
10
|
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
11
|
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
12
|
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
13
|
+
dateFormat: 'dd-mm-yyyy', firstDay: 0,
|
14
|
+
renderer: $.extend({}, $.datepick.defaultRenderer,
|
15
|
+
{month: $.datepick.defaultRenderer.month.
|
16
|
+
replace(/monthHeader/, 'monthHeader:yyyy年 MM')}),
|
17
|
+
prevText: '<上月', prevStatus: '顯示上月',
|
18
|
+
prevJumpText: '<<', prevJumpStatus: '顯示上一年',
|
19
|
+
nextText: '下月>', nextStatus: '顯示下月',
|
20
|
+
nextJumpText: '>>', nextJumpStatus: '顯示下一年',
|
21
|
+
currentText: '今天', currentStatus: '顯示本月',
|
22
|
+
todayText: '今天', todayStatus: '顯示本月',
|
23
|
+
clearText: '清除', clearStatus: '清除已選日期',
|
24
|
+
closeText: '關閉', closeStatus: '不改變目前的選擇',
|
25
|
+
yearStatus: '選擇年份', monthStatus: '選擇月份',
|
26
|
+
weekText: '周', weekStatus: '年內周次',
|
27
|
+
dayStatus: '選擇 m月 d日, DD', defaultStatus: '請選擇日期',
|
28
|
+
isRTL: false
|
29
|
+
};
|
30
|
+
$.datepick.setDefaults($.datepick.regional['zh-HK']);
|
31
|
+
})(jQuery);
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/* http://keith-wood.name/datepick.html
|
2
|
+
Traditional Chinese localisation for jQuery Datepicker.
|
3
|
+
Written by Ressol (ressol@gmail.com). */
|
4
|
+
(function($) {
|
5
|
+
$.datepick.regional['zh-TW'] = {
|
6
|
+
monthNames: ['一月','二月','三月','四月','五月','六月',
|
7
|
+
'七月','八月','九月','十月','十一月','十二月'],
|
8
|
+
monthNamesShort: ['一','二','三','四','五','六',
|
9
|
+
'七','八','九','十','十一','十二'],
|
10
|
+
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
|
11
|
+
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
|
12
|
+
dayNamesMin: ['日','一','二','三','四','五','六'],
|
13
|
+
dateFormat: 'yyyy/mm/dd', firstDay: 1,
|
14
|
+
renderer: $.extend({}, $.datepick.defaultRenderer,
|
15
|
+
{month: $.datepick.defaultRenderer.month.
|
16
|
+
replace(/monthHeader/, 'monthHeader:MM yyyy年')}),
|
17
|
+
prevText: '<上月', prevStatus: '顯示上月',
|
18
|
+
prevJumpText: '<<', prevJumpStatus: '顯示上一年',
|
19
|
+
nextText: '下月>', nextStatus: '顯示下月',
|
20
|
+
nextJumpText: '>>', nextJumpStatus: '顯示下一年',
|
21
|
+
currentText: '今天', currentStatus: '顯示本月',
|
22
|
+
todayText: '今天', todayStatus: '顯示本月',
|
23
|
+
clearText: '清除', clearStatus: '清除已選日期',
|
24
|
+
closeText: '關閉', closeStatus: '不改變目前的選擇',
|
25
|
+
yearStatus: '選擇年份', monthStatus: '選擇月份',
|
26
|
+
weekText: '周', weekStatus: '年內周次',
|
27
|
+
dayStatus: '選擇 m月 d日, DD', defaultStatus: '請選擇日期',
|
28
|
+
isRTL: false
|
29
|
+
};
|
30
|
+
$.datepick.setDefaults($.datepick.regional['zh-TW']);
|
31
|
+
})(jQuery);
|
@@ -0,0 +1,264 @@
|
|
1
|
+
/* http://keith-wood.name/datepick.html
|
2
|
+
Datepicker extensions for jQuery v4.1.0.
|
3
|
+
Written by Keith Wood (kbwood{at}iinet.com.au) August 2009.
|
4
|
+
Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
|
5
|
+
MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
|
6
|
+
Please attribute the author if you use it. */
|
7
|
+
|
8
|
+
(function($) { // Hide scope, no $ conflict
|
9
|
+
|
10
|
+
var themeRollerRenderer = {
|
11
|
+
picker: '<div{popup:start} id="ui-datepicker-div"{popup:end} class="ui-datepicker ui-widget ' +
|
12
|
+
'ui-widget-content ui-helper-clearfix ui-corner-all{inline:start} ui-datepicker-inline{inline:end}">' +
|
13
|
+
'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">' +
|
14
|
+
'{link:prev}{link:today}{link:next}</div>{months}' +
|
15
|
+
'{popup:start}<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ' +
|
16
|
+
'ui-corner-all">{button:clear}{button:close}</div>{popup:end}' +
|
17
|
+
'<div class="ui-helper-clearfix"></div></div>',
|
18
|
+
monthRow: '<div class="ui-datepicker-row-break">{months}</div>',
|
19
|
+
month: '<div class="ui-datepicker-group">' +
|
20
|
+
'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">{monthHeader:MM yyyy}</div>' +
|
21
|
+
'<table class="ui-datepicker-calendar"><thead>{weekHeader}</thead><tbody>{weeks}</tbody></table></div>',
|
22
|
+
weekHeader: '<tr>{days}</tr>',
|
23
|
+
dayHeader: '<th>{day}</th>',
|
24
|
+
week: '<tr>{days}</tr>',
|
25
|
+
day: '<td>{day}</td>',
|
26
|
+
monthSelector: '.ui-datepicker-group',
|
27
|
+
daySelector: 'td',
|
28
|
+
rtlClass: 'ui-datepicker-rtl',
|
29
|
+
multiClass: 'ui-datepicker-multi',
|
30
|
+
defaultClass: 'ui-state-default',
|
31
|
+
selectedClass: 'ui-state-active',
|
32
|
+
highlightedClass: 'ui-state-hover',
|
33
|
+
todayClass: 'ui-state-highlight',
|
34
|
+
otherMonthClass: 'ui-datepicker-other-month',
|
35
|
+
weekendClass: 'ui-datepicker-week-end',
|
36
|
+
commandClass: 'ui-datepicker-cmd',
|
37
|
+
commandButtonClass: 'ui-state-default ui-corner-all',
|
38
|
+
commandLinkClass: '',
|
39
|
+
disabledClass: 'ui-datepicker-disabled'
|
40
|
+
};
|
41
|
+
|
42
|
+
$.extend($.datepick, {
|
43
|
+
|
44
|
+
// Template for generating a datepicker showing week of year.
|
45
|
+
weekOfYearRenderer: $.extend({}, $.datepick.defaultRenderer, {
|
46
|
+
weekHeader: '<tr><th class="datepick-week">' +
|
47
|
+
'<span title="{l10n:weekStatus}">{l10n:weekText}</span></th>{days}</tr>',
|
48
|
+
week: '<tr><td class="datepick-week">{weekOfYear}</td>{days}</tr>'
|
49
|
+
}),
|
50
|
+
|
51
|
+
// ThemeRoller template for generating a datepicker.
|
52
|
+
themeRollerRenderer: themeRollerRenderer,
|
53
|
+
|
54
|
+
// ThemeRoller template for generating a datepicker showing week of year.
|
55
|
+
themeRollerWeekOfYearRenderer: $.extend({}, themeRollerRenderer, {
|
56
|
+
weekHeader: '<tr><th class="ui-state-hover"><span>{l10n:weekText}</span></th>{days}</tr>',
|
57
|
+
week: '<tr><td class="ui-state-hover">{weekOfYear}</td>{days}</tr>'
|
58
|
+
}),
|
59
|
+
|
60
|
+
/* Don't allow weekends to be selected.
|
61
|
+
Usage: onDate: $.datepick.noWeekends.
|
62
|
+
@param date (Date) the current date
|
63
|
+
@return (object) information about this date */
|
64
|
+
noWeekends: function(date) {
|
65
|
+
return {selectable: (date.getDay() || 7) < 6};
|
66
|
+
},
|
67
|
+
|
68
|
+
/* Change the first day of the week by clicking on the day header.
|
69
|
+
Usage: onShow: $.datepick.changeFirstDay.
|
70
|
+
@param picker (jQuery) the completed datepicker division
|
71
|
+
@param inst (object) the current instance settings */
|
72
|
+
changeFirstDay: function(picker, inst) {
|
73
|
+
var target = $(this);
|
74
|
+
picker.find('th span').each(function() {
|
75
|
+
var parent = $(this).parent();
|
76
|
+
if (parent.is('.datepick-week') || parent.is('.ui-state-hover')) {
|
77
|
+
return;
|
78
|
+
}
|
79
|
+
$('<a href="javascript:void(0)" class="' + this.className +
|
80
|
+
'" title="Change first day of the week">' + $(this).text() + '</a>').
|
81
|
+
click(function() {
|
82
|
+
var dow = parseInt(this.className.replace(/^.*datepick-dow-(\d+).*$/, '$1'), 10);
|
83
|
+
target.datepick('option', {firstDay: dow});
|
84
|
+
}).
|
85
|
+
replaceAll(this);
|
86
|
+
});
|
87
|
+
},
|
88
|
+
|
89
|
+
/* Add a callback when hovering over dates.
|
90
|
+
Usage: onShow: $.datepick.hoverCallback(handleHover).
|
91
|
+
@param onHover (function) the callback when hovering,
|
92
|
+
it receives the current date and a flag indicating selectability
|
93
|
+
as parameters on entry, and no parameters on exit,
|
94
|
+
this refers to the target input or division */
|
95
|
+
hoverCallback: function(onHover) {
|
96
|
+
return function(picker, inst) {
|
97
|
+
if ($.isFunction(onHover)) {
|
98
|
+
var target = this;
|
99
|
+
picker.find(inst.options.renderer.daySelector + ' a, ' +
|
100
|
+
inst.options.renderer.daySelector + ' span').
|
101
|
+
hover(function() {
|
102
|
+
onHover.apply(target, [$(target).datepick('retrieveDate', this),
|
103
|
+
this.nodeName.toLowerCase() == 'a']);
|
104
|
+
},
|
105
|
+
function() { onHover.apply(target, []); });
|
106
|
+
}
|
107
|
+
};
|
108
|
+
},
|
109
|
+
|
110
|
+
/* Highlight the entire week when hovering over it.
|
111
|
+
Usage: onShow: $.datepick.highlightWeek.
|
112
|
+
@param picker (jQuery) the completed datepicker division
|
113
|
+
@param inst (object) the current instance settings */
|
114
|
+
highlightWeek: function(picker, inst) {
|
115
|
+
var target = this;
|
116
|
+
var renderer = inst.options.renderer;
|
117
|
+
picker.find(renderer.daySelector + ' a, ' + renderer.daySelector + ' span').
|
118
|
+
hover(function() {
|
119
|
+
$(this).parents('tr').find(renderer.daySelector + ' *').
|
120
|
+
addClass(renderer.highlightedClass);
|
121
|
+
},
|
122
|
+
function() {
|
123
|
+
$(this).parents('tr').find(renderer.daySelector + ' *').
|
124
|
+
removeClass(renderer.highlightedClass);
|
125
|
+
});
|
126
|
+
},
|
127
|
+
|
128
|
+
/* Show a status bar with messages.
|
129
|
+
Usage: onShow: $.datepick.showStatus.
|
130
|
+
@param picker (jQuery) the completed datepicker division
|
131
|
+
@param inst (object) the current instance settings */
|
132
|
+
showStatus: function(picker, inst) {
|
133
|
+
var isTR = (inst.options.renderer.selectedClass == themeRollerRenderer.selectedClass);
|
134
|
+
var defaultStatus = inst.options.defaultStatus || ' ';
|
135
|
+
var status = $('<div class="' + (!isTR ? 'datepick-status' :
|
136
|
+
'ui-datepicker-status ui-widget-header ui-helper-clearfix ui-corner-all') + '">' +
|
137
|
+
defaultStatus + '</div>').
|
138
|
+
insertAfter(picker.find('.datepick-month-row:last,.ui-datepicker-row-break:last'));
|
139
|
+
picker.find('*[title]').each(function() {
|
140
|
+
var title = $(this).attr('title');
|
141
|
+
$(this).removeAttr('title').hover(
|
142
|
+
function() { status.text(title || defaultStatus); },
|
143
|
+
function() { status.text(defaultStatus); });
|
144
|
+
});
|
145
|
+
},
|
146
|
+
|
147
|
+
/* Allow easier navigation by month/year.
|
148
|
+
Usage: onShow: $.datepick.monthNavigation.
|
149
|
+
@param picker (jQuery) the completed datepicker division
|
150
|
+
@param inst (object) the current instance settings */
|
151
|
+
monthNavigation: function(picker, inst) {
|
152
|
+
var target = $(this);
|
153
|
+
var isTR = (inst.options.renderer.selectedClass == themeRollerRenderer.selectedClass);
|
154
|
+
var minDate = inst.curMinDate();
|
155
|
+
var maxDate = inst.get('maxDate');
|
156
|
+
var month = inst.drawDate.getMonth();
|
157
|
+
var year = inst.drawDate.getFullYear();
|
158
|
+
var html = '<div class="' + (!isTR ? 'datepick-month-nav' : 'ui-datepicker-month-nav') + '"' +
|
159
|
+
' style="display: none;">';
|
160
|
+
for (var i = 0; i < inst.options.monthNames.length; i++) {
|
161
|
+
var inRange = ((!minDate || new Date(year, i + 1, 0).getTime() >= minDate.getTime()) &&
|
162
|
+
(!maxDate || new Date(year, i, 1).getTime() <= maxDate.getTime()));
|
163
|
+
html += '<div>' +
|
164
|
+
(inRange ? '<a href="#" class="dp' + new Date(year, i, 1).getTime() + '"' : '<span') +
|
165
|
+
' title="' + inst.options.monthNames[i] + '">' + inst.options.monthNamesShort[i] +
|
166
|
+
(inRange ? '</a>' : '</span>') + '</div>';
|
167
|
+
}
|
168
|
+
for (var i = -6; i <= 6; i++) {
|
169
|
+
if (i == 0) {
|
170
|
+
continue;
|
171
|
+
}
|
172
|
+
var inRange =
|
173
|
+
((!minDate || new Date(year + i, 12 - 1, 31).getTime() >= minDate.getTime()) &&
|
174
|
+
(!maxDate || new Date(year + i, 1 - 1, 1).getTime() <= maxDate.getTime()));
|
175
|
+
html += '<div>' + (inRange ? '<a href="#" class="dp' +
|
176
|
+
new Date(year + i, month, 1).getTime() + '"' : '<span') +
|
177
|
+
' title="' + (year + i) + '">' + (year + i) +
|
178
|
+
(inRange ? '</a>' : '</span>') + '</div>';
|
179
|
+
}
|
180
|
+
html += '</div>';
|
181
|
+
html = $(html).insertAfter(picker.find('div.datepick-nav,div.ui-datepicker-header:first'));
|
182
|
+
html.find('a').click(function() {
|
183
|
+
var date = target.datepick('retrieveDate', this);
|
184
|
+
target.datepick('showMonth', date.getFullYear(), date.getMonth() + 1);
|
185
|
+
return false;
|
186
|
+
});
|
187
|
+
picker.find('div.datepick-month-header,div.ui-datepicker-month-header').click(function() {
|
188
|
+
html.slideToggle();
|
189
|
+
}).css('cursor', 'pointer');
|
190
|
+
},
|
191
|
+
|
192
|
+
/* Select an entire week when clicking on a week number.
|
193
|
+
Use in conjunction with weekOfYearRenderer or themeRollerWeekOfYearRenderer.
|
194
|
+
Usage: onShow: $.datepick.selectWeek.
|
195
|
+
@param picker (jQuery) the completed datepicker division
|
196
|
+
@param inst (object) the current instance settings */
|
197
|
+
selectWeek: function(picker, inst) {
|
198
|
+
var target = $(this);
|
199
|
+
picker.find('td.datepick-week span,td.ui-state-hover span').each(function() {
|
200
|
+
$('<a href="javascript:void(0)" class="' +
|
201
|
+
this.className + '" title="Select the entire week">' +
|
202
|
+
$(this).text() + '</a>').
|
203
|
+
click(function() {
|
204
|
+
var date = target.datepick('retrieveDate', this);
|
205
|
+
var dates = [date];
|
206
|
+
for (var i = 1; i < 7; i++) {
|
207
|
+
dates.push(date = $.datepick.add($.datepick.newDate(date), 1, 'd'));
|
208
|
+
}
|
209
|
+
if (inst.options.rangeSelect) {
|
210
|
+
dates.splice(1, dates.length - 2);
|
211
|
+
}
|
212
|
+
target.datepick('setDate', dates).datepick('hide');
|
213
|
+
}).
|
214
|
+
replaceAll(this);
|
215
|
+
});
|
216
|
+
},
|
217
|
+
|
218
|
+
/* Select an entire month when clicking on the week header.
|
219
|
+
Use in conjunction with weekOfYearRenderer or themeRollerWeekOfYearRenderer.
|
220
|
+
Usage: onShow: $.datepick.selectMonth.
|
221
|
+
@param picker (jQuery) the completed datepicker division
|
222
|
+
@param inst (object) the current instance settings */
|
223
|
+
selectMonth: function(picker, inst) {
|
224
|
+
var target = $(this);
|
225
|
+
picker.find('th.datepick-week span,th.ui-state-hover span').each(function() {
|
226
|
+
$('<a href="javascript:void(0)" title="Select the entire month">' +
|
227
|
+
$(this).text() + '</a>').
|
228
|
+
click(function() {
|
229
|
+
var date = target.datepick('retrieveDate', $(this).parents('table').
|
230
|
+
find('td:not(.datepick-week):not(.ui-state-hover) ' +
|
231
|
+
'*:not(.datepick-other-month):not(.ui-datepicker-other-month)')[0]);
|
232
|
+
var dates = [date];
|
233
|
+
var dim = $.datepick.daysInMonth(date);
|
234
|
+
for (var i = 1; i < dim; i++) {
|
235
|
+
dates.push(date = $.datepick.add($.datepick.newDate(date), 1, 'd'));
|
236
|
+
}
|
237
|
+
if (inst.options.rangeSelect) {
|
238
|
+
dates.splice(1, dates.length - 2);
|
239
|
+
}
|
240
|
+
target.datepick('setDate', dates).datepick('hide');
|
241
|
+
}).
|
242
|
+
replaceAll(this);
|
243
|
+
});
|
244
|
+
},
|
245
|
+
|
246
|
+
/* Select a month only instead of a single day.
|
247
|
+
Usage: onShow: $.datepick.monthOnly.
|
248
|
+
@param picker (jQuery) the completed datepicker division
|
249
|
+
@param inst (object) the current instance settings */
|
250
|
+
monthOnly: function(picker, inst) {
|
251
|
+
var target = $(this);
|
252
|
+
var selectMonth = $('<div style="text-align: center;"><button type="button">Select</button></div>').
|
253
|
+
insertAfter(picker.find('.datepick-month-row:last,.ui-datepicker-row-break:last')).
|
254
|
+
children().click(function() {
|
255
|
+
var monthYear = picker.find('.datepick-month-year:first').val().split('/');
|
256
|
+
target.datepick('setDate', $.datepick.newDate(
|
257
|
+
parseInt(monthYear[1], 10), parseInt(monthYear[0], 10), 1)).
|
258
|
+
datepick('hide');
|
259
|
+
});
|
260
|
+
picker.find('.datepick-month-row table,.ui-datepicker-row-break table').remove();
|
261
|
+
}
|
262
|
+
});
|
263
|
+
|
264
|
+
})(jQuery);
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/* http://keith-wood.name/datepick.html
|
2
|
+
Datepicker extensions for jQuery v4.1.0.
|
3
|
+
Written by Keith Wood (kbwood{at}iinet.com.au) August 2009.
|
4
|
+
Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
|
5
|
+
MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
|
6
|
+
Please attribute the author if you use it. */
|
7
|
+
(function($){var m={picker:'<div{popup:start} id="ui-datepicker-div"{popup:end} class="ui-datepicker ui-widget '+'ui-widget-content ui-helper-clearfix ui-corner-all{inline:start} ui-datepicker-inline{inline:end}">'+'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">'+'{link:prev}{link:today}{link:next}</div>{months}'+'{popup:start}<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix '+'ui-corner-all">{button:clear}{button:close}</div>{popup:end}'+'<div class="ui-helper-clearfix"></div></div>',monthRow:'<div class="ui-datepicker-row-break">{months}</div>',month:'<div class="ui-datepicker-group">'+'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">{monthHeader:MM yyyy}</div>'+'<table class="ui-datepicker-calendar"><thead>{weekHeader}</thead><tbody>{weeks}</tbody></table></div>',weekHeader:'<tr>{days}</tr>',dayHeader:'<th>{day}</th>',week:'<tr>{days}</tr>',day:'<td>{day}</td>',monthSelector:'.ui-datepicker-group',daySelector:'td',rtlClass:'ui-datepicker-rtl',multiClass:'ui-datepicker-multi',defaultClass:'ui-state-default',selectedClass:'ui-state-active',highlightedClass:'ui-state-hover',todayClass:'ui-state-highlight',otherMonthClass:'ui-datepicker-other-month',weekendClass:'ui-datepicker-week-end',commandClass:'ui-datepicker-cmd',commandButtonClass:'ui-state-default ui-corner-all',commandLinkClass:'',disabledClass:'ui-datepicker-disabled'};$.extend($.datepick,{weekOfYearRenderer:$.extend({},$.datepick.defaultRenderer,{weekHeader:'<tr><th class="datepick-week">'+'<span title="{l10n:weekStatus}">{l10n:weekText}</span></th>{days}</tr>',week:'<tr><td class="datepick-week">{weekOfYear}</td>{days}</tr>'}),themeRollerRenderer:m,themeRollerWeekOfYearRenderer:$.extend({},m,{weekHeader:'<tr><th class="ui-state-hover"><span>{l10n:weekText}</span></th>{days}</tr>',week:'<tr><td class="ui-state-hover">{weekOfYear}</td>{days}</tr>'}),noWeekends:function(a){return{selectable:(a.getDay()||7)<6}},changeFirstDay:function(c,d){var e=$(this);c.find('th span').each(function(){var b=$(this).parent();if(b.is('.datepick-week')||b.is('.ui-state-hover')){return}$('<a href="javascript:void(0)" class="'+this.className+'" title="Change first day of the week">'+$(this).text()+'</a>').click(function(){var a=parseInt(this.className.replace(/^.*datepick-dow-(\d+).*$/,'$1'),10);e.datepick('option',{firstDay:a})}).replaceAll(this)})},hoverCallback:function(d){return function(a,b){if($.isFunction(d)){var c=this;a.find(b.options.renderer.daySelector+' a, '+b.options.renderer.daySelector+' span').hover(function(){d.apply(c,[$(c).datepick('retrieveDate',this),this.nodeName.toLowerCase()=='a'])},function(){d.apply(c,[])})}}},highlightWeek:function(a,b){var c=this;var d=b.options.renderer;a.find(d.daySelector+' a, '+d.daySelector+' span').hover(function(){$(this).parents('tr').find(d.daySelector+' *').addClass(d.highlightedClass)},function(){$(this).parents('tr').find(d.daySelector+' *').removeClass(d.highlightedClass)})},showStatus:function(b,c){var d=(c.options.renderer.selectedClass==m.selectedClass);var e=c.options.defaultStatus||' ';var f=$('<div class="'+(!d?'datepick-status':'ui-datepicker-status ui-widget-header ui-helper-clearfix ui-corner-all')+'">'+e+'</div>').insertAfter(b.find('.datepick-month-row:last,.ui-datepicker-row-break:last'));b.find('*[title]').each(function(){var a=$(this).attr('title');$(this).removeAttr('title').hover(function(){f.text(a||e)},function(){f.text(e)})})},monthNavigation:function(b,c){var d=$(this);var e=(c.options.renderer.selectedClass==m.selectedClass);var f=c.curMinDate();var g=c.get('maxDate');var h=c.drawDate.getMonth();var j=c.drawDate.getFullYear();var k='<div class="'+(!e?'datepick-month-nav':'ui-datepicker-month-nav')+'"'+' style="display: none;">';for(var i=0;i<c.options.monthNames.length;i++){var l=((!f||new Date(j,i+1,0).getTime()>=f.getTime())&&(!g||new Date(j,i,1).getTime()<=g.getTime()));k+='<div>'+(l?'<a href="#" class="dp'+new Date(j,i,1).getTime()+'"':'<span')+' title="'+c.options.monthNames[i]+'">'+c.options.monthNamesShort[i]+(l?'</a>':'</span>')+'</div>'}for(var i=-6;i<=6;i++){if(i==0){continue}var l=((!f||new Date(j+i,12-1,31).getTime()>=f.getTime())&&(!g||new Date(j+i,1-1,1).getTime()<=g.getTime()));k+='<div>'+(l?'<a href="#" class="dp'+new Date(j+i,h,1).getTime()+'"':'<span')+' title="'+(j+i)+'">'+(j+i)+(l?'</a>':'</span>')+'</div>'}k+='</div>';k=$(k).insertAfter(b.find('div.datepick-nav,div.ui-datepicker-header:first'));k.find('a').click(function(){var a=d.datepick('retrieveDate',this);d.datepick('showMonth',a.getFullYear(),a.getMonth()+1);return false});b.find('div.datepick-month-header,div.ui-datepicker-month-header').click(function(){k.slideToggle()}).css('cursor','pointer')},selectWeek:function(c,d){var e=$(this);c.find('td.datepick-week span,td.ui-state-hover span').each(function(){$('<a href="javascript:void(0)" class="'+this.className+'" title="Select the entire week">'+$(this).text()+'</a>').click(function(){var a=e.datepick('retrieveDate',this);var b=[a];for(var i=1;i<7;i++){b.push(a=$.datepick.add($.datepick.newDate(a),1,'d'))}if(d.options.rangeSelect){b.splice(1,b.length-2)}e.datepick('setDate',b).datepick('hide')}).replaceAll(this)})},selectMonth:function(d,e){var f=$(this);d.find('th.datepick-week span,th.ui-state-hover span').each(function(){$('<a href="javascript:void(0)" title="Select the entire month">'+$(this).text()+'</a>').click(function(){var a=f.datepick('retrieveDate',$(this).parents('table').find('td:not(.datepick-week):not(.ui-state-hover) '+'*:not(.datepick-other-month):not(.ui-datepicker-other-month)')[0]);var b=[a];var c=$.datepick.daysInMonth(a);for(var i=1;i<c;i++){b.push(a=$.datepick.add($.datepick.newDate(a),1,'d'))}if(e.options.rangeSelect){b.splice(1,b.length-2)}f.datepick('setDate',b).datepick('hide')}).replaceAll(this)})},monthOnly:function(b,c){var d=$(this);var e=$('<div style="text-align: center;"><button type="button">Select</button></div>').insertAfter(b.find('.datepick-month-row:last,.ui-datepicker-row-break:last')).children().click(function(){var a=b.find('.datepick-month-year:first').val().split('/');d.datepick('setDate',$.datepick.newDate(parseInt(a[1],10),parseInt(a[0],10),1)).datepick('hide')});b.find('.datepick-month-row table,.ui-datepicker-row-break table').remove()}})})(jQuery);
|