damagecontrol 0.5.0 → 0.5.0.1391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }