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.
- data/README +67 -11
- data/Rakefile +15 -6
- data/app/controllers/admin_controller.rb +0 -3
- data/app/controllers/application.rb +42 -163
- data/app/controllers/build_controller.rb +33 -0
- data/app/controllers/files_controller.rb +1 -1
- data/app/controllers/project_controller.rb +23 -65
- data/app/controllers/rails_ext.rb +247 -0
- data/app/controllers/rscm_ext.rb +52 -0
- data/app/helpers/build_helper.rb +2 -0
- data/app/views/build/email.rhtml +18 -0
- data/app/views/build/status.rhtml +20 -0
- data/app/views/build/tests.rhtml +2 -0
- data/app/views/layouts/{rscm.rhtml → default.rhtml} +10 -4
- data/app/views/project/_changesets_list.rhtml +2 -2
- data/app/views/project/_cvs.rhtml +4 -5
- data/app/views/project/_project.rhtml +9 -9
- data/app/views/project/_select_pane.rhtml +26 -0
- data/app/views/project/_tab_pane.rhtml +23 -0
- data/app/views/project/changeset.rhtml +35 -0
- data/app/views/project/view.rhtml +18 -32
- data/app/views/setup/welcome.rhtml +118 -0
- data/config/database.yml +20 -20
- data/config/environment.rb +66 -60
- data/config/environments/development.rb +3 -2
- data/config/environments/production.rb +3 -2
- data/config/environments/test.rb +3 -2
- data/config/routes.rb +15 -0
- data/lib/damagecontrol/app.rb +11 -40
- data/lib/damagecontrol/build.rb +50 -8
- data/lib/damagecontrol/directories.rb +7 -6
- data/lib/damagecontrol/poller.rb +11 -20
- data/lib/damagecontrol/project.rb +83 -16
- data/lib/damagecontrol/publisher/ambient_orb.rb +16 -0
- data/lib/damagecontrol/publisher/archive.rb +16 -0
- data/lib/damagecontrol/publisher/base.rb +25 -0
- data/lib/damagecontrol/publisher/build_duration.rb +16 -0
- data/lib/damagecontrol/publisher/email.rb +59 -0
- data/lib/damagecontrol/publisher/execute.rb +49 -0
- data/lib/damagecontrol/publisher/ftp.rb +16 -0
- data/lib/damagecontrol/publisher/growl.rb +44 -0
- data/lib/damagecontrol/publisher/irc.rb +31 -0
- data/lib/damagecontrol/publisher/jabber.rb +68 -0
- data/lib/damagecontrol/publisher/scp.rb +16 -0
- data/lib/damagecontrol/publisher/x10cm11a.rb +17 -0
- data/lib/damagecontrol/publisher/x10cm17a.rb +17 -0
- data/lib/damagecontrol/publisher/yahoo.rb +16 -0
- data/lib/damagecontrol/standard_persister.rb +2 -2
- data/lib/damagecontrol/tracker.rb +48 -6
- data/lib/damagecontrol/visitor/rss_writer.rb +1 -1
- data/lib/damagecontrol/visitor/yaml_persister.rb +10 -1
- data/public/404.html +5 -5
- data/public/500.html +5 -5
- data/public/dispatch.cgi +2 -2
- data/public/dispatch.fcgi +1 -1
- data/public/dispatch.rb +2 -2
- data/public/images/growlicon.png +0 -0
- data/public/images/megaphone.png +0 -0
- data/public/images/monotone-logo.png +0 -0
- data/public/images/publisher/ambient_orb.png +0 -0
- data/public/images/publisher/build_duration.png +0 -0
- data/public/images/publisher/email.png +0 -0
- data/public/images/publisher/execute.png +0 -0
- data/public/images/publisher/growl.png +0 -0
- data/public/images/publisher/irc.png +0 -0
- data/public/images/publisher/jabber.png +0 -0
- data/public/images/publisher/x10cm11a.png +0 -0
- data/public/images/publisher/x10cm17a.png +0 -0
- data/public/images/publisher/yahoo.png +0 -0
- data/public/index.html +70 -1
- data/public/javascripts/dateFormat.js +283 -0
- data/public/javascripts/jscalendar/ChangeLog +500 -0
- data/public/javascripts/jscalendar/README +33 -0
- data/public/javascripts/jscalendar/bugtest-hidden-selects.html +108 -0
- data/public/javascripts/jscalendar/calendar-blue.css +231 -0
- data/public/javascripts/jscalendar/calendar-blue2.css +235 -0
- data/public/javascripts/jscalendar/calendar-brown.css +224 -0
- data/public/javascripts/jscalendar/calendar-green.css +228 -0
- data/public/javascripts/jscalendar/calendar-setup.js +181 -0
- data/public/javascripts/jscalendar/calendar-setup_stripped.js +21 -0
- data/public/javascripts/jscalendar/calendar-system.css +250 -0
- data/public/javascripts/jscalendar/calendar-tas.css +238 -0
- data/public/javascripts/jscalendar/calendar-win2k-1.css +270 -0
- data/public/javascripts/jscalendar/calendar-win2k-2.css +270 -0
- data/public/javascripts/jscalendar/calendar-win2k-cold-1.css +264 -0
- data/public/javascripts/jscalendar/calendar-win2k-cold-2.css +270 -0
- data/public/javascripts/jscalendar/calendar.js +1715 -0
- data/public/javascripts/jscalendar/calendar.php +119 -0
- data/public/javascripts/jscalendar/calendar_stripped.js +12 -0
- data/public/javascripts/jscalendar/doc/html/reference-Z-S.css +0 -0
- data/public/javascripts/jscalendar/doc/html/reference.css +34 -0
- data/public/javascripts/jscalendar/doc/html/reference.html +1316 -0
- data/public/javascripts/jscalendar/doc/reference.pdf +0 -0
- data/public/javascripts/jscalendar/img.gif +0 -0
- data/public/javascripts/jscalendar/index.html +333 -0
- data/public/javascripts/jscalendar/lang/calendar-af.js +39 -0
- data/public/javascripts/jscalendar/lang/calendar-br.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-ca.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-cs-win.js +34 -0
- data/public/javascripts/jscalendar/lang/calendar-da.js +63 -0
- data/public/javascripts/jscalendar/lang/calendar-de.js +100 -0
- data/public/javascripts/jscalendar/lang/calendar-du.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-el.js +89 -0
- data/public/javascripts/jscalendar/lang/calendar-en.js +123 -0
- data/public/javascripts/jscalendar/lang/calendar-es.js +114 -0
- data/public/javascripts/jscalendar/lang/calendar-fi.js +98 -0
- data/public/javascripts/jscalendar/lang/calendar-fr.js +86 -0
- data/public/javascripts/jscalendar/lang/calendar-hr-utf8.js +49 -0
- data/public/javascripts/jscalendar/lang/calendar-hr.js +0 -0
- data/public/javascripts/jscalendar/lang/calendar-hu.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-it.js +79 -0
- data/public/javascripts/jscalendar/lang/calendar-jp.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-ko-utf8.js +120 -0
- data/public/javascripts/jscalendar/lang/calendar-ko.js +120 -0
- data/public/javascripts/jscalendar/lang/calendar-lt-utf8.js +114 -0
- data/public/javascripts/jscalendar/lang/calendar-lt.js +114 -0
- data/public/javascripts/jscalendar/lang/calendar-nl.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-no.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-pl-utf8.js +93 -0
- data/public/javascripts/jscalendar/lang/calendar-pl.js +56 -0
- data/public/javascripts/jscalendar/lang/calendar-pt.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-ro.js +66 -0
- data/public/javascripts/jscalendar/lang/calendar-ru.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-si.js +94 -0
- data/public/javascripts/jscalendar/lang/calendar-sk.js +99 -0
- data/public/javascripts/jscalendar/lang/calendar-sp.js +63 -0
- data/public/javascripts/jscalendar/lang/calendar-sv.js +93 -0
- data/public/javascripts/jscalendar/lang/calendar-tr.js +58 -0
- data/public/javascripts/jscalendar/lang/calendar-zh.js +45 -0
- data/public/javascripts/jscalendar/menuarrow.gif +0 -0
- data/public/javascripts/jscalendar/menuarrow2.gif +0 -0
- data/public/javascripts/jscalendar/release-notes.html +334 -0
- data/public/javascripts/jscalendar/simple-1.html +244 -0
- data/public/javascripts/jscalendar/simple-2.html +108 -0
- data/public/javascripts/jscalendar/simple-3.html +130 -0
- data/public/javascripts/jscalendar/test-position.html +40 -0
- data/public/javascripts/jscalendar/test.php +116 -0
- data/public/javascripts/toggle_div.js +18 -0
- data/public/stylesheets/niceones.txt +1 -0
- data/public/stylesheets/style.css +8 -1
- data/script/breakpointer +4 -5
- data/script/console +19 -27
- data/script/console_sandbox.rb +7 -0
- data/script/destroy +5 -0
- data/script/generate +3 -68
- data/script/server +6 -16
- data/test/damagecontrol/build_test.rb +8 -8
- data/test/damagecontrol/poller_test.rb +10 -18
- data/test/damagecontrol/project_test.rb +49 -13
- data/test/damagecontrol/publisher/base_test.rb +26 -0
- data/test/damagecontrol/publisher/build/email.rhtml +0 -0
- data/test/damagecontrol/publisher/email_test.rb +26 -0
- data/test/damagecontrol/publisher/fixture.rb +34 -0
- data/test/damagecontrol/publisher/growl_test.rb +15 -0
- data/test/damagecontrol/publisher/jabber_test.rb +15 -0
- data/test/damagecontrol/scm_web_test.rb +1 -1
- data/test/damagecontrol/visitor/changesets.rss +1 -1
- data/test/damagecontrol/visitor/diff_persister_test.rb +4 -4
- data/test/functional/build_controller_test.rb +17 -0
- data/test/test_helper.rb +13 -13
- metadata +185 -24
- data/app/views/project/_bugzilla.rhtml +0 -13
- data/app/views/project/_jira.rhtml +0 -19
- data/app/views/project/_mooky.rhtml +0 -23
- data/app/views/project/_rubyforge.rhtml +0 -19
- data/app/views/project/_scarab.rhtml +0 -19
- data/app/views/project/_scms.rhtml +0 -15
- data/app/views/project/_sourceforge.rhtml +0 -19
- data/app/views/project/_starteam.rhtml +0 -43
- data/app/views/project/_svn.rhtml +0 -22
- data/app/views/project/_trac.rhtml +0 -13
- data/app/views/project/_trackers.rhtml +0 -18
- 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 <select>, 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 <select>, 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
|
+
}
|