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.
- 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
|
+
}
|