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,333 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <!-- $Id: index.html,v 1.10 2004/02/06 18:53:09 mishoo Exp $ -->
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/xml; charset=utf-8" />
8
+ <title>The Coolest DHTML Calendar - Online Demo</title>
9
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-blue.css" title="winter" />
10
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-blue2.css" title="blue" />
11
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-brown.css" title="summer" />
12
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-green.css" title="green" />
13
+ <link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-1.css" title="win2k-1" />
14
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-2.css" title="win2k-2" />
15
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />
16
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-cold-2.css" title="win2k-cold-2" />
17
+ <link rel="alternate stylesheet" type="text/css" media="all" href="calendar-system.css" title="system" />
18
+
19
+ <!-- import the calendar script -->
20
+ <script type="text/javascript" src="calendar.js"></script>
21
+
22
+ <!-- import the language module -->
23
+ <script type="text/javascript" src="lang/calendar-en.js"></script>
24
+
25
+ <!-- other languages might be available in the lang directory; please check
26
+ your distribution archive. -->
27
+
28
+ <!-- helper script that uses the calendar -->
29
+ <script type="text/javascript">
30
+
31
+ var oldLink = null;
32
+ // code to change the active stylesheet
33
+ function setActiveStyleSheet(link, title) {
34
+ var i, a, main;
35
+ for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
36
+ if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
37
+ a.disabled = true;
38
+ if(a.getAttribute("title") == title) a.disabled = false;
39
+ }
40
+ }
41
+ if (oldLink) oldLink.style.fontWeight = 'normal';
42
+ oldLink = link;
43
+ link.style.fontWeight = 'bold';
44
+ return false;
45
+ }
46
+
47
+ // This function gets called when the end-user clicks on some date.
48
+ function selected(cal, date) {
49
+ cal.sel.value = date; // just update the date in the input field.
50
+ if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
51
+ // if we add this call we close the calendar on single-click.
52
+ // just to exemplify both cases, we are using this only for the 1st
53
+ // and the 3rd field, while 2nd and 4th will still require double-click.
54
+ cal.callCloseHandler();
55
+ }
56
+
57
+ // And this gets called when the end-user clicks on the _selected_ date,
58
+ // or clicks on the "Close" button. It just hides the calendar without
59
+ // destroying it.
60
+ function closeHandler(cal) {
61
+ cal.hide(); // hide the calendar
62
+ // cal.destroy();
63
+ calendar = null;
64
+ }
65
+
66
+ // This function shows the calendar under the element having the given id.
67
+ // It takes care of catching "mousedown" signals on document and hiding the
68
+ // calendar if the click was outside.
69
+ function showCalendar(id, format, showsTime, showsOtherMonths) {
70
+ var el = document.getElementById(id);
71
+ if (calendar != null) {
72
+ // we already have some calendar created
73
+ calendar.hide(); // so we hide it first.
74
+ } else {
75
+ // first-time call, create the calendar.
76
+ var cal = new Calendar(true, null, selected, closeHandler);
77
+ // uncomment the following line to hide the week numbers
78
+ // cal.weekNumbers = false;
79
+ if (typeof showsTime == "string") {
80
+ cal.showsTime = true;
81
+ cal.time24 = (showsTime == "24");
82
+ }
83
+ if (showsOtherMonths) {
84
+ cal.showsOtherMonths = true;
85
+ }
86
+ calendar = cal; // remember it in the global var
87
+ cal.setRange(1900, 2070); // min/max year allowed.
88
+ cal.create();
89
+ }
90
+ calendar.setDateFormat(format); // set the specified date format
91
+ calendar.parseDate(el.value); // try to parse the text in field
92
+ calendar.sel = el; // inform it what input field we use
93
+
94
+ // the reference element that we pass to showAtElement is the button that
95
+ // triggers the calendar. In this example we align the calendar bottom-right
96
+ // to the button.
97
+ calendar.showAtElement(el.nextSibling, "Br"); // show the calendar
98
+
99
+ return false;
100
+ }
101
+
102
+ var MINUTE = 60 * 1000;
103
+ var HOUR = 60 * MINUTE;
104
+ var DAY = 24 * HOUR;
105
+ var WEEK = 7 * DAY;
106
+
107
+ // If this handler returns true then the "date" given as
108
+ // parameter will be disabled. In this example we enable
109
+ // only days within a range of 10 days from the current
110
+ // date.
111
+ // You can use the functions date.getFullYear() -- returns the year
112
+ // as 4 digit number, date.getMonth() -- returns the month as 0..11,
113
+ // and date.getDate() -- returns the date of the month as 1..31, to
114
+ // make heavy calculations here. However, beware that this function
115
+ // should be very fast, as it is called for each day in a month when
116
+ // the calendar is (re)constructed.
117
+ function isDisabled(date) {
118
+ var today = new Date();
119
+ return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
120
+ }
121
+
122
+ function flatSelected(cal, date) {
123
+ var el = document.getElementById("preview");
124
+ el.innerHTML = date;
125
+ }
126
+
127
+ function showFlatCalendar() {
128
+ var parent = document.getElementById("display");
129
+
130
+ // construct a calendar giving only the "selected" handler.
131
+ var cal = new Calendar(true, null, flatSelected);
132
+
133
+ // hide week numbers
134
+ cal.weekNumbers = false;
135
+
136
+ // We want some dates to be disabled; see function isDisabled above
137
+ cal.setDisabledHandler(isDisabled);
138
+ cal.setDateFormat("%A, %B %e");
139
+
140
+ // this call must be the last as it might use data initialized above; if
141
+ // we specify a parent, as opposite to the "showCalendar" function above,
142
+ // then we create a flat calendar -- not popup. Hidden, though, but...
143
+ cal.create(parent);
144
+
145
+ // ... we can show it here.
146
+ cal.show();
147
+ }
148
+ </script>
149
+
150
+ <style type="text/css">
151
+ .ex { font-weight: bold; background: #fed; color: #080 }
152
+ .help { color: #080; font-style: italic; }
153
+ body { background: #fea; font: 10pt tahoma,verdana,sans-serif; }
154
+ table { font: 13px verdana,tahoma,sans-serif; }
155
+ a { color: #00f; }
156
+ a:visited { color: #00f; }
157
+ a:hover { color: #f00; background: #fefaf0; }
158
+ a:active { color: #08f; }
159
+ .key { border: 1px solid #000; background: #fff; color: #008;
160
+ padding: 0px 5px; cursor: default; font-size: 80%; }
161
+ </style>
162
+
163
+ </head>
164
+ <body onload="showFlatCalendar()">
165
+
166
+ <h2><a href="http://dynarch.com/mishoo/calendar.epl"
167
+ title="Visit the project website">jscalendar</a>-0.9.6
168
+ "Keep cool but don't freeze"</h2>
169
+
170
+ <p>
171
+ <div style="float: right; border: 1px solid #b87; padding: 2px; font-size: 90%; background: #ffb;">
172
+ Theme:<br />
173
+ <a href="#" onclick="return setActiveStyleSheet(this, 'winter');">winter</a>
174
+ |
175
+ <a href="#" onclick="return setActiveStyleSheet(this, 'blue');">blue</a>
176
+ |
177
+ <a href="#" onclick="return setActiveStyleSheet(this, 'summer');">summer</a>
178
+ |
179
+ <a href="#" onclick="return setActiveStyleSheet(this, 'green');">green</a>
180
+ <br />
181
+ <a href="#" id="defaultTheme" onclick="return setActiveStyleSheet(this, 'win2k-1');">win2k-1</a>
182
+ |
183
+ <a href="#" onclick="return setActiveStyleSheet(this, 'win2k-2');">win2k-2</a>
184
+ |
185
+ <a href="#" onclick="return setActiveStyleSheet(this, 'win2k-cold-1');">win2k-cold-1</a>
186
+ |
187
+ <a href="#" onclick="return setActiveStyleSheet(this, 'win2k-cold-2');">win2k-cold-2</a>
188
+ <br />
189
+ <a href="#" onclick="return setActiveStyleSheet(this, 'system');">system</a>
190
+ <script type="text/javascript">
191
+ setActiveStyleSheet(document.getElementById("defaultTheme"), "win2k-1");
192
+ </script>
193
+ </div>
194
+ <a href="release-notes.html">Release notes</a>.
195
+ <br />
196
+ Set it up in minutes:
197
+ <a href="simple-1.html">popup calendar</a>,
198
+ <a href="simple-2.html">flat calendar</a>.
199
+ <br />
200
+ Documentation:
201
+ <a href="doc/html/reference.html">HTML</a>,
202
+ <a href="doc/reference.pdf">PDF</a>.
203
+ <br />
204
+ <b style="color: red">Donate! Keep me on it! Details on <a href="http://dynarch.com/mishoo/calendar.epl">the Calendar website</a>.</b>
205
+ </p>
206
+
207
+ <div style="padding-left:20px; font-size: 90%; font-style: italic;">
208
+
209
+ </div>
210
+
211
+ <table style="width: 100%">
212
+ <tr valign="top">
213
+ <td style="background: #ffa; padding: 5px; border: 1px solid #995;">
214
+
215
+ <form action="#">
216
+ <div style="background: #995; color: #ffa; font-weight: bold; padding: 2px;">
217
+ Popup examples
218
+ </div>
219
+
220
+ <br />
221
+
222
+ <b>Date #1:</b> <input type="text" name="date1" id="sel1" size="30"
223
+ ><input type="reset" value=" ... "
224
+ onclick="return showCalendar('sel1', '%Y-%m-%d [%W] %H:%M', '24', true);"> %Y-%m-%d [%W] %H:%M -- single
225
+ click<br />
226
+
227
+ <b>Date #2:</b> <input type="text" name="date2" id="sel2" size="30"
228
+ ><input type="reset" value=" ... "
229
+ onclick="return showCalendar('sel2', '%a, %b %e, %Y [%I:%M %p]', '12');"> %a, %b %e, %Y [%I:%M %p]
230
+ -- double click
231
+
232
+ <br /><br />
233
+ <!--
234
+ if you remove this comment and leave the following HTML code
235
+ you will see a horrible effect, in all supported browsers (IE and Mozilla).
236
+ -->
237
+ <SELECT multiple size="4" name="component-select">
238
+ <OPTION selected value="Component_1_a">Component_1</OPTION>
239
+ <OPTION selected value="Component_1_b">Component_2</OPTION>
240
+ <OPTION>Component_3</OPTION>
241
+ <OPTION>Component_4</OPTION>
242
+ <OPTION>Component_5</OPTION>
243
+ <OPTION>Component_6</OPTION>
244
+ <OPTION>Component_7</OPTION>
245
+ </SELECT>
246
+ this select should hide when the calendar is above it.
247
+ <br /><br />
248
+
249
+ <b>Date #3:</b> <input type="text" name="date3" id="sel3" size="30"
250
+ ><input type="reset" value=" ... "
251
+ onclick="return showCalendar('sel3', '%d/%m/%Y');"> %d/%m/%Y
252
+ -- single click
253
+ <br />
254
+
255
+ <b>Date #4:</b> <input type="text" name="date4" id="sel4" size="30"
256
+ ><input type="reset" value=" ... "
257
+ onclick="return showCalendar('sel4', '%A, %B %e, %Y');"> %A, %B %e, %Y --
258
+ double click
259
+
260
+ </form>
261
+
262
+ <p>This is release <b>0.9.6</b>. Works on MSIE/Win 5.0 or better (really),
263
+ Opera 7, Mozilla, Netscape 6.x, 7.0 and all other Gecko-s, Konqueror and
264
+ Safari.</p>
265
+
266
+ <p class="help">You can click on "Mo"/"Su" (first day name displayed) to
267
+ change the first day of week (Sunday/Monday) (since 0.8 this is also mapped
268
+ on the "-" button in the top-left corner). Use the navigation buttons
269
+ ("&lt;&lt;", "&lt;", "Today", "&gt;", "&gt;&gt;") to move to the prev/next
270
+ year/month. Keep the mouse button pressed for a short time over one of
271
+ these buttons to get a menu for faster selection. You can drag the "status
272
+ bar" (that's where the tooltips appear) or title bar (that's where the
273
+ currently selected month/year shows up) to move the whole calendar.</p>
274
+
275
+ <h4>Keyboard navigation</h4>
276
+
277
+ <p>Starting with version 0.9.2, you can also use the keyboard to select
278
+ dates (only for popup calendars; does <em>not</em> work with Opera
279
+ 7 or Konqueror/Safari). The following keys are available:</p>
280
+
281
+ <ul>
282
+
283
+ <li><span class="key">&larr;</span> , <span class="key">&rarr;</span> ,
284
+ <span class="key">&uarr;</span> , <span class="key">&darr;</span> -- select date</li>
285
+ <li><span class="key">CTRL</span> + <span class="key">&larr;</span> ,
286
+ <span class="key">&rarr;</span> -- select month</li>
287
+ <li><span class="key">CTRL</span> + <span class="key">&uarr;</span> ,
288
+ <span class="key">&darr;</span> -- select year</li>
289
+ <li><span class="key">SPACE</span> -- go to <em>today</em> date</li>
290
+ <li><span class="key">ENTER</span> -- accept the currently selected date</li>
291
+ <li><span class="key">ESC</span> -- cancel selection</li>
292
+
293
+ </ul>
294
+
295
+ </td>
296
+
297
+ <td style="padding: 5px; margin: 5px; border: 1px solid #984; background: #ed9; width: 15em;">
298
+
299
+ <div style="background: #984; color: #fea; font-weight: bold; padding: 2px; text-align: center">
300
+ Flat calendar
301
+ </div>
302
+
303
+ <p style="width: 12em"><small>A non-popup version will appear below as soon
304
+ as the page is loaded. Note that it doesn't show the week number.</small></p>
305
+
306
+ <!-- the calendar will be inserted here -->
307
+ <div id="display" style="float: right; clear: both;"></div>
308
+ <div id="preview" style="font-size: 80%; text-align: center; padding: 2px"></div>
309
+
310
+ <p style="width: 12em"><small>
311
+ The example above uses the <code>setDisabledHandler()</code> member function
312
+ to setup a handler that would only enable days withing a range of 10 days,
313
+ forward or backward, from the current date.
314
+ </small></p>
315
+
316
+ </div>
317
+
318
+ </td>
319
+
320
+ </tr>
321
+ </table>
322
+
323
+ <hr /><address>
324
+ &copy; <a href="http://dynarch.com">dynarch.com</a> 2002-2003 <br />
325
+ Author: <a href="http://dynarch.com/mishoo/">Mihai
326
+ Bazon</a><br /> Distributed under the <a
327
+ href="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</a>.</address>
328
+
329
+ <p style="font-size: smaller">If you use this script on a public page it
330
+ would be nice if you would <a href="mailto:mishoo@infoiasi.ro">let me
331
+ know</a>.</p>
332
+
333
+ </body></html>
@@ -0,0 +1,39 @@
1
+ // ** I18N Afrikaans
2
+ Calendar._DN = new Array
3
+ ("Sondag",
4
+ "Maandag",
5
+ "Dinsdag",
6
+ "Woensdag",
7
+ "Donderdag",
8
+ "Vrydag",
9
+ "Saterdag",
10
+ "Sondag");
11
+ Calendar._MN = new Array
12
+ ("Januarie",
13
+ "Februarie",
14
+ "Maart",
15
+ "April",
16
+ "Mei",
17
+ "Junie",
18
+ "Julie",
19
+ "Augustus",
20
+ "September",
21
+ "Oktober",
22
+ "November",
23
+ "Desember");
24
+
25
+ // tooltips
26
+ Calendar._TT = {};
27
+ Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
28
+ Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
29
+ Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
30
+ Calendar._TT["GO_TODAY"] = "Gaan na vandag";
31
+ Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
32
+ Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
33
+ Calendar._TT["SEL_DATE"] = "Kies datum";
34
+ Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
35
+ Calendar._TT["PART_TODAY"] = " (vandag)";
36
+ Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
37
+ Calendar._TT["SUN_FIRST"] = "Display Sunday first";
38
+ Calendar._TT["CLOSE"] = "Close";
39
+ Calendar._TT["TODAY"] = "Today";
@@ -0,0 +1,45 @@
1
+ // ** I18N
2
+ Calendar._DN = new Array
3
+ ("Domingo",
4
+ "Segunda",
5
+ "Ter�a",
6
+ "Quarta",
7
+ "Quinta",
8
+ "Sexta",
9
+ "S�bado",
10
+ "Domingo");
11
+ Calendar._MN = new Array
12
+ ("Janeiro",
13
+ "Fevereiro",
14
+ "Mar�o",
15
+ "Abril",
16
+ "Maio",
17
+ "Junho",
18
+ "Julho",
19
+ "Agosto",
20
+ "Setembro",
21
+ "Outubro",
22
+ "Novembro",
23
+ "Dezembro");
24
+
25
+ // tooltips
26
+ Calendar._TT = {};
27
+ Calendar._TT["TOGGLE"] = "Altera primeiro dia da semana";
28
+ Calendar._TT["PREV_YEAR"] = "Ano anterior(hold for menu)";
29
+ Calendar._TT["PREV_MONTH"] = "M�s anterior (hold for menu)";
30
+ Calendar._TT["GO_TODAY"] = "Hoje";
31
+ Calendar._TT["NEXT_MONTH"] = "M�s seguinte (hold for menu)";
32
+ Calendar._TT["NEXT_YEAR"] = "ano seguinte (hold for menu)";
33
+ Calendar._TT["SEL_DATE"] = "Seleciona uma data";
34
+ Calendar._TT["DRAG_TO_MOVE"] = "Arrasta calend�rio";
35
+ Calendar._TT["PART_TODAY"] = " (hoje)";
36
+ Calendar._TT["MON_FIRST"] = "Inicia na segunda-feira";
37
+ Calendar._TT["SUN_FIRST"] = "Inicia no domingo";
38
+ Calendar._TT["CLOSE"] = "Fechar";
39
+ Calendar._TT["TODAY"] = "Hoje";
40
+
41
+ // date formats
42
+ Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
43
+ Calendar._TT["TT_DATE_FORMAT"] = "DD, dd de MM de y";
44
+
45
+ Calendar._TT["WK"] = "sem";
@@ -0,0 +1,45 @@
1
+ // ** I18N
2
+ Calendar._DN = new Array
3
+ ("Diumenge",
4
+ "Dilluns",
5
+ "Dimarts",
6
+ "Dimecres",
7
+ "Dijous",
8
+ "Divendres",
9
+ "Dissabte",
10
+ "Diumenge");
11
+ Calendar._MN = new Array
12
+ ("Gener",
13
+ "Febrer",
14
+ "Mar�",
15
+ "Abril",
16
+ "Maig",
17
+ "Juny",
18
+ "Juliol",
19
+ "Agost",
20
+ "Setembre",
21
+ "Octubre",
22
+ "Novembre",
23
+ "Desembre");
24
+
25
+ // tooltips
26
+ Calendar._TT = {};
27
+ Calendar._TT["TOGGLE"] = "Canvia el primer dia de la setmana";
28
+ Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per a menu)";
29
+ Calendar._TT["PREV_MONTH"] = "Mes anterior (mantenir per a menu)";
30
+ Calendar._TT["GO_TODAY"] = "Anar a avui";
31
+ Calendar._TT["NEXT_MONTH"] = "Mes seg�ent (mantenir per a menu)";
32
+ Calendar._TT["NEXT_YEAR"] = "Any seg�ent (mantenir per a menu)";
33
+ Calendar._TT["SEL_DATE"] = "Seleccionar data";
34
+ Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per a moure";
35
+ Calendar._TT["PART_TODAY"] = " (avui)";
36
+ Calendar._TT["MON_FIRST"] = "Mostrar dilluns primer";
37
+ Calendar._TT["SUN_FIRST"] = "Mostrar diumenge primer";
38
+ Calendar._TT["CLOSE"] = "Tancar";
39
+ Calendar._TT["TODAY"] = "Avui";
40
+
41
+ // date formats
42
+ Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
43
+ Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
44
+
45
+ Calendar._TT["WK"] = "sem";