damagecontrol 0.5.0 → 0.5.0.1391

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. data/README +67 -11
  2. data/Rakefile +15 -6
  3. data/app/controllers/admin_controller.rb +0 -3
  4. data/app/controllers/application.rb +42 -163
  5. data/app/controllers/build_controller.rb +33 -0
  6. data/app/controllers/files_controller.rb +1 -1
  7. data/app/controllers/project_controller.rb +23 -65
  8. data/app/controllers/rails_ext.rb +247 -0
  9. data/app/controllers/rscm_ext.rb +52 -0
  10. data/app/helpers/build_helper.rb +2 -0
  11. data/app/views/build/email.rhtml +18 -0
  12. data/app/views/build/status.rhtml +20 -0
  13. data/app/views/build/tests.rhtml +2 -0
  14. data/app/views/layouts/{rscm.rhtml → default.rhtml} +10 -4
  15. data/app/views/project/_changesets_list.rhtml +2 -2
  16. data/app/views/project/_cvs.rhtml +4 -5
  17. data/app/views/project/_project.rhtml +9 -9
  18. data/app/views/project/_select_pane.rhtml +26 -0
  19. data/app/views/project/_tab_pane.rhtml +23 -0
  20. data/app/views/project/changeset.rhtml +35 -0
  21. data/app/views/project/view.rhtml +18 -32
  22. data/app/views/setup/welcome.rhtml +118 -0
  23. data/config/database.yml +20 -20
  24. data/config/environment.rb +66 -60
  25. data/config/environments/development.rb +3 -2
  26. data/config/environments/production.rb +3 -2
  27. data/config/environments/test.rb +3 -2
  28. data/config/routes.rb +15 -0
  29. data/lib/damagecontrol/app.rb +11 -40
  30. data/lib/damagecontrol/build.rb +50 -8
  31. data/lib/damagecontrol/directories.rb +7 -6
  32. data/lib/damagecontrol/poller.rb +11 -20
  33. data/lib/damagecontrol/project.rb +83 -16
  34. data/lib/damagecontrol/publisher/ambient_orb.rb +16 -0
  35. data/lib/damagecontrol/publisher/archive.rb +16 -0
  36. data/lib/damagecontrol/publisher/base.rb +25 -0
  37. data/lib/damagecontrol/publisher/build_duration.rb +16 -0
  38. data/lib/damagecontrol/publisher/email.rb +59 -0
  39. data/lib/damagecontrol/publisher/execute.rb +49 -0
  40. data/lib/damagecontrol/publisher/ftp.rb +16 -0
  41. data/lib/damagecontrol/publisher/growl.rb +44 -0
  42. data/lib/damagecontrol/publisher/irc.rb +31 -0
  43. data/lib/damagecontrol/publisher/jabber.rb +68 -0
  44. data/lib/damagecontrol/publisher/scp.rb +16 -0
  45. data/lib/damagecontrol/publisher/x10cm11a.rb +17 -0
  46. data/lib/damagecontrol/publisher/x10cm17a.rb +17 -0
  47. data/lib/damagecontrol/publisher/yahoo.rb +16 -0
  48. data/lib/damagecontrol/standard_persister.rb +2 -2
  49. data/lib/damagecontrol/tracker.rb +48 -6
  50. data/lib/damagecontrol/visitor/rss_writer.rb +1 -1
  51. data/lib/damagecontrol/visitor/yaml_persister.rb +10 -1
  52. data/public/404.html +5 -5
  53. data/public/500.html +5 -5
  54. data/public/dispatch.cgi +2 -2
  55. data/public/dispatch.fcgi +1 -1
  56. data/public/dispatch.rb +2 -2
  57. data/public/images/growlicon.png +0 -0
  58. data/public/images/megaphone.png +0 -0
  59. data/public/images/monotone-logo.png +0 -0
  60. data/public/images/publisher/ambient_orb.png +0 -0
  61. data/public/images/publisher/build_duration.png +0 -0
  62. data/public/images/publisher/email.png +0 -0
  63. data/public/images/publisher/execute.png +0 -0
  64. data/public/images/publisher/growl.png +0 -0
  65. data/public/images/publisher/irc.png +0 -0
  66. data/public/images/publisher/jabber.png +0 -0
  67. data/public/images/publisher/x10cm11a.png +0 -0
  68. data/public/images/publisher/x10cm17a.png +0 -0
  69. data/public/images/publisher/yahoo.png +0 -0
  70. data/public/index.html +70 -1
  71. data/public/javascripts/dateFormat.js +283 -0
  72. data/public/javascripts/jscalendar/ChangeLog +500 -0
  73. data/public/javascripts/jscalendar/README +33 -0
  74. data/public/javascripts/jscalendar/bugtest-hidden-selects.html +108 -0
  75. data/public/javascripts/jscalendar/calendar-blue.css +231 -0
  76. data/public/javascripts/jscalendar/calendar-blue2.css +235 -0
  77. data/public/javascripts/jscalendar/calendar-brown.css +224 -0
  78. data/public/javascripts/jscalendar/calendar-green.css +228 -0
  79. data/public/javascripts/jscalendar/calendar-setup.js +181 -0
  80. data/public/javascripts/jscalendar/calendar-setup_stripped.js +21 -0
  81. data/public/javascripts/jscalendar/calendar-system.css +250 -0
  82. data/public/javascripts/jscalendar/calendar-tas.css +238 -0
  83. data/public/javascripts/jscalendar/calendar-win2k-1.css +270 -0
  84. data/public/javascripts/jscalendar/calendar-win2k-2.css +270 -0
  85. data/public/javascripts/jscalendar/calendar-win2k-cold-1.css +264 -0
  86. data/public/javascripts/jscalendar/calendar-win2k-cold-2.css +270 -0
  87. data/public/javascripts/jscalendar/calendar.js +1715 -0
  88. data/public/javascripts/jscalendar/calendar.php +119 -0
  89. data/public/javascripts/jscalendar/calendar_stripped.js +12 -0
  90. data/public/javascripts/jscalendar/doc/html/reference-Z-S.css +0 -0
  91. data/public/javascripts/jscalendar/doc/html/reference.css +34 -0
  92. data/public/javascripts/jscalendar/doc/html/reference.html +1316 -0
  93. data/public/javascripts/jscalendar/doc/reference.pdf +0 -0
  94. data/public/javascripts/jscalendar/img.gif +0 -0
  95. data/public/javascripts/jscalendar/index.html +333 -0
  96. data/public/javascripts/jscalendar/lang/calendar-af.js +39 -0
  97. data/public/javascripts/jscalendar/lang/calendar-br.js +45 -0
  98. data/public/javascripts/jscalendar/lang/calendar-ca.js +45 -0
  99. data/public/javascripts/jscalendar/lang/calendar-cs-win.js +34 -0
  100. data/public/javascripts/jscalendar/lang/calendar-da.js +63 -0
  101. data/public/javascripts/jscalendar/lang/calendar-de.js +100 -0
  102. data/public/javascripts/jscalendar/lang/calendar-du.js +45 -0
  103. data/public/javascripts/jscalendar/lang/calendar-el.js +89 -0
  104. data/public/javascripts/jscalendar/lang/calendar-en.js +123 -0
  105. data/public/javascripts/jscalendar/lang/calendar-es.js +114 -0
  106. data/public/javascripts/jscalendar/lang/calendar-fi.js +98 -0
  107. data/public/javascripts/jscalendar/lang/calendar-fr.js +86 -0
  108. data/public/javascripts/jscalendar/lang/calendar-hr-utf8.js +49 -0
  109. data/public/javascripts/jscalendar/lang/calendar-hr.js +0 -0
  110. data/public/javascripts/jscalendar/lang/calendar-hu.js +45 -0
  111. data/public/javascripts/jscalendar/lang/calendar-it.js +79 -0
  112. data/public/javascripts/jscalendar/lang/calendar-jp.js +45 -0
  113. data/public/javascripts/jscalendar/lang/calendar-ko-utf8.js +120 -0
  114. data/public/javascripts/jscalendar/lang/calendar-ko.js +120 -0
  115. data/public/javascripts/jscalendar/lang/calendar-lt-utf8.js +114 -0
  116. data/public/javascripts/jscalendar/lang/calendar-lt.js +114 -0
  117. data/public/javascripts/jscalendar/lang/calendar-nl.js +45 -0
  118. data/public/javascripts/jscalendar/lang/calendar-no.js +45 -0
  119. data/public/javascripts/jscalendar/lang/calendar-pl-utf8.js +93 -0
  120. data/public/javascripts/jscalendar/lang/calendar-pl.js +56 -0
  121. data/public/javascripts/jscalendar/lang/calendar-pt.js +45 -0
  122. data/public/javascripts/jscalendar/lang/calendar-ro.js +66 -0
  123. data/public/javascripts/jscalendar/lang/calendar-ru.js +45 -0
  124. data/public/javascripts/jscalendar/lang/calendar-si.js +94 -0
  125. data/public/javascripts/jscalendar/lang/calendar-sk.js +99 -0
  126. data/public/javascripts/jscalendar/lang/calendar-sp.js +63 -0
  127. data/public/javascripts/jscalendar/lang/calendar-sv.js +93 -0
  128. data/public/javascripts/jscalendar/lang/calendar-tr.js +58 -0
  129. data/public/javascripts/jscalendar/lang/calendar-zh.js +45 -0
  130. data/public/javascripts/jscalendar/menuarrow.gif +0 -0
  131. data/public/javascripts/jscalendar/menuarrow2.gif +0 -0
  132. data/public/javascripts/jscalendar/release-notes.html +334 -0
  133. data/public/javascripts/jscalendar/simple-1.html +244 -0
  134. data/public/javascripts/jscalendar/simple-2.html +108 -0
  135. data/public/javascripts/jscalendar/simple-3.html +130 -0
  136. data/public/javascripts/jscalendar/test-position.html +40 -0
  137. data/public/javascripts/jscalendar/test.php +116 -0
  138. data/public/javascripts/toggle_div.js +18 -0
  139. data/public/stylesheets/niceones.txt +1 -0
  140. data/public/stylesheets/style.css +8 -1
  141. data/script/breakpointer +4 -5
  142. data/script/console +19 -27
  143. data/script/console_sandbox.rb +7 -0
  144. data/script/destroy +5 -0
  145. data/script/generate +3 -68
  146. data/script/server +6 -16
  147. data/test/damagecontrol/build_test.rb +8 -8
  148. data/test/damagecontrol/poller_test.rb +10 -18
  149. data/test/damagecontrol/project_test.rb +49 -13
  150. data/test/damagecontrol/publisher/base_test.rb +26 -0
  151. data/test/damagecontrol/publisher/build/email.rhtml +0 -0
  152. data/test/damagecontrol/publisher/email_test.rb +26 -0
  153. data/test/damagecontrol/publisher/fixture.rb +34 -0
  154. data/test/damagecontrol/publisher/growl_test.rb +15 -0
  155. data/test/damagecontrol/publisher/jabber_test.rb +15 -0
  156. data/test/damagecontrol/scm_web_test.rb +1 -1
  157. data/test/damagecontrol/visitor/changesets.rss +1 -1
  158. data/test/damagecontrol/visitor/diff_persister_test.rb +4 -4
  159. data/test/functional/build_controller_test.rb +17 -0
  160. data/test/test_helper.rb +13 -13
  161. metadata +185 -24
  162. data/app/views/project/_bugzilla.rhtml +0 -13
  163. data/app/views/project/_jira.rhtml +0 -19
  164. data/app/views/project/_mooky.rhtml +0 -23
  165. data/app/views/project/_rubyforge.rhtml +0 -19
  166. data/app/views/project/_scarab.rhtml +0 -19
  167. data/app/views/project/_scms.rhtml +0 -15
  168. data/app/views/project/_sourceforge.rhtml +0 -19
  169. data/app/views/project/_starteam.rhtml +0 -43
  170. data/app/views/project/_svn.rhtml +0 -22
  171. data/app/views/project/_trac.rhtml +0 -13
  172. data/app/views/project/_trackers.rhtml +0 -18
  173. data/app/views/project/changesets.rhtml +0 -31
@@ -0,0 +1,270 @@
1
+ /* The main calendar widget. DIV containing a table. */
2
+
3
+ .calendar {
4
+ position: relative;
5
+ display: none;
6
+ border-top: 2px solid #fff;
7
+ border-right: 2px solid #000;
8
+ border-bottom: 2px solid #000;
9
+ border-left: 2px solid #fff;
10
+ font-size: 11px;
11
+ color: #000;
12
+ cursor: default;
13
+ background: #d4c8d0;
14
+ font-family: tahoma,verdana,sans-serif;
15
+ }
16
+
17
+ .calendar table {
18
+ border-top: 1px solid #000;
19
+ border-right: 1px solid #fff;
20
+ border-bottom: 1px solid #fff;
21
+ border-left: 1px solid #000;
22
+ font-size: 11px;
23
+ color: #000;
24
+ cursor: default;
25
+ background: #d4c8d0;
26
+ font-family: tahoma,verdana,sans-serif;
27
+ }
28
+
29
+ /* Header part -- contains navigation buttons and day names. */
30
+
31
+ .calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
32
+ text-align: center;
33
+ padding: 1px;
34
+ border-top: 1px solid #fff;
35
+ border-right: 1px solid #000;
36
+ border-bottom: 1px solid #000;
37
+ border-left: 1px solid #fff;
38
+ }
39
+
40
+ .calendar .nav {
41
+ background: transparent url(menuarrow.gif) no-repeat 100% 100%;
42
+ }
43
+
44
+ .calendar thead .title { /* This holds the current "month, year" */
45
+ font-weight: bold;
46
+ padding: 1px;
47
+ border: 1px solid #000;
48
+ background: #847880;
49
+ color: #fff;
50
+ text-align: center;
51
+ }
52
+
53
+ .calendar thead .headrow { /* Row <TR> containing navigation buttons */
54
+ }
55
+
56
+ .calendar thead .daynames { /* Row <TR> containing the day names */
57
+ }
58
+
59
+ .calendar thead .name { /* Cells <TD> containing the day names */
60
+ border-bottom: 1px solid #000;
61
+ padding: 2px;
62
+ text-align: center;
63
+ background: #f4e8f0;
64
+ }
65
+
66
+ .calendar thead .weekend { /* How a weekend day name shows in header */
67
+ color: #f00;
68
+ }
69
+
70
+ .calendar thead .hilite { /* How do the buttons in header appear when hover */
71
+ border-top: 2px solid #fff;
72
+ border-right: 2px solid #000;
73
+ border-bottom: 2px solid #000;
74
+ border-left: 2px solid #fff;
75
+ padding: 0px;
76
+ background-color: #e4d8e0;
77
+ }
78
+
79
+ .calendar thead .active { /* Active (pressed) buttons in header */
80
+ padding: 2px 0px 0px 2px;
81
+ border-top: 1px solid #000;
82
+ border-right: 1px solid #fff;
83
+ border-bottom: 1px solid #fff;
84
+ border-left: 1px solid #000;
85
+ background-color: #c4b8c0;
86
+ }
87
+
88
+ /* The body part -- contains all the days in month. */
89
+
90
+ .calendar tbody .day { /* Cells <TD> containing month days dates */
91
+ width: 2em;
92
+ text-align: right;
93
+ padding: 2px 4px 2px 2px;
94
+ }
95
+ .calendar tbody .day.othermonth {
96
+ font-size: 80%;
97
+ color: #aaa;
98
+ }
99
+ .calendar tbody .day.othermonth.oweekend {
100
+ color: #faa;
101
+ }
102
+
103
+ .calendar table .wn {
104
+ padding: 2px 3px 2px 2px;
105
+ border-right: 1px solid #000;
106
+ background: #f4e8f0;
107
+ }
108
+
109
+ .calendar tbody .rowhilite td {
110
+ background: #e4d8e0;
111
+ }
112
+
113
+ .calendar tbody .rowhilite td.wn {
114
+ background: #d4c8d0;
115
+ }
116
+
117
+ .calendar tbody td.hilite { /* Hovered cells <TD> */
118
+ padding: 1px 3px 1px 1px;
119
+ border-top: 1px solid #fff;
120
+ border-right: 1px solid #000;
121
+ border-bottom: 1px solid #000;
122
+ border-left: 1px solid #fff;
123
+ }
124
+
125
+ .calendar tbody td.active { /* Active (pressed) cells <TD> */
126
+ padding: 2px 2px 0px 2px;
127
+ border-top: 1px solid #000;
128
+ border-right: 1px solid #fff;
129
+ border-bottom: 1px solid #fff;
130
+ border-left: 1px solid #000;
131
+ }
132
+
133
+ .calendar tbody td.selected { /* Cell showing selected date */
134
+ font-weight: bold;
135
+ border-top: 1px solid #000;
136
+ border-right: 1px solid #fff;
137
+ border-bottom: 1px solid #fff;
138
+ border-left: 1px solid #000;
139
+ padding: 2px 2px 0px 2px;
140
+ background: #e4d8e0;
141
+ }
142
+
143
+ .calendar tbody td.weekend { /* Cells showing weekend days */
144
+ color: #f00;
145
+ }
146
+
147
+ .calendar tbody td.today { /* Cell showing today date */
148
+ font-weight: bold;
149
+ color: #00f;
150
+ }
151
+
152
+ .calendar tbody .disabled { color: #999; }
153
+
154
+ .calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
155
+ visibility: hidden;
156
+ }
157
+
158
+ .calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
159
+ display: none;
160
+ }
161
+
162
+ /* The footer part -- status bar and "Close" button */
163
+
164
+ .calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
165
+ }
166
+
167
+ .calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
168
+ background: #f4e8f0;
169
+ padding: 1px;
170
+ border: 1px solid #000;
171
+ background: #847880;
172
+ color: #fff;
173
+ text-align: center;
174
+ }
175
+
176
+ .calendar tfoot .hilite { /* Hover style for buttons in footer */
177
+ border-top: 1px solid #fff;
178
+ border-right: 1px solid #000;
179
+ border-bottom: 1px solid #000;
180
+ border-left: 1px solid #fff;
181
+ padding: 1px;
182
+ background: #e4d8e0;
183
+ }
184
+
185
+ .calendar tfoot .active { /* Active (pressed) style for buttons in footer */
186
+ padding: 2px 0px 0px 2px;
187
+ border-top: 1px solid #000;
188
+ border-right: 1px solid #fff;
189
+ border-bottom: 1px solid #fff;
190
+ border-left: 1px solid #000;
191
+ }
192
+
193
+ /* Combo boxes (menus that display months/years for direct selection) */
194
+
195
+ .calendar .combo {
196
+ position: absolute;
197
+ display: none;
198
+ width: 4em;
199
+ top: 0px;
200
+ left: 0px;
201
+ cursor: default;
202
+ border-top: 1px solid #fff;
203
+ border-right: 1px solid #000;
204
+ border-bottom: 1px solid #000;
205
+ border-left: 1px solid #fff;
206
+ background: #e4d8e0;
207
+ font-size: 90%;
208
+ padding: 1px;
209
+ }
210
+
211
+ .calendar .combo .label,
212
+ .calendar .combo .label-IEfix {
213
+ text-align: center;
214
+ padding: 1px;
215
+ }
216
+
217
+ .calendar .combo .label-IEfix {
218
+ width: 4em;
219
+ }
220
+
221
+ .calendar .combo .active {
222
+ background: #d4c8d0;
223
+ padding: 0px;
224
+ border-top: 1px solid #000;
225
+ border-right: 1px solid #fff;
226
+ border-bottom: 1px solid #fff;
227
+ border-left: 1px solid #000;
228
+ }
229
+
230
+ .calendar .combo .hilite {
231
+ background: #408;
232
+ color: #fea;
233
+ }
234
+
235
+ .calendar td.time {
236
+ border-top: 1px solid #000;
237
+ padding: 1px 0px;
238
+ text-align: center;
239
+ background-color: #f4f0e8;
240
+ }
241
+
242
+ .calendar td.time .hour,
243
+ .calendar td.time .minute,
244
+ .calendar td.time .ampm {
245
+ padding: 0px 3px 0px 4px;
246
+ border: 1px solid #889;
247
+ font-weight: bold;
248
+ background-color: #fff;
249
+ }
250
+
251
+ .calendar td.time .ampm {
252
+ text-align: center;
253
+ }
254
+
255
+ .calendar td.time .colon {
256
+ padding: 0px 2px 0px 3px;
257
+ font-weight: bold;
258
+ }
259
+
260
+ .calendar td.time span.hilite {
261
+ border-color: #000;
262
+ background-color: #766;
263
+ color: #fff;
264
+ }
265
+
266
+ .calendar td.time span.active {
267
+ border-color: #f00;
268
+ background-color: #000;
269
+ color: #0f0;
270
+ }
@@ -0,0 +1,264 @@
1
+ /* The main calendar widget. DIV containing a table. */
2
+
3
+ .calendar {
4
+ position: relative;
5
+ display: none;
6
+ border-top: 2px solid #fff;
7
+ border-right: 2px solid #000;
8
+ border-bottom: 2px solid #000;
9
+ border-left: 2px solid #fff;
10
+ font-size: 11px;
11
+ color: #000;
12
+ cursor: default;
13
+ background: #c8d0d4;
14
+ font-family: tahoma,verdana,sans-serif;
15
+ }
16
+
17
+ .calendar table {
18
+ border-top: 1px solid #000;
19
+ border-right: 1px solid #fff;
20
+ border-bottom: 1px solid #fff;
21
+ border-left: 1px solid #000;
22
+ font-size: 11px;
23
+ color: #000;
24
+ cursor: default;
25
+ background: #c8d0d4;
26
+ font-family: tahoma,verdana,sans-serif;
27
+ }
28
+
29
+ /* Header part -- contains navigation buttons and day names. */
30
+
31
+ .calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
32
+ text-align: center;
33
+ padding: 1px;
34
+ border-top: 1px solid #fff;
35
+ border-right: 1px solid #000;
36
+ border-bottom: 1px solid #000;
37
+ border-left: 1px solid #fff;
38
+ }
39
+
40
+ .calendar .nav {
41
+ background: transparent url(menuarrow.gif) no-repeat 100% 100%;
42
+ }
43
+
44
+ .calendar thead .title { /* This holds the current "month, year" */
45
+ font-weight: bold;
46
+ padding: 1px;
47
+ border: 1px solid #000;
48
+ background: #788084;
49
+ color: #fff;
50
+ text-align: center;
51
+ }
52
+
53
+ .calendar thead .headrow { /* Row <TR> containing navigation buttons */
54
+ }
55
+
56
+ .calendar thead .daynames { /* Row <TR> containing the day names */
57
+ }
58
+
59
+ .calendar thead .name { /* Cells <TD> containing the day names */
60
+ border-bottom: 1px solid #000;
61
+ padding: 2px;
62
+ text-align: center;
63
+ background: #e8f0f4;
64
+ }
65
+
66
+ .calendar thead .weekend { /* How a weekend day name shows in header */
67
+ color: #f00;
68
+ }
69
+
70
+ .calendar thead .hilite { /* How do the buttons in header appear when hover */
71
+ border-top: 2px solid #fff;
72
+ border-right: 2px solid #000;
73
+ border-bottom: 2px solid #000;
74
+ border-left: 2px solid #fff;
75
+ padding: 0px;
76
+ background-color: #d8e0e4;
77
+ }
78
+
79
+ .calendar thead .active { /* Active (pressed) buttons in header */
80
+ padding: 2px 0px 0px 2px;
81
+ border-top: 1px solid #000;
82
+ border-right: 1px solid #fff;
83
+ border-bottom: 1px solid #fff;
84
+ border-left: 1px solid #000;
85
+ background-color: #b8c0c4;
86
+ }
87
+
88
+ /* The body part -- contains all the days in month. */
89
+
90
+ .calendar tbody .day { /* Cells <TD> containing month days dates */
91
+ width: 2em;
92
+ text-align: right;
93
+ padding: 2px 4px 2px 2px;
94
+ }
95
+ .calendar tbody .day.othermonth {
96
+ font-size: 80%;
97
+ color: #aaa;
98
+ }
99
+ .calendar tbody .day.othermonth.oweekend {
100
+ color: #faa;
101
+ }
102
+
103
+ .calendar table .wn {
104
+ padding: 2px 3px 2px 2px;
105
+ border-right: 1px solid #000;
106
+ background: #e8f4f0;
107
+ }
108
+
109
+ .calendar tbody .rowhilite td {
110
+ background: #d8e4e0;
111
+ }
112
+
113
+ .calendar tbody .rowhilite td.wn {
114
+ background: #c8d4d0;
115
+ }
116
+
117
+ .calendar tbody td.hilite { /* Hovered cells <TD> */
118
+ padding: 1px 3px 1px 1px;
119
+ border: 1px solid;
120
+ border-color: #fff #000 #000 #fff;
121
+ }
122
+
123
+ .calendar tbody td.active { /* Active (pressed) cells <TD> */
124
+ padding: 2px 2px 0px 2px;
125
+ border: 1px solid;
126
+ border-color: #000 #fff #fff #000;
127
+ }
128
+
129
+ .calendar tbody td.selected { /* Cell showing selected date */
130
+ font-weight: bold;
131
+ padding: 2px 2px 0px 2px;
132
+ border: 1px solid;
133
+ border-color: #000 #fff #fff #000;
134
+ background: #d8e0e4;
135
+ }
136
+
137
+ .calendar tbody td.weekend { /* Cells showing weekend days */
138
+ color: #f00;
139
+ }
140
+
141
+ .calendar tbody td.today { /* Cell showing today date */
142
+ font-weight: bold;
143
+ color: #00f;
144
+ }
145
+
146
+ .calendar tbody .disabled { color: #999; }
147
+
148
+ .calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
149
+ visibility: hidden;
150
+ }
151
+
152
+ .calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
153
+ display: none;
154
+ }
155
+
156
+ /* The footer part -- status bar and "Close" button */
157
+
158
+ .calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
159
+ }
160
+
161
+ .calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
162
+ background: #e8f0f4;
163
+ padding: 1px;
164
+ border: 1px solid #000;
165
+ background: #788084;
166
+ color: #fff;
167
+ text-align: center;
168
+ }
169
+
170
+ .calendar tfoot .hilite { /* Hover style for buttons in footer */
171
+ border-top: 1px solid #fff;
172
+ border-right: 1px solid #000;
173
+ border-bottom: 1px solid #000;
174
+ border-left: 1px solid #fff;
175
+ padding: 1px;
176
+ background: #d8e0e4;
177
+ }
178
+
179
+ .calendar tfoot .active { /* Active (pressed) style for buttons in footer */
180
+ padding: 2px 0px 0px 2px;
181
+ border-top: 1px solid #000;
182
+ border-right: 1px solid #fff;
183
+ border-bottom: 1px solid #fff;
184
+ border-left: 1px solid #000;
185
+ }
186
+
187
+ /* Combo boxes (menus that display months/years for direct selection) */
188
+
189
+ .calendar .combo {
190
+ position: absolute;
191
+ display: none;
192
+ width: 4em;
193
+ top: 0px;
194
+ left: 0px;
195
+ cursor: default;
196
+ border-top: 1px solid #fff;
197
+ border-right: 1px solid #000;
198
+ border-bottom: 1px solid #000;
199
+ border-left: 1px solid #fff;
200
+ background: #d8e0e4;
201
+ font-size: 90%;
202
+ padding: 1px;
203
+ }
204
+
205
+ .calendar .combo .label,
206
+ .calendar .combo .label-IEfix {
207
+ text-align: center;
208
+ padding: 1px;
209
+ }
210
+
211
+ .calendar .combo .label-IEfix {
212
+ width: 4em;
213
+ }
214
+
215
+ .calendar .combo .active {
216
+ background: #c8d0d4;
217
+ padding: 0px;
218
+ border-top: 1px solid #000;
219
+ border-right: 1px solid #fff;
220
+ border-bottom: 1px solid #fff;
221
+ border-left: 1px solid #000;
222
+ }
223
+
224
+ .calendar .combo .hilite {
225
+ background: #048;
226
+ color: #aef;
227
+ }
228
+
229
+ .calendar td.time {
230
+ border-top: 1px solid #000;
231
+ padding: 1px 0px;
232
+ text-align: center;
233
+ background-color: #e8f0f4;
234
+ }
235
+
236
+ .calendar td.time .hour,
237
+ .calendar td.time .minute,
238
+ .calendar td.time .ampm {
239
+ padding: 0px 3px 0px 4px;
240
+ border: 1px solid #889;
241
+ font-weight: bold;
242
+ background-color: #fff;
243
+ }
244
+
245
+ .calendar td.time .ampm {
246
+ text-align: center;
247
+ }
248
+
249
+ .calendar td.time .colon {
250
+ padding: 0px 2px 0px 3px;
251
+ font-weight: bold;
252
+ }
253
+
254
+ .calendar td.time span.hilite {
255
+ border-color: #000;
256
+ background-color: #667;
257
+ color: #fff;
258
+ }
259
+
260
+ .calendar td.time span.active {
261
+ border-color: #f00;
262
+ background-color: #000;
263
+ color: #0f0;
264
+ }