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,33 @@
1
+ The DHTML Calendar
2
+ -------------------
3
+
4
+ Author: Mihai Bazon, <mishoo@infoiasi.ro>
5
+ http://dynarch.com/mishoo/
6
+
7
+ This program is free software published under the
8
+ terms of the GNU Lesser General Public License.
9
+
10
+ For the entire license text please refer to
11
+ http://www.gnu.org/licenses/lgpl.html
12
+
13
+ Contents
14
+ ---------
15
+
16
+ calendar.js -- the main program file
17
+ lang/*.js -- internalization files
18
+ *.css -- color themes
19
+ cal.html -- example usage file
20
+ doc/ -- documentation, in PDF and HTML
21
+ simple-1.html -- quick setup examples [popup calendars]
22
+ simple-2.html -- quick setup example for flat calendar
23
+ calendar.php -- PHP wrapper
24
+ test.php -- test file for the PHP wrapper
25
+
26
+ Homepage
27
+ ---------
28
+
29
+ For details and latest versions please refer to calendar
30
+ homepage, located on my website:
31
+
32
+ http://dynarch.com/mishoo/calendar.epl
33
+
@@ -0,0 +1,108 @@
1
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ro" lang="ro">
2
+
3
+ <head>
4
+ <title>Bug</title>
5
+ <link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-1.css" title="win2k-1" />
6
+
7
+ <!-- import the calendar script -->
8
+ <script type="text/javascript" src="calendar.js"></script>
9
+
10
+ <!-- import the language module -->
11
+ <script type="text/javascript" src="lang/calendar-en.js"></script>
12
+
13
+ <!-- helper script that uses the calendar -->
14
+ <script type="text/javascript">
15
+ // This function gets called when the end-user clicks on some date.
16
+ function selected(cal, date) {
17
+ cal.sel.value = date; // just update the date in the input field.
18
+ if (cal.sel.id == "sel1" || cal.sel.id == "sel3")
19
+ // if we add this call we close the calendar on single-click.
20
+ // just to exemplify both cases, we are using this only for the 1st
21
+ // and the 3rd field, while 2nd and 4th will still require double-click.
22
+ cal.callCloseHandler();
23
+ }
24
+
25
+ // And this gets called when the end-user clicks on the _selected_ date,
26
+ // or clicks on the "Close" button. It just hides the calendar without
27
+ // destroying it.
28
+ function closeHandler(cal) {
29
+ cal.hide(); // hide the calendar
30
+ }
31
+
32
+ // This function shows the calendar under the element having the given id.
33
+ // It takes care of catching "mousedown" signals on document and hiding the
34
+ // calendar if the click was outside.
35
+ function showCalendar(id, format) {
36
+ var el = document.getElementById(id);
37
+ if (calendar != null) {
38
+ // we already have some calendar created
39
+ calendar.hide(); // so we hide it first.
40
+ } else {
41
+ // first-time call, create the calendar.
42
+ var cal = new Calendar(false, null, selected, closeHandler);
43
+ // uncomment the following line to hide the week numbers
44
+ // cal.weekNumbers = false;
45
+ calendar = cal; // remember it in the global var
46
+ cal.setRange(1900, 2070); // min/max year allowed.
47
+ cal.create();
48
+ }
49
+ calendar.setDateFormat(format); // set the specified date format
50
+ calendar.parseDate(el.value); // try to parse the text in field
51
+ calendar.sel = el; // inform it what input field we use
52
+ calendar.showAtElement(el); // show the calendar below it
53
+
54
+ return false;
55
+ }
56
+
57
+ var MINUTE = 60 * 1000;
58
+ var HOUR = 60 * MINUTE;
59
+ var DAY = 24 * HOUR;
60
+ var WEEK = 7 * DAY;
61
+
62
+ // If this handler returns true then the "date" given as
63
+ // parameter will be disabled. In this example we enable
64
+ // only days within a range of 10 days from the current
65
+ // date.
66
+ // You can use the functions date.getFullYear() -- returns the year
67
+ // as 4 digit number, date.getMonth() -- returns the month as 0..11,
68
+ // and date.getDate() -- returns the date of the month as 1..31, to
69
+ // make heavy calculations here. However, beware that this function
70
+ // should be very fast, as it is called for each day in a month when
71
+ // the calendar is (re)constructed.
72
+ function isDisabled(date) {
73
+ var today = new Date();
74
+ return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
75
+ }
76
+ </script>
77
+ </head>
78
+
79
+ <body>
80
+ <form>
81
+ <b>Date:</b>
82
+ <br>
83
+ <input type="text" name="date1" id="sel1" size="30">
84
+ <input type="button" value="..." onclick="return showCalendar('sel1', 'y-m-d');">
85
+ <p>
86
+ <br>
87
+ <br><b>Visible &lt;select&gt;, hides and unhides as expected</b>
88
+ <br>
89
+ <select name="foo" multiple>
90
+ <option value="1">can use the functions date.getFullYear() -- returns</option>
91
+ <option value="2">4 digit number, date.getMonth() -- returns the month</option>
92
+ <option value="3">heavy calculations here. However, beware that this</option>
93
+ </select>
94
+
95
+ <p>
96
+ <br><b>Hidden &lt;select&gt;, it should stay hidden (but doesn't)</b>
97
+ <br>
98
+ <select name="foo2" multiple style="visibility: hidden">
99
+ <option value="1">this should</option>
100
+ <option value="2">remain hidden right?</option>
101
+ </select>
102
+
103
+ <p>
104
+ <br><b>Hidden textbox below, it stays hidden as expected</b>
105
+ <br>
106
+ <input type="text" name="foo3" value="this stays hidden just fine" style="visibility: hidden">
107
+ </form>
108
+ </body></html>
@@ -0,0 +1,231 @@
1
+ /* The main calendar widget. DIV containing a table. */
2
+
3
+ div.calendar { position: relative; }
4
+
5
+ .calendar, .calendar table {
6
+ border: 1px solid #556;
7
+ font-size: 11px;
8
+ color: #000;
9
+ cursor: default;
10
+ background: #eef;
11
+ font-family: tahoma,verdana,sans-serif;
12
+ }
13
+
14
+ /* Header part -- contains navigation buttons and day names. */
15
+
16
+ .calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
17
+ text-align: center; /* They are the navigation buttons */
18
+ padding: 2px; /* Make the buttons seem like they're pressing */
19
+ }
20
+
21
+ .calendar .nav {
22
+ background: #778 url(menuarrow.gif) no-repeat 100% 100%;
23
+ }
24
+
25
+ .calendar thead .title { /* This holds the current "month, year" */
26
+ font-weight: bold; /* Pressing it will take you to the current date */
27
+ text-align: center;
28
+ background: #fff;
29
+ color: #000;
30
+ padding: 2px;
31
+ }
32
+
33
+ .calendar thead .headrow { /* Row <TR> containing navigation buttons */
34
+ background: #778;
35
+ color: #fff;
36
+ }
37
+
38
+ .calendar thead .daynames { /* Row <TR> containing the day names */
39
+ background: #bdf;
40
+ }
41
+
42
+ .calendar thead .name { /* Cells <TD> containing the day names */
43
+ border-bottom: 1px solid #556;
44
+ padding: 2px;
45
+ text-align: center;
46
+ color: #000;
47
+ }
48
+
49
+ .calendar thead .weekend { /* How a weekend day name shows in header */
50
+ color: #a66;
51
+ }
52
+
53
+ .calendar thead .hilite { /* How do the buttons in header appear when hover */
54
+ background-color: #aaf;
55
+ color: #000;
56
+ border: 1px solid #04f;
57
+ padding: 1px;
58
+ }
59
+
60
+ .calendar thead .active { /* Active (pressed) buttons in header */
61
+ background-color: #77c;
62
+ padding: 2px 0px 0px 2px;
63
+ }
64
+
65
+ /* The body part -- contains all the days in month. */
66
+
67
+ .calendar tbody .day { /* Cells <TD> containing month days dates */
68
+ width: 2em;
69
+ color: #456;
70
+ text-align: right;
71
+ padding: 2px 4px 2px 2px;
72
+ }
73
+ .calendar tbody .day.othermonth {
74
+ font-size: 80%;
75
+ color: #bbb;
76
+ }
77
+ .calendar tbody .day.othermonth.oweekend {
78
+ color: #fbb;
79
+ }
80
+
81
+ .calendar table .wn {
82
+ padding: 2px 3px 2px 2px;
83
+ border-right: 1px solid #000;
84
+ background: #bdf;
85
+ }
86
+
87
+ .calendar tbody .rowhilite td {
88
+ background: #def;
89
+ }
90
+
91
+ .calendar tbody .rowhilite td.wn {
92
+ background: #eef;
93
+ }
94
+
95
+ .calendar tbody td.hilite { /* Hovered cells <TD> */
96
+ background: #def;
97
+ padding: 1px 3px 1px 1px;
98
+ border: 1px solid #bbb;
99
+ }
100
+
101
+ .calendar tbody td.active { /* Active (pressed) cells <TD> */
102
+ background: #cde;
103
+ padding: 2px 2px 0px 2px;
104
+ }
105
+
106
+ .calendar tbody td.selected { /* Cell showing today date */
107
+ font-weight: bold;
108
+ border: 1px solid #000;
109
+ padding: 1px 3px 1px 1px;
110
+ background: #fff;
111
+ color: #000;
112
+ }
113
+
114
+ .calendar tbody td.weekend { /* Cells showing weekend days */
115
+ color: #a66;
116
+ }
117
+
118
+ .calendar tbody td.today { /* Cell showing selected date */
119
+ font-weight: bold;
120
+ color: #00f;
121
+ }
122
+
123
+ .calendar tbody .disabled { color: #999; }
124
+
125
+ .calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
126
+ visibility: hidden;
127
+ }
128
+
129
+ .calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
130
+ display: none;
131
+ }
132
+
133
+ /* The footer part -- status bar and "Close" button */
134
+
135
+ .calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
136
+ text-align: center;
137
+ background: #556;
138
+ color: #fff;
139
+ }
140
+
141
+ .calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
142
+ background: #fff;
143
+ color: #445;
144
+ border-top: 1px solid #556;
145
+ padding: 1px;
146
+ }
147
+
148
+ .calendar tfoot .hilite { /* Hover style for buttons in footer */
149
+ background: #aaf;
150
+ border: 1px solid #04f;
151
+ color: #000;
152
+ padding: 1px;
153
+ }
154
+
155
+ .calendar tfoot .active { /* Active (pressed) style for buttons in footer */
156
+ background: #77c;
157
+ padding: 2px 0px 0px 2px;
158
+ }
159
+
160
+ /* Combo boxes (menus that display months/years for direct selection) */
161
+
162
+ .calendar .combo {
163
+ position: absolute;
164
+ display: none;
165
+ top: 0px;
166
+ left: 0px;
167
+ width: 4em;
168
+ cursor: default;
169
+ border: 1px solid #655;
170
+ background: #def;
171
+ color: #000;
172
+ font-size: 90%;
173
+ }
174
+
175
+ .calendar .combo .label,
176
+ .calendar .combo .label-IEfix {
177
+ text-align: center;
178
+ padding: 1px;
179
+ }
180
+
181
+ .calendar .combo .label-IEfix {
182
+ width: 4em;
183
+ }
184
+
185
+ .calendar .combo .hilite {
186
+ background: #acf;
187
+ }
188
+
189
+ .calendar .combo .active {
190
+ border-top: 1px solid #46a;
191
+ border-bottom: 1px solid #46a;
192
+ background: #eef;
193
+ font-weight: bold;
194
+ }
195
+
196
+ .calendar td.time {
197
+ border-top: 1px solid #000;
198
+ padding: 1px 0px;
199
+ text-align: center;
200
+ background-color: #f4f0e8;
201
+ }
202
+
203
+ .calendar td.time .hour,
204
+ .calendar td.time .minute,
205
+ .calendar td.time .ampm {
206
+ padding: 0px 3px 0px 4px;
207
+ border: 1px solid #889;
208
+ font-weight: bold;
209
+ background-color: #fff;
210
+ }
211
+
212
+ .calendar td.time .ampm {
213
+ text-align: center;
214
+ }
215
+
216
+ .calendar td.time .colon {
217
+ padding: 0px 2px 0px 3px;
218
+ font-weight: bold;
219
+ }
220
+
221
+ .calendar td.time span.hilite {
222
+ border-color: #000;
223
+ background-color: #667;
224
+ color: #fff;
225
+ }
226
+
227
+ .calendar td.time span.active {
228
+ border-color: #f00;
229
+ background-color: #000;
230
+ color: #0f0;
231
+ }
@@ -0,0 +1,235 @@
1
+ /* The main calendar widget. DIV containing a table. */
2
+
3
+ div.calendar { position: relative; }
4
+
5
+ .calendar, .calendar table {
6
+ border: 1px solid #206A9B;
7
+ font-size: 11px;
8
+ color: #000;
9
+ cursor: default;
10
+ background: #F1F8FC;
11
+ font-family: tahoma,verdana,sans-serif;
12
+ }
13
+
14
+ /* Header part -- contains navigation buttons and day names. */
15
+
16
+ .calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
17
+ text-align: center; /* They are the navigation buttons */
18
+ padding: 2px; /* Make the buttons seem like they're pressing */
19
+ }
20
+
21
+ .calendar .nav {
22
+ background: #007ED1 url(menuarrow2.gif) no-repeat 100% 100%;
23
+ }
24
+
25
+ .calendar thead .title { /* This holds the current "month, year" */
26
+ font-weight: bold; /* Pressing it will take you to the current date */
27
+ text-align: center;
28
+ background: #000;
29
+ color: #fff;
30
+ padding: 2px;
31
+ }
32
+
33
+ .calendar thead tr { /* Row <TR> containing navigation buttons */
34
+ background: #007ED1;
35
+ color: #fff;
36
+ }
37
+
38
+ .calendar thead .daynames { /* Row <TR> containing the day names */
39
+ background: #C7E1F3;
40
+ }
41
+
42
+ .calendar thead .name { /* Cells <TD> containing the day names */
43
+ border-bottom: 1px solid #206A9B;
44
+ padding: 2px;
45
+ text-align: center;
46
+ color: #000;
47
+ }
48
+
49
+ .calendar thead .weekend { /* How a weekend day name shows in header */
50
+ color: #a66;
51
+ }
52
+
53
+ .calendar thead .hilite { /* How do the buttons in header appear when hover */
54
+ background-color: #34ABFA;
55
+ color: #000;
56
+ border: 1px solid #016DC5;
57
+ padding: 1px;
58
+ }
59
+
60
+ .calendar thead .active { /* Active (pressed) buttons in header */
61
+ background-color: #006AA9;
62
+ border: 1px solid #008AFF;
63
+ padding: 2px 0px 0px 2px;
64
+ }
65
+
66
+ /* The body part -- contains all the days in month. */
67
+
68
+ .calendar tbody .day { /* Cells <TD> containing month days dates */
69
+ width: 2em;
70
+ color: #456;
71
+ text-align: right;
72
+ padding: 2px 4px 2px 2px;
73
+ }
74
+ .calendar tbody .day.othermonth {
75
+ font-size: 80%;
76
+ color: #bbb;
77
+ }
78
+ .calendar tbody .day.othermonth.oweekend {
79
+ color: #fbb;
80
+ }
81
+
82
+ .calendar table .wn {
83
+ padding: 2px 3px 2px 2px;
84
+ border-right: 1px solid #000;
85
+ background: #C7E1F3;
86
+ }
87
+
88
+ .calendar tbody .rowhilite td {
89
+ background: #def;
90
+ }
91
+
92
+ .calendar tbody .rowhilite td.wn {
93
+ background: #F1F8FC;
94
+ }
95
+
96
+ .calendar tbody td.hilite { /* Hovered cells <TD> */
97
+ background: #def;
98
+ padding: 1px 3px 1px 1px;
99
+ border: 1px solid #8FC4E8;
100
+ }
101
+
102
+ .calendar tbody td.active { /* Active (pressed) cells <TD> */
103
+ background: #cde;
104
+ padding: 2px 2px 0px 2px;
105
+ }
106
+
107
+ .calendar tbody td.selected { /* Cell showing today date */
108
+ font-weight: bold;
109
+ border: 1px solid #000;
110
+ padding: 1px 3px 1px 1px;
111
+ background: #fff;
112
+ color: #000;
113
+ }
114
+
115
+ .calendar tbody td.weekend { /* Cells showing weekend days */
116
+ color: #a66;
117
+ }
118
+
119
+ .calendar tbody td.today { /* Cell showing selected date */
120
+ font-weight: bold;
121
+ color: #D50000;
122
+ }
123
+
124
+ .calendar tbody .disabled { color: #999; }
125
+
126
+ .calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
127
+ visibility: hidden;
128
+ }
129
+
130
+ .calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
131
+ display: none;
132
+ }
133
+
134
+ /* The footer part -- status bar and "Close" button */
135
+
136
+ .calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
137
+ text-align: center;
138
+ background: #206A9B;
139
+ color: #fff;
140
+ }
141
+
142
+ .calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
143
+ background: #000;
144
+ color: #fff;
145
+ border-top: 1px solid #206A9B;
146
+ padding: 1px;
147
+ }
148
+
149
+ .calendar tfoot .hilite { /* Hover style for buttons in footer */
150
+ background: #B8DAF0;
151
+ border: 1px solid #178AEB;
152
+ color: #000;
153
+ padding: 1px;
154
+ }
155
+
156
+ .calendar tfoot .active { /* Active (pressed) style for buttons in footer */
157
+ background: #006AA9;
158
+ padding: 2px 0px 0px 2px;
159
+ }
160
+
161
+ /* Combo boxes (menus that display months/years for direct selection) */
162
+
163
+ .calendar .combo {
164
+ position: absolute;
165
+ display: none;
166
+ top: 0px;
167
+ left: 0px;
168
+ width: 4em;
169
+ cursor: default;
170
+ border: 1px solid #655;
171
+ background: #def;
172
+ color: #000;
173
+ font-size: 90%;
174
+ }
175
+
176
+ .calendar .combo .label,
177
+ .calendar .combo .label-IEfix {
178
+ text-align: center;
179
+ padding: 1px;
180
+ }
181
+
182
+ .calendar .combo .label-IEfix {
183
+ width: 4em;
184
+ }
185
+
186
+ .calendar .combo .hilite {
187
+ background: #34ABFA;
188
+ border-top: 1px solid #46a;
189
+ border-bottom: 1px solid #46a;
190
+ font-weight: bold;
191
+ }
192
+
193
+ .calendar .combo .active {
194
+ border-top: 1px solid #46a;
195
+ border-bottom: 1px solid #46a;
196
+ background: #F1F8FC;
197
+ font-weight: bold;
198
+ }
199
+
200
+ .calendar td.time {
201
+ border-top: 1px solid #000;
202
+ padding: 1px 0px;
203
+ text-align: center;
204
+ background-color: #E3F0F9;
205
+ }
206
+
207
+ .calendar td.time .hour,
208
+ .calendar td.time .minute,
209
+ .calendar td.time .ampm {
210
+ padding: 0px 3px 0px 4px;
211
+ border: 1px solid #889;
212
+ font-weight: bold;
213
+ background-color: #F1F8FC;
214
+ }
215
+
216
+ .calendar td.time .ampm {
217
+ text-align: center;
218
+ }
219
+
220
+ .calendar td.time .colon {
221
+ padding: 0px 2px 0px 3px;
222
+ font-weight: bold;
223
+ }
224
+
225
+ .calendar td.time span.hilite {
226
+ border-color: #000;
227
+ background-color: #267DB7;
228
+ color: #fff;
229
+ }
230
+
231
+ .calendar td.time span.active {
232
+ border-color: red;
233
+ background-color: #000;
234
+ color: #A5FF00;
235
+ }