jquery_datepick 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +58 -0
  5. data/Rakefile +1 -0
  6. data/jquery_datepick.gemspec +20 -0
  7. data/lib/jquery_datepick/datepick_helper.rb +13 -0
  8. data/lib/jquery_datepick/form_helper.rb +61 -0
  9. data/lib/jquery_datepick/version.rb +3 -0
  10. data/lib/jquery_datepick.rb +16 -0
  11. data/vendor/assets/images/calendar-blue.gif +0 -0
  12. data/vendor/assets/images/calendar-green.gif +0 -0
  13. data/vendor/assets/images/calendar.gif +0 -0
  14. data/vendor/assets/javascripts/jquery.datepick-af.js +29 -0
  15. data/vendor/assets/javascripts/jquery.datepick-am.js +29 -0
  16. data/vendor/assets/javascripts/jquery.datepick-ar-DZ.js +28 -0
  17. data/vendor/assets/javascripts/jquery.datepick-ar-EG.js +29 -0
  18. data/vendor/assets/javascripts/jquery.datepick-ar.js +30 -0
  19. data/vendor/assets/javascripts/jquery.datepick-az.js +29 -0
  20. data/vendor/assets/javascripts/jquery.datepick-bg.js +29 -0
  21. data/vendor/assets/javascripts/jquery.datepick-bs.js +29 -0
  22. data/vendor/assets/javascripts/jquery.datepick-ca.js +29 -0
  23. data/vendor/assets/javascripts/jquery.datepick-cs.js +29 -0
  24. data/vendor/assets/javascripts/jquery.datepick-da.js +29 -0
  25. data/vendor/assets/javascripts/jquery.datepick-de-CH.js +29 -0
  26. data/vendor/assets/javascripts/jquery.datepick-de.js +29 -0
  27. data/vendor/assets/javascripts/jquery.datepick-el.js +29 -0
  28. data/vendor/assets/javascripts/jquery.datepick-en-AU.js +29 -0
  29. data/vendor/assets/javascripts/jquery.datepick-en-GB.js +29 -0
  30. data/vendor/assets/javascripts/jquery.datepick-en-NZ.js +29 -0
  31. data/vendor/assets/javascripts/jquery.datepick-eo.js +29 -0
  32. data/vendor/assets/javascripts/jquery.datepick-es-AR.js +29 -0
  33. data/vendor/assets/javascripts/jquery.datepick-es-PE.js +29 -0
  34. data/vendor/assets/javascripts/jquery.datepick-es.js +29 -0
  35. data/vendor/assets/javascripts/jquery.datepick-et.js +29 -0
  36. data/vendor/assets/javascripts/jquery.datepick-eu.js +29 -0
  37. data/vendor/assets/javascripts/jquery.datepick-fa.js +29 -0
  38. data/vendor/assets/javascripts/jquery.datepick-fi.js +29 -0
  39. data/vendor/assets/javascripts/jquery.datepick-fo.js +29 -0
  40. data/vendor/assets/javascripts/jquery.datepick-fr-CH.js +29 -0
  41. data/vendor/assets/javascripts/jquery.datepick-fr.js +29 -0
  42. data/vendor/assets/javascripts/jquery.datepick-gl.js +29 -0
  43. data/vendor/assets/javascripts/jquery.datepick-gu.js +29 -0
  44. data/vendor/assets/javascripts/jquery.datepick-he.js +29 -0
  45. data/vendor/assets/javascripts/jquery.datepick-hi-IN.js +27 -0
  46. data/vendor/assets/javascripts/jquery.datepick-hi.js +27 -0
  47. data/vendor/assets/javascripts/jquery.datepick-hr.js +29 -0
  48. data/vendor/assets/javascripts/jquery.datepick-hu.js +29 -0
  49. data/vendor/assets/javascripts/jquery.datepick-hy.js +29 -0
  50. data/vendor/assets/javascripts/jquery.datepick-id.js +29 -0
  51. data/vendor/assets/javascripts/jquery.datepick-is.js +29 -0
  52. data/vendor/assets/javascripts/jquery.datepick-it.js +29 -0
  53. data/vendor/assets/javascripts/jquery.datepick-ja.js +31 -0
  54. data/vendor/assets/javascripts/jquery.datepick-ka.js +29 -0
  55. data/vendor/assets/javascripts/jquery.datepick-km.js +29 -0
  56. data/vendor/assets/javascripts/jquery.datepick-ko.js +31 -0
  57. data/vendor/assets/javascripts/jquery.datepick-lt.js +29 -0
  58. data/vendor/assets/javascripts/jquery.datepick-lv.js +29 -0
  59. data/vendor/assets/javascripts/jquery.datepick-me-ME.js +29 -0
  60. data/vendor/assets/javascripts/jquery.datepick-me.js +29 -0
  61. data/vendor/assets/javascripts/jquery.datepick-mk.js +31 -0
  62. data/vendor/assets/javascripts/jquery.datepick-ml.js +29 -0
  63. data/vendor/assets/javascripts/jquery.datepick-ms.js +29 -0
  64. data/vendor/assets/javascripts/jquery.datepick-mt.js +29 -0
  65. data/vendor/assets/javascripts/jquery.datepick-nl-BE.js +29 -0
  66. data/vendor/assets/javascripts/jquery.datepick-nl.js +29 -0
  67. data/vendor/assets/javascripts/jquery.datepick-no.js +29 -0
  68. data/vendor/assets/javascripts/jquery.datepick-pl.js +29 -0
  69. data/vendor/assets/javascripts/jquery.datepick-pt-BR.js +29 -0
  70. data/vendor/assets/javascripts/jquery.datepick-pt.js +29 -0
  71. data/vendor/assets/javascripts/jquery.datepick-rm.js +29 -0
  72. data/vendor/assets/javascripts/jquery.datepick-ro.js +29 -0
  73. data/vendor/assets/javascripts/jquery.datepick-ru.js +29 -0
  74. data/vendor/assets/javascripts/jquery.datepick-sk.js +29 -0
  75. data/vendor/assets/javascripts/jquery.datepick-sl.js +30 -0
  76. data/vendor/assets/javascripts/jquery.datepick-sq.js +29 -0
  77. data/vendor/assets/javascripts/jquery.datepick-sr-SR.js +29 -0
  78. data/vendor/assets/javascripts/jquery.datepick-sr.js +29 -0
  79. data/vendor/assets/javascripts/jquery.datepick-sv.js +29 -0
  80. data/vendor/assets/javascripts/jquery.datepick-ta.js +29 -0
  81. data/vendor/assets/javascripts/jquery.datepick-th.js +29 -0
  82. data/vendor/assets/javascripts/jquery.datepick-tr.js +29 -0
  83. data/vendor/assets/javascripts/jquery.datepick-uk.js +29 -0
  84. data/vendor/assets/javascripts/jquery.datepick-ur.js +30 -0
  85. data/vendor/assets/javascripts/jquery.datepick-vi.js +29 -0
  86. data/vendor/assets/javascripts/jquery.datepick-zh-CN.js +31 -0
  87. data/vendor/assets/javascripts/jquery.datepick-zh-HK.js +31 -0
  88. data/vendor/assets/javascripts/jquery.datepick-zh-TW.js +31 -0
  89. data/vendor/assets/javascripts/jquery.datepick.ext.js +264 -0
  90. data/vendor/assets/javascripts/jquery.datepick.ext.min.js +7 -0
  91. data/vendor/assets/javascripts/jquery.datepick.js +2056 -0
  92. data/vendor/assets/javascripts/jquery.datepick.lang.js +2185 -0
  93. data/vendor/assets/javascripts/jquery.datepick.lang.min.js +3 -0
  94. data/vendor/assets/javascripts/jquery.datepick.min.js +7 -0
  95. data/vendor/assets/javascripts/jquery.datepick.validation.js +230 -0
  96. data/vendor/assets/javascripts/jquery.datepick.validation.min.js +8 -0
  97. data/vendor/assets/stylesheets/flora.datepick.css +208 -0
  98. data/vendor/assets/stylesheets/humanity.datepick.css +197 -0
  99. data/vendor/assets/stylesheets/jquery.datepick.css +216 -0
  100. data/vendor/assets/stylesheets/redmond.datepick.css +199 -0
  101. data/vendor/assets/stylesheets/smoothness.datepick.css +200 -0
  102. data/vendor/assets/stylesheets/ui-black-tie.datepick.css +18 -0
  103. data/vendor/assets/stylesheets/ui-blitzer.datepick.css +18 -0
  104. data/vendor/assets/stylesheets/ui-cupertino.datepick.css +18 -0
  105. data/vendor/assets/stylesheets/ui-dark-hive.datepick.css +18 -0
  106. data/vendor/assets/stylesheets/ui-dot-luv.datepick.css +18 -0
  107. data/vendor/assets/stylesheets/ui-eggplant.datepick.css +18 -0
  108. data/vendor/assets/stylesheets/ui-excite-bike.datepick.css +18 -0
  109. data/vendor/assets/stylesheets/ui-flick.datepick.css +18 -0
  110. data/vendor/assets/stylesheets/ui-hot-sneaks.datepick.css +18 -0
  111. data/vendor/assets/stylesheets/ui-humanity.datepick.css +18 -0
  112. data/vendor/assets/stylesheets/ui-le-frog.datepick.css +18 -0
  113. data/vendor/assets/stylesheets/ui-mint-choc.datepick.css +18 -0
  114. data/vendor/assets/stylesheets/ui-overcast.datepick.css +18 -0
  115. data/vendor/assets/stylesheets/ui-pepper-grinder.datepick.css +18 -0
  116. data/vendor/assets/stylesheets/ui-redmond.datepick.css +18 -0
  117. data/vendor/assets/stylesheets/ui-smoothness.datepick.css +18 -0
  118. data/vendor/assets/stylesheets/ui-south-street.datepick.css +18 -0
  119. data/vendor/assets/stylesheets/ui-start.datepick.css +18 -0
  120. data/vendor/assets/stylesheets/ui-sunny.datepick.css +18 -0
  121. data/vendor/assets/stylesheets/ui-swanky-purse.datepick.css +18 -0
  122. data/vendor/assets/stylesheets/ui-trontastic.datepick.css +18 -0
  123. data/vendor/assets/stylesheets/ui-ui-darkness.datepick.css +18 -0
  124. data/vendor/assets/stylesheets/ui-ui-lightness.datepick.css +18 -0
  125. data/vendor/assets/stylesheets/ui-vader.datepick.css +18 -0
  126. data/vendor/assets/stylesheets/ui.datepick.css +118 -0
  127. 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 || '&nbsp;';
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||'&nbsp;';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);