damagecontrol 0.5.0 → 0.5.0.1391

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. data/README +67 -11
  2. data/Rakefile +15 -6
  3. data/app/controllers/admin_controller.rb +0 -3
  4. data/app/controllers/application.rb +42 -163
  5. data/app/controllers/build_controller.rb +33 -0
  6. data/app/controllers/files_controller.rb +1 -1
  7. data/app/controllers/project_controller.rb +23 -65
  8. data/app/controllers/rails_ext.rb +247 -0
  9. data/app/controllers/rscm_ext.rb +52 -0
  10. data/app/helpers/build_helper.rb +2 -0
  11. data/app/views/build/email.rhtml +18 -0
  12. data/app/views/build/status.rhtml +20 -0
  13. data/app/views/build/tests.rhtml +2 -0
  14. data/app/views/layouts/{rscm.rhtml → default.rhtml} +10 -4
  15. data/app/views/project/_changesets_list.rhtml +2 -2
  16. data/app/views/project/_cvs.rhtml +4 -5
  17. data/app/views/project/_project.rhtml +9 -9
  18. data/app/views/project/_select_pane.rhtml +26 -0
  19. data/app/views/project/_tab_pane.rhtml +23 -0
  20. data/app/views/project/changeset.rhtml +35 -0
  21. data/app/views/project/view.rhtml +18 -32
  22. data/app/views/setup/welcome.rhtml +118 -0
  23. data/config/database.yml +20 -20
  24. data/config/environment.rb +66 -60
  25. data/config/environments/development.rb +3 -2
  26. data/config/environments/production.rb +3 -2
  27. data/config/environments/test.rb +3 -2
  28. data/config/routes.rb +15 -0
  29. data/lib/damagecontrol/app.rb +11 -40
  30. data/lib/damagecontrol/build.rb +50 -8
  31. data/lib/damagecontrol/directories.rb +7 -6
  32. data/lib/damagecontrol/poller.rb +11 -20
  33. data/lib/damagecontrol/project.rb +83 -16
  34. data/lib/damagecontrol/publisher/ambient_orb.rb +16 -0
  35. data/lib/damagecontrol/publisher/archive.rb +16 -0
  36. data/lib/damagecontrol/publisher/base.rb +25 -0
  37. data/lib/damagecontrol/publisher/build_duration.rb +16 -0
  38. data/lib/damagecontrol/publisher/email.rb +59 -0
  39. data/lib/damagecontrol/publisher/execute.rb +49 -0
  40. data/lib/damagecontrol/publisher/ftp.rb +16 -0
  41. data/lib/damagecontrol/publisher/growl.rb +44 -0
  42. data/lib/damagecontrol/publisher/irc.rb +31 -0
  43. data/lib/damagecontrol/publisher/jabber.rb +68 -0
  44. data/lib/damagecontrol/publisher/scp.rb +16 -0
  45. data/lib/damagecontrol/publisher/x10cm11a.rb +17 -0
  46. data/lib/damagecontrol/publisher/x10cm17a.rb +17 -0
  47. data/lib/damagecontrol/publisher/yahoo.rb +16 -0
  48. data/lib/damagecontrol/standard_persister.rb +2 -2
  49. data/lib/damagecontrol/tracker.rb +48 -6
  50. data/lib/damagecontrol/visitor/rss_writer.rb +1 -1
  51. data/lib/damagecontrol/visitor/yaml_persister.rb +10 -1
  52. data/public/404.html +5 -5
  53. data/public/500.html +5 -5
  54. data/public/dispatch.cgi +2 -2
  55. data/public/dispatch.fcgi +1 -1
  56. data/public/dispatch.rb +2 -2
  57. data/public/images/growlicon.png +0 -0
  58. data/public/images/megaphone.png +0 -0
  59. data/public/images/monotone-logo.png +0 -0
  60. data/public/images/publisher/ambient_orb.png +0 -0
  61. data/public/images/publisher/build_duration.png +0 -0
  62. data/public/images/publisher/email.png +0 -0
  63. data/public/images/publisher/execute.png +0 -0
  64. data/public/images/publisher/growl.png +0 -0
  65. data/public/images/publisher/irc.png +0 -0
  66. data/public/images/publisher/jabber.png +0 -0
  67. data/public/images/publisher/x10cm11a.png +0 -0
  68. data/public/images/publisher/x10cm17a.png +0 -0
  69. data/public/images/publisher/yahoo.png +0 -0
  70. data/public/index.html +70 -1
  71. data/public/javascripts/dateFormat.js +283 -0
  72. data/public/javascripts/jscalendar/ChangeLog +500 -0
  73. data/public/javascripts/jscalendar/README +33 -0
  74. data/public/javascripts/jscalendar/bugtest-hidden-selects.html +108 -0
  75. data/public/javascripts/jscalendar/calendar-blue.css +231 -0
  76. data/public/javascripts/jscalendar/calendar-blue2.css +235 -0
  77. data/public/javascripts/jscalendar/calendar-brown.css +224 -0
  78. data/public/javascripts/jscalendar/calendar-green.css +228 -0
  79. data/public/javascripts/jscalendar/calendar-setup.js +181 -0
  80. data/public/javascripts/jscalendar/calendar-setup_stripped.js +21 -0
  81. data/public/javascripts/jscalendar/calendar-system.css +250 -0
  82. data/public/javascripts/jscalendar/calendar-tas.css +238 -0
  83. data/public/javascripts/jscalendar/calendar-win2k-1.css +270 -0
  84. data/public/javascripts/jscalendar/calendar-win2k-2.css +270 -0
  85. data/public/javascripts/jscalendar/calendar-win2k-cold-1.css +264 -0
  86. data/public/javascripts/jscalendar/calendar-win2k-cold-2.css +270 -0
  87. data/public/javascripts/jscalendar/calendar.js +1715 -0
  88. data/public/javascripts/jscalendar/calendar.php +119 -0
  89. data/public/javascripts/jscalendar/calendar_stripped.js +12 -0
  90. data/public/javascripts/jscalendar/doc/html/reference-Z-S.css +0 -0
  91. data/public/javascripts/jscalendar/doc/html/reference.css +34 -0
  92. data/public/javascripts/jscalendar/doc/html/reference.html +1316 -0
  93. data/public/javascripts/jscalendar/doc/reference.pdf +0 -0
  94. data/public/javascripts/jscalendar/img.gif +0 -0
  95. data/public/javascripts/jscalendar/index.html +333 -0
  96. data/public/javascripts/jscalendar/lang/calendar-af.js +39 -0
  97. data/public/javascripts/jscalendar/lang/calendar-br.js +45 -0
  98. data/public/javascripts/jscalendar/lang/calendar-ca.js +45 -0
  99. data/public/javascripts/jscalendar/lang/calendar-cs-win.js +34 -0
  100. data/public/javascripts/jscalendar/lang/calendar-da.js +63 -0
  101. data/public/javascripts/jscalendar/lang/calendar-de.js +100 -0
  102. data/public/javascripts/jscalendar/lang/calendar-du.js +45 -0
  103. data/public/javascripts/jscalendar/lang/calendar-el.js +89 -0
  104. data/public/javascripts/jscalendar/lang/calendar-en.js +123 -0
  105. data/public/javascripts/jscalendar/lang/calendar-es.js +114 -0
  106. data/public/javascripts/jscalendar/lang/calendar-fi.js +98 -0
  107. data/public/javascripts/jscalendar/lang/calendar-fr.js +86 -0
  108. data/public/javascripts/jscalendar/lang/calendar-hr-utf8.js +49 -0
  109. data/public/javascripts/jscalendar/lang/calendar-hr.js +0 -0
  110. data/public/javascripts/jscalendar/lang/calendar-hu.js +45 -0
  111. data/public/javascripts/jscalendar/lang/calendar-it.js +79 -0
  112. data/public/javascripts/jscalendar/lang/calendar-jp.js +45 -0
  113. data/public/javascripts/jscalendar/lang/calendar-ko-utf8.js +120 -0
  114. data/public/javascripts/jscalendar/lang/calendar-ko.js +120 -0
  115. data/public/javascripts/jscalendar/lang/calendar-lt-utf8.js +114 -0
  116. data/public/javascripts/jscalendar/lang/calendar-lt.js +114 -0
  117. data/public/javascripts/jscalendar/lang/calendar-nl.js +45 -0
  118. data/public/javascripts/jscalendar/lang/calendar-no.js +45 -0
  119. data/public/javascripts/jscalendar/lang/calendar-pl-utf8.js +93 -0
  120. data/public/javascripts/jscalendar/lang/calendar-pl.js +56 -0
  121. data/public/javascripts/jscalendar/lang/calendar-pt.js +45 -0
  122. data/public/javascripts/jscalendar/lang/calendar-ro.js +66 -0
  123. data/public/javascripts/jscalendar/lang/calendar-ru.js +45 -0
  124. data/public/javascripts/jscalendar/lang/calendar-si.js +94 -0
  125. data/public/javascripts/jscalendar/lang/calendar-sk.js +99 -0
  126. data/public/javascripts/jscalendar/lang/calendar-sp.js +63 -0
  127. data/public/javascripts/jscalendar/lang/calendar-sv.js +93 -0
  128. data/public/javascripts/jscalendar/lang/calendar-tr.js +58 -0
  129. data/public/javascripts/jscalendar/lang/calendar-zh.js +45 -0
  130. data/public/javascripts/jscalendar/menuarrow.gif +0 -0
  131. data/public/javascripts/jscalendar/menuarrow2.gif +0 -0
  132. data/public/javascripts/jscalendar/release-notes.html +334 -0
  133. data/public/javascripts/jscalendar/simple-1.html +244 -0
  134. data/public/javascripts/jscalendar/simple-2.html +108 -0
  135. data/public/javascripts/jscalendar/simple-3.html +130 -0
  136. data/public/javascripts/jscalendar/test-position.html +40 -0
  137. data/public/javascripts/jscalendar/test.php +116 -0
  138. data/public/javascripts/toggle_div.js +18 -0
  139. data/public/stylesheets/niceones.txt +1 -0
  140. data/public/stylesheets/style.css +8 -1
  141. data/script/breakpointer +4 -5
  142. data/script/console +19 -27
  143. data/script/console_sandbox.rb +7 -0
  144. data/script/destroy +5 -0
  145. data/script/generate +3 -68
  146. data/script/server +6 -16
  147. data/test/damagecontrol/build_test.rb +8 -8
  148. data/test/damagecontrol/poller_test.rb +10 -18
  149. data/test/damagecontrol/project_test.rb +49 -13
  150. data/test/damagecontrol/publisher/base_test.rb +26 -0
  151. data/test/damagecontrol/publisher/build/email.rhtml +0 -0
  152. data/test/damagecontrol/publisher/email_test.rb +26 -0
  153. data/test/damagecontrol/publisher/fixture.rb +34 -0
  154. data/test/damagecontrol/publisher/growl_test.rb +15 -0
  155. data/test/damagecontrol/publisher/jabber_test.rb +15 -0
  156. data/test/damagecontrol/scm_web_test.rb +1 -1
  157. data/test/damagecontrol/visitor/changesets.rss +1 -1
  158. data/test/damagecontrol/visitor/diff_persister_test.rb +4 -4
  159. data/test/functional/build_controller_test.rb +17 -0
  160. data/test/test_helper.rb +13 -13
  161. metadata +185 -24
  162. data/app/views/project/_bugzilla.rhtml +0 -13
  163. data/app/views/project/_jira.rhtml +0 -19
  164. data/app/views/project/_mooky.rhtml +0 -23
  165. data/app/views/project/_rubyforge.rhtml +0 -19
  166. data/app/views/project/_scarab.rhtml +0 -19
  167. data/app/views/project/_scms.rhtml +0 -15
  168. data/app/views/project/_sourceforge.rhtml +0 -19
  169. data/app/views/project/_starteam.rhtml +0 -43
  170. data/app/views/project/_svn.rhtml +0 -22
  171. data/app/views/project/_trac.rhtml +0 -13
  172. data/app/views/project/_trackers.rhtml +0 -18
  173. data/app/views/project/changesets.rhtml +0 -31
@@ -0,0 +1,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";