rd_unobtrusive_date_picker 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/MIT-LICENSE +19 -0
  2. data/Manifest +45 -0
  3. data/README.rdoc +165 -0
  4. data/Rakefile +29 -0
  5. data/about.yml +7 -0
  6. data/init.rb +8 -0
  7. data/install.rb +14 -0
  8. data/lib/12_hour_time.rb +102 -0
  9. data/lib/unobtrusive_date_picker.rb +407 -0
  10. data/public/images/backstripes.gif +0 -0
  11. data/public/images/bg_header.jpg +0 -0
  12. data/public/images/bullet1.gif +0 -0
  13. data/public/images/bullet2.gif +0 -0
  14. data/public/images/cal.gif +0 -0
  15. data/public/images/gradient-e5e5e5-ffffff.gif +0 -0
  16. data/public/javascripts/datepicker.js +1445 -0
  17. data/public/javascripts/lang/af.js +40 -0
  18. data/public/javascripts/lang/ar.js +50 -0
  19. data/public/javascripts/lang/de.js +40 -0
  20. data/public/javascripts/lang/du.js +40 -0
  21. data/public/javascripts/lang/en.js +42 -0
  22. data/public/javascripts/lang/es.js +41 -0
  23. data/public/javascripts/lang/fi.js +40 -0
  24. data/public/javascripts/lang/fr.js +44 -0
  25. data/public/javascripts/lang/gr.js +40 -0
  26. data/public/javascripts/lang/he.js +49 -0
  27. data/public/javascripts/lang/it.js +13 -0
  28. data/public/javascripts/lang/nl.js +40 -0
  29. data/public/javascripts/lang/no.js +40 -0
  30. data/public/javascripts/lang/pt.js +50 -0
  31. data/public/javascripts/lang/ro.js +40 -0
  32. data/public/javascripts/lang/ru.js +40 -0
  33. data/public/javascripts/lang/sp.js +40 -0
  34. data/public/javascripts/lang/sv.js +41 -0
  35. data/public/javascripts/lang/ua.js +40 -0
  36. data/public/stylesheets/datepicker.css +263 -0
  37. data/spec/date_picker_tag_spec.rb +122 -0
  38. data/spec/date_picker_text_field_spec.rb +54 -0
  39. data/spec/datepicker_html_class_options_spec.rb +281 -0
  40. data/spec/spec.opts +12 -0
  41. data/spec/spec_helper.rb +52 -0
  42. data/spec/tag_matcher.rb +142 -0
  43. data/spec/unobtrusive_date_picker_spec.rb +129 -0
  44. data/tasks/datepicker_tasks.rake +17 -0
  45. data/uninstall.rb +12 -0
  46. data/unobtrusive_date_picker.gemspec +30 -0
  47. metadata +116 -0
@@ -0,0 +1,40 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Januari",
4
+ "Februari",
5
+ "Maart",
6
+ "April",
7
+ "Mei",
8
+ "Juni",
9
+ "Juli",
10
+ "Augustus",
11
+ "September",
12
+ "Oktober",
13
+ "November",
14
+ "December"
15
+ ],
16
+ fullDay:[
17
+ "Maandag",
18
+ "Dinsdag",
19
+ "Woensdag",
20
+ "Donderdag",
21
+ "Vrijdag",
22
+ "Zaterdag",
23
+ "Zondag"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+
30
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
31
+
32
+ firstDayOfWeek:0,
33
+ */
34
+ titles:[
35
+ "Vorige Maand",
36
+ "Volgende Maand",
37
+ "Vorig jaar",
38
+ "Volgend jaar"
39
+ ]
40
+ };
@@ -0,0 +1,40 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Januar",
4
+ "Februar",
5
+ "Mars",
6
+ "April",
7
+ "Mai",
8
+ "Juni",
9
+ "Juli",
10
+ "August",
11
+ "September",
12
+ "Oktober",
13
+ "November",
14
+ "Desember"
15
+ ],
16
+ fullDay:[
17
+ "Mandag",
18
+ "Tirsdag",
19
+ "Onsdag",
20
+ "Torsdag",
21
+ "Fredag",
22
+ "L\u00f8rdag",
23
+ "S\u00f8ndag"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+
30
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
31
+
32
+ firstDayOfWeek:0,
33
+ */
34
+ titles:[
35
+ "Forrige m\u00e5ned",
36
+ "Neste m\u00e5ned",
37
+ "Forrige \u00e5r",
38
+ "Neste \u00e5r"
39
+ ]
40
+ };
@@ -0,0 +1,50 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Janeiro",
4
+ "Fevereiro",
5
+ "Mar\u00E7o",
6
+ "Abril",
7
+ "Maio",
8
+ "Junho",
9
+ "Julho",
10
+ "Agosto",
11
+ "Setembro",
12
+ "Outubro",
13
+ "Novembro",
14
+ "Dezembro"
15
+ ],
16
+ fullDay:[
17
+ "Segunda",
18
+ "Ter\u00E7a",
19
+ "Quarta",
20
+ "Quinta",
21
+ "Sexta",
22
+ "S\u00E1bado",
23
+ "Domingo"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+ dayAbbr:["Seg",
30
+ "Ter",
31
+ "Qua",
32
+ "Qui",
33
+ "Sex",
34
+ "Sab",
35
+ "Dom"],
36
+
37
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
38
+
39
+ firstDayOfWeek:0,
40
+ */
41
+ firstDayOfWeek:6,
42
+ titles:[
43
+ "M\u00EAs anterior",
44
+ "Pr\u00F3ximo m\u00EAs",
45
+ "Ano anterior",
46
+ "Pr\u00F3ximo ano",
47
+ "Hoje",
48
+ "Exibir calend\u00E1rio"
49
+ ]
50
+ };
@@ -0,0 +1,40 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Ianuarie",
4
+ "Februarie",
5
+ "Martie",
6
+ "Aprilie",
7
+ "Mai",
8
+ "Iunie",
9
+ "Iulie",
10
+ "August",
11
+ "Septembrie",
12
+ "Octombrie",
13
+ "Noiembrie",
14
+ "Decembrie"
15
+ ],
16
+ fullDay:[
17
+ "Luni",
18
+ "Mar\u0163i",
19
+ "Miercuri",
20
+ "Joi",
21
+ "Vineri",
22
+ "S\u00e2mb\u00e3t\u00e3",
23
+ "Duminic\u00e3"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+
30
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
31
+
32
+ firstDayOfWeek:0,
33
+ */
34
+ titles:[
35
+ "Luna anterioar\u00e3",
36
+ "Luna urm\u00e3toare",
37
+ "Anul anterior",
38
+ "Anul urm\u00e3tor"
39
+ ]
40
+ };
@@ -0,0 +1,40 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Январь",
4
+ "Февраль",
5
+ "Март",
6
+ "Апрель",
7
+ "Май",
8
+ "Июнь",
9
+ "Июль",
10
+ "Август",
11
+ "Сентябрь",
12
+ "Октябрь",
13
+ "Ноябрь",
14
+ "Декабрь"
15
+ ],
16
+ fullDay:[
17
+ "Понедельник",
18
+ "Вторник",
19
+ "Среда",
20
+ "Четверг",
21
+ "Пятница",
22
+ "Суббота",
23
+ "Воскресенье"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+
30
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
31
+
32
+ firstDayOfWeek:0,
33
+ */
34
+ titles:[
35
+ "Предыдущий месяц",
36
+ "Следующий месяц",
37
+ "Предыдущий год",
38
+ "Следующий год"
39
+ ]
40
+ };
@@ -0,0 +1,40 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Enero",
4
+ "Febrero",
5
+ "Marzo",
6
+ "Abril",
7
+ "Mayo",
8
+ "Junio",
9
+ "Julio",
10
+ "Agosto",
11
+ "Septiembre",
12
+ "Octubre",
13
+ "Noviembre",
14
+ "Diciembre"
15
+ ],
16
+ fullDay:[
17
+ "Lunes",
18
+ "Martes",
19
+ "Mi\u00e9rcoles",
20
+ "Jueves",
21
+ "Viernes",
22
+ "S\u00e1bado",
23
+ "Domingo"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+
30
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
31
+
32
+ firstDayOfWeek:0,
33
+ */
34
+ titles:[
35
+ "Mes Anterior",
36
+ "Mes Siguiente",
37
+ "A\u00f1o Anterior",
38
+ "A\u00f1o Siguiente"
39
+ ]
40
+ };
@@ -0,0 +1,41 @@
1
+ // Swedish
2
+ var fdLocale = {
3
+ months:[
4
+ "Januari",
5
+ "Februari",
6
+ "Mars",
7
+ "April",
8
+ "Maj",
9
+ "Juni",
10
+ "Juli",
11
+ "Augusti",
12
+ "September",
13
+ "Oktober",
14
+ "November",
15
+ "December"
16
+ ],
17
+ fullDay:[
18
+ "M\u00e5ndag",
19
+ "Tisdag",
20
+ "Onsdag",
21
+ "Torsdag",
22
+ "Fredag",
23
+ "L\u00f6rdag",
24
+ "S\u00f6ndag"
25
+ ],
26
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
27
+
28
+ dayAbbr:[],
29
+ */
30
+
31
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
32
+
33
+ firstDayOfWeek:0,
34
+ */
35
+ titles:[
36
+ "F\u00f6reg\u00e5ende m\u00e5nad",
37
+ "N\u00e4sta m\u00e5nad",
38
+ "F\u00f6reg\u00e5ende \u00e5r",
39
+ "N\u00e4sta \u00e5r"
40
+ ]
41
+ };
@@ -0,0 +1,40 @@
1
+ var fdLocale = {
2
+ months:[
3
+ "Січень",
4
+ "Лютий",
5
+ "Березень",
6
+ "Квітень",
7
+ "Травень",
8
+ "Червень",
9
+ "Липень",
10
+ "Серпень",
11
+ "Вересень",
12
+ "Жовтень",
13
+ "Листопад",
14
+ "Грудень"
15
+ ],
16
+ fullDay:[
17
+ "Понеділок",
18
+ "Вівторок",
19
+ "Середа",
20
+ "Четвер",
21
+ "П'ятниця",
22
+ "Субота",
23
+ "Неділя"
24
+ ],
25
+ /* Only stipulate the dayAbbr should the first letter of the fullDay not suffice
26
+
27
+ dayAbbr:[],
28
+ */
29
+
30
+ /* Only stipulate the firstDayOfWeek should the first day not be Monday
31
+
32
+ firstDayOfWeek:0,
33
+ */
34
+ titles:[
35
+ "Попередній місяць",
36
+ "Наступний місяць",
37
+ "Попередній рік",
38
+ "Наступний рік"
39
+ ]
40
+ };
@@ -0,0 +1,263 @@
1
+ /* This is a very basic stylesheet for the date-picker. Feel free to create your own. */
2
+
3
+ /* The wrapper div */
4
+ div.datePicker
5
+ {
6
+ position:absolute;
7
+ min-width:24em;
8
+ width:24em;
9
+ z-index:9999;
10
+ text-align:center;
11
+
12
+ /* Change the font-size to suit your design's CSS. The following line is for the demo that has a 12px font-size defined on the body tag */
13
+ font:900 0.8em/0.8em Verdana, Sans-Serif;
14
+
15
+ /* For Example: If using the YUI font CSS, uncomment the following line to get a 10px font-size within the datePicker */
16
+ /* font:900 77%/77% Verdana; */
17
+
18
+ background:transparent;
19
+
20
+ /* Mozilla & Webkit extensions to stop text-selection. Remove if you wish to validate the CSS */
21
+ -moz-user-select:none;
22
+ -khtml-user-select:none;
23
+ }
24
+ /* Styles for the static datePickers */
25
+ div.staticDP
26
+ {
27
+ position:relative;
28
+ top:5px;
29
+ left:0;
30
+ }
31
+ /* The iframe hack to cover selectlists in Internet Explorer <= v6 */
32
+ iframe.iehack
33
+ {
34
+ position:absolute;
35
+ background:#fff;
36
+ z-index:9998;
37
+ padding:0;
38
+ border:0;
39
+ display:none;
40
+ margin:0;
41
+ }
42
+ /* The "button" created beside each input for non-static datePickers */
43
+ a.date-picker-control:link,
44
+ a.date-picker-control:visited,
45
+ a.date-picker-control:hover,
46
+ a.date-picker-control:active,
47
+ a.date-picker-control:focus
48
+ {
49
+ /*position:relative;*/
50
+ /* Moz & FF */
51
+ display: -moz-inline-stack;
52
+ border:0 none;
53
+ padding:0;
54
+ margin:0 0 0 4px;
55
+ background:transparent url(/images/datepicker/cal.gif) no-repeat 50% 50%;
56
+ min-width:16px;
57
+ line-height:1;
58
+ cursor:pointer;
59
+ visibility:visible;
60
+ text-decoration:none;
61
+ vertical-align:middle;
62
+ }
63
+ /* Feed IE6 the following rule, IE7 should handle the min-width declared above */
64
+ * html a.date-picker-control
65
+ {
66
+ width:16px;
67
+ }
68
+ a.date-picker-control
69
+ {
70
+ /* IE, Safari & Opera. Seperate CSS rule seems to be required. */
71
+ display:inline-block;
72
+ }
73
+ a.date-picker-control span
74
+ {
75
+ display:block;
76
+ width:16px;
77
+ height:16px;
78
+ margin:auto 0;
79
+ }
80
+ /* The next & previous buttons */
81
+ div.datePicker th span
82
+ {
83
+ display:inline;
84
+ padding:0;
85
+ margin:0;
86
+ color:#000;
87
+ text-align:center;
88
+ line-height:1em;
89
+ border-width:0;
90
+ font-family: georgia, times new roman, palatino, times, bookman, serif;
91
+ background:transparent;
92
+ font-weight:bold;
93
+ cursor:pointer;
94
+ }
95
+ div.datePicker th span.month-display,
96
+ div.datePicker th span.year-display
97
+ {
98
+ text-transform:uppercase;
99
+ letter-spacing:1px;
100
+ font:normal 1.2em Verdana, Sans-Serif;
101
+ cursor:default;
102
+ }
103
+ div.datePicker th span.prev-but,
104
+ div.datePicker th span.next-but
105
+ {
106
+ font-size:1.8em;
107
+ cursor:pointer !important;
108
+ }
109
+
110
+ div.datePicker th span.today-but
111
+ {
112
+ text-align:center;
113
+ margin:0 auto;
114
+ font:normal 1em Verdana, Sans-Serif;
115
+ width:100%;
116
+ text-decoration:none;
117
+ line-height:1.6em;
118
+ text-transform:uppercase;
119
+ cursor:pointer !important
120
+ }
121
+ div.datePicker thead th span.fd-disabled
122
+ {
123
+ color:#aaa;
124
+ cursor:default !important;
125
+ }
126
+ /* The mon, tue, wed etc day buttons */
127
+ div.datePicker th span.fd-day-header
128
+ {
129
+ text-align:center;
130
+ margin:0 auto;
131
+ font:900 1em Verdana, Sans-Serif;
132
+ height:1.4em;
133
+ width:2em;
134
+ text-decoration:none;
135
+ text-transform:lowercase;
136
+ line-height:1.4em;
137
+ }
138
+ /* The table */
139
+ div.datePicker table
140
+ {
141
+ position:relative;
142
+ margin:0;
143
+ padding:0;
144
+ border:1px solid #ccc;
145
+ background:#fff url(/images/datepicker/gradient-e5e5e5-ffffff.gif) repeat-x 0 -20px;
146
+ text-align:center;
147
+ width:100%;
148
+ border-spacing:2px;
149
+ table-layout:fixed;
150
+ border-collapse:separate;
151
+ }
152
+ /* Common TD & TH styling */
153
+ div.datePicker table td
154
+ {
155
+ border:1px solid #ccc;
156
+ padding:0;
157
+ text-align:center;
158
+ vertical-align:middle;
159
+ /* Opera requires a line-height bigger than 1em in order to redraw properly */
160
+ line-height:1.2em;
161
+ cursor:pointer;
162
+ background:#fff url(/images/datepicker/gradient-e5e5e5-ffffff.gif) repeat-x 0 -40px;
163
+ width:3em;
164
+ height:3em !important;
165
+ height:2.8em;
166
+ outline:none;
167
+ }
168
+ div.datePicker table th
169
+ {
170
+ border:0 none;
171
+ padding:0;
172
+ line-height:1em;
173
+ font-weight:bold;
174
+ color:#222;
175
+ text-align:center;
176
+ vertical-align:middle;
177
+ }
178
+ div.datePicker table td.date-picker-unused
179
+ {
180
+ background:#fff url(/images/datepicker/backstripes.gif);
181
+ border-color:#dcdcdc;
182
+ padding:0;
183
+ cursor:default !important;
184
+ }
185
+ div.datePicker table thead th.date-picker-title
186
+ {
187
+ width:auto;
188
+ height:auto;
189
+ padding:0.4em 0;
190
+ }
191
+ /* The "mon tue wed etc" day header button styles */
192
+ div.datePicker table th.date-picker-day-header
193
+ {
194
+ text-transform:lowercase;
195
+ width:3em;
196
+ }
197
+ div.datePicker table th.date-picker-day-header span
198
+ {
199
+ display:block;
200
+ }
201
+ /* The "todays date" style */
202
+ div.datePicker table td.date-picker-today
203
+ {
204
+ background:#fff url(/images/datepicker/bullet2.gif) no-repeat 0 0;
205
+ color:rgb(100,100,100) !important;
206
+ }
207
+ /* The "selected date" style */
208
+ div.datePicker table td.date-picker-selected-date
209
+ {
210
+ color:#333 !important;
211
+ border-color:#333 !important;
212
+ }
213
+ /* the "highlight days" style */
214
+ td.date-picker-highlight
215
+ {
216
+ color:#a86666;
217
+ }
218
+ /* The date "out of range" style */
219
+ div.datePicker table td.out-of-range
220
+ {
221
+ color:#ccc !important;
222
+ font-style:oblique;
223
+ background:#fcfcfc !important;
224
+ cursor:default !important;
225
+ }
226
+ /* The "disabled days" style */
227
+ div.datePicker table td.day-disabled
228
+ {
229
+ color:#aaa !important;
230
+ background:transparent !important;
231
+ cursor:default !important;
232
+ }
233
+ /* The "active cursor" style */
234
+ div.datePicker table tbody td.date-picker-hover
235
+ {
236
+ background:#fff url(/images/datepicker/bg_header.jpg) no-repeat 0 0;
237
+ cursor:pointer;
238
+ border-color:rgb(100,130,170);
239
+ color:rgb(100,130,170);
240
+ }
241
+ /*
242
+ Quirksmode necessity?
243
+ ---------------------
244
+
245
+ If your HTML document renders in quirksmode (i.e. has no doctype declaration)
246
+ then uncomment the following CSS rule to set a less drastic font-size in IE
247
+
248
+ div.datePicker table th,
249
+ div.datePicker table td
250
+ {
251
+ font-size:100%;
252
+ }
253
+ */
254
+
255
+ /* Remove the images for Internet Explorer <= v6 using the "* html" hack */
256
+ * html div.datePicker table td
257
+ {
258
+ background-image:none;
259
+ }
260
+ * html div.datePicker table td.date-picker-unused
261
+ {
262
+ background:#f2f2f2;
263
+ }