calendariffic 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/LICENSE +21 -0
  2. data/README +76 -0
  3. data/Rakefile +175 -0
  4. data/assets/images/calendariffic/calendar.png +0 -0
  5. data/assets/images/calendariffic/date.png +0 -0
  6. data/assets/images/calendariffic/date_add.png +0 -0
  7. data/assets/images/calendariffic/date_delete.png +0 -0
  8. data/assets/images/calendariffic/date_edit.png +0 -0
  9. data/assets/images/calendariffic/date_error.png +0 -0
  10. data/assets/images/calendariffic/date_go.png +0 -0
  11. data/assets/images/calendariffic/date_link.png +0 -0
  12. data/assets/images/calendariffic/date_magnify.png +0 -0
  13. data/assets/images/calendariffic/date_next.png +0 -0
  14. data/assets/images/calendariffic/date_previous.png +0 -0
  15. data/assets/images/calendariffic/img.gif +0 -0
  16. data/assets/images/calendariffic/menuarrow.gif +0 -0
  17. data/assets/images/calendariffic/menuarrow2.gif +0 -0
  18. data/assets/images/calendariffic/skins/aqua/active-bg.gif +0 -0
  19. data/assets/images/calendariffic/skins/aqua/dark-bg.gif +0 -0
  20. data/assets/images/calendariffic/skins/aqua/hover-bg.gif +0 -0
  21. data/assets/images/calendariffic/skins/aqua/menuarrow.gif +0 -0
  22. data/assets/images/calendariffic/skins/aqua/normal-bg.gif +0 -0
  23. data/assets/images/calendariffic/skins/aqua/rowhover-bg.gif +0 -0
  24. data/assets/images/calendariffic/skins/aqua/status-bg.gif +0 -0
  25. data/assets/images/calendariffic/skins/aqua/theme.css +236 -0
  26. data/assets/images/calendariffic/skins/aqua/title-bg.gif +0 -0
  27. data/assets/images/calendariffic/skins/aqua/today-bg.gif +0 -0
  28. data/assets/javascripts/calendariffic/ChangeLog +761 -0
  29. data/assets/javascripts/calendariffic/README +33 -0
  30. data/assets/javascripts/calendariffic/calendar-setup.js +211 -0
  31. data/assets/javascripts/calendariffic/calendar-setup_stripped.js +21 -0
  32. data/assets/javascripts/calendariffic/calendar.js +1799 -0
  33. data/assets/javascripts/calendariffic/calendar_stripped.js +14 -0
  34. data/assets/javascripts/calendariffic/doc/html/field-button.jpg +0 -0
  35. data/assets/javascripts/calendariffic/doc/html/reference-Z-S.css +193 -0
  36. data/assets/javascripts/calendariffic/doc/html/reference.css +34 -0
  37. data/assets/javascripts/calendariffic/doc/html/reference.html +1738 -0
  38. data/assets/javascripts/calendariffic/doc/reference.pdf +0 -0
  39. data/assets/javascripts/calendariffic/lang/calendar-af.js +44 -0
  40. data/assets/javascripts/calendariffic/lang/calendar-al.js +106 -0
  41. data/assets/javascripts/calendariffic/lang/calendar-bg.js +129 -0
  42. data/assets/javascripts/calendariffic/lang/calendar-big5-utf8.js +128 -0
  43. data/assets/javascripts/calendariffic/lang/calendar-big5.js +128 -0
  44. data/assets/javascripts/calendariffic/lang/calendar-br.js +113 -0
  45. data/assets/javascripts/calendariffic/lang/calendar-ca.js +128 -0
  46. data/assets/javascripts/calendariffic/lang/calendar-cs-utf8.js +71 -0
  47. data/assets/javascripts/calendariffic/lang/calendar-cs-win.js +71 -0
  48. data/assets/javascripts/calendariffic/lang/calendar-da.js +128 -0
  49. data/assets/javascripts/calendariffic/lang/calendar-de.js +128 -0
  50. data/assets/javascripts/calendariffic/lang/calendar-du.js +50 -0
  51. data/assets/javascripts/calendariffic/lang/calendar-el.js +94 -0
  52. data/assets/javascripts/calendariffic/lang/calendar-en.js +127 -0
  53. data/assets/javascripts/calendariffic/lang/calendar-es.js +129 -0
  54. data/assets/javascripts/calendariffic/lang/calendar-fi.js +103 -0
  55. data/assets/javascripts/calendariffic/lang/calendar-fr.js +130 -0
  56. data/assets/javascripts/calendariffic/lang/calendar-he-utf8.js +128 -0
  57. data/assets/javascripts/calendariffic/lang/calendar-hr-utf8.js +54 -0
  58. data/assets/javascripts/calendariffic/lang/calendar-hr.js +0 -0
  59. data/assets/javascripts/calendariffic/lang/calendar-hu.js +129 -0
  60. data/assets/javascripts/calendariffic/lang/calendar-it.js +129 -0
  61. data/assets/javascripts/calendariffic/lang/calendar-jp.js +50 -0
  62. data/assets/javascripts/calendariffic/lang/calendar-ko-utf8.js +125 -0
  63. data/assets/javascripts/calendariffic/lang/calendar-ko.js +125 -0
  64. data/assets/javascripts/calendariffic/lang/calendar-lt-utf8.js +119 -0
  65. data/assets/javascripts/calendariffic/lang/calendar-lt.js +119 -0
  66. data/assets/javascripts/calendariffic/lang/calendar-lv.js +128 -0
  67. data/assets/javascripts/calendariffic/lang/calendar-nl.js +79 -0
  68. data/assets/javascripts/calendariffic/lang/calendar-no.js +119 -0
  69. data/assets/javascripts/calendariffic/lang/calendar-pl-utf8.js +100 -0
  70. data/assets/javascripts/calendariffic/lang/calendar-pl.js +61 -0
  71. data/assets/javascripts/calendariffic/lang/calendar-pt.js +128 -0
  72. data/assets/javascripts/calendariffic/lang/calendar-ro.js +71 -0
  73. data/assets/javascripts/calendariffic/lang/calendar-ru.js +128 -0
  74. data/assets/javascripts/calendariffic/lang/calendar-ru_win_.js +128 -0
  75. data/assets/javascripts/calendariffic/lang/calendar-si.js +101 -0
  76. data/assets/javascripts/calendariffic/lang/calendar-sk.js +104 -0
  77. data/assets/javascripts/calendariffic/lang/calendar-sp.js +115 -0
  78. data/assets/javascripts/calendariffic/lang/calendar-sv.js +98 -0
  79. data/assets/javascripts/calendariffic/lang/calendar-tr.js +63 -0
  80. data/assets/javascripts/calendariffic/lang/calendar-zh.js +124 -0
  81. data/assets/javascripts/calendariffic/lang/cn_utf8.js +128 -0
  82. data/assets/stylesheets/calendariffic/calendar-blue.css +232 -0
  83. data/assets/stylesheets/calendariffic/calendar-blue2.css +236 -0
  84. data/assets/stylesheets/calendariffic/calendar-brown.css +225 -0
  85. data/assets/stylesheets/calendariffic/calendar-green.css +229 -0
  86. data/assets/stylesheets/calendariffic/calendar-system.css +251 -0
  87. data/assets/stylesheets/calendariffic/calendar-tas.css +239 -0
  88. data/assets/stylesheets/calendariffic/calendar-win2k-1.css +271 -0
  89. data/assets/stylesheets/calendariffic/calendar-win2k-2.css +271 -0
  90. data/assets/stylesheets/calendariffic/calendar-win2k-cold-1.css +265 -0
  91. data/assets/stylesheets/calendariffic/calendar-win2k-cold-2.css +271 -0
  92. data/calendariffic.gemspec +167 -0
  93. data/doc/created.rid +1 -0
  94. data/doc/files/README.html +263 -0
  95. data/doc/fr_class_index.html +27 -0
  96. data/doc/fr_file_index.html +28 -0
  97. data/doc/fr_method_index.html +27 -0
  98. data/doc/index.html +24 -0
  99. data/doc/rdoc-style.css +208 -0
  100. data/init.rb +2 -0
  101. data/install.rb +6 -0
  102. data/lib/calendariffic.rb +73 -0
  103. data/rails/init.rb +1 -0
  104. data/tasks/calendariffic_tasks.rake +4 -0
  105. data/test/calendariffic_test.rb +8 -0
  106. data/uninstall.rb +1 -0
  107. metadata +181 -0
@@ -0,0 +1,33 @@
1
+ The DHTML Calendar
2
+ -------------------
3
+
4
+ Author: Mihai Bazon, <mihai_bazon@yahoo.com>
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,211 @@
1
+ /* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
2
+ * ---------------------------------------------------------------------------
3
+ *
4
+ * The DHTML Calendar
5
+ *
6
+ * Details and latest version at:
7
+ * http://dynarch.com/mishoo/calendar.epl
8
+ *
9
+ * This script is distributed under the GNU Lesser General Public License.
10
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
11
+ *
12
+ * This file defines helper functions for setting up the calendar. They are
13
+ * intended to help non-programmers get a working calendar on their site
14
+ * quickly. This script should not be seen as part of the calendar. It just
15
+ * shows you what one can do with the calendar, while in the same time
16
+ * providing a quick and simple method for setting it up. If you need
17
+ * exhaustive customization of the calendar creation process feel free to
18
+ * modify this code to suit your needs (this is recommended and much better
19
+ * than modifying calendar.js itself).
20
+ */
21
+
22
+ // $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $
23
+
24
+ /**
25
+ * This function "patches" an input field (or other element) to use a calendar
26
+ * widget for date selection.
27
+ *
28
+ * The "params" is a single object that can have the following properties:
29
+ *
30
+ * prop. name | description
31
+ * -------------------------------------------------------------------------------------------------
32
+ * inputField | the ID of an input field to store the date
33
+ * displayArea | the ID of a DIV or other element to show the date
34
+ * button | ID of a button or other element that will trigger the calendar
35
+ * eventName | event that will trigger the calendar, without the "on" prefix (default: "click")
36
+ * ifFormat | date format that will be stored in the input field
37
+ * daFormat | the date format that will be used to display the date in displayArea
38
+ * singleClick | (true/false) wether the calendar is in single click mode or not (default: true)
39
+ * firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc.
40
+ * align | alignment (default: "Br"); if you don't know what's this see the calendar documentation
41
+ * range | array with 2 elements. Default: [1900, 2999] -- the range of years available
42
+ * weekNumbers | (true/false) if it's true (default) the calendar will display week numbers
43
+ * flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
44
+ * flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
45
+ * disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
46
+ * onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay)
47
+ * onClose | function that gets called when the calendar is closed. [default]
48
+ * onUpdate | function that gets called after the date is updated in the input field. Receives a reference to the calendar.
49
+ * date | the date that the calendar will be initially displayed to
50
+ * showsTime | default: false; if true the calendar will include a time selector
51
+ * timeFormat | the time format; can be "12" or "24", default is "12"
52
+ * electric | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
53
+ * step | configures the step of the years in drop-down boxes; default: 2
54
+ * position | configures the calendar absolute position; default: null
55
+ * cache | if "true" (but default: "false") it will reuse the same calendar object, where possible
56
+ * showOthers | if "true" (but default: "false") it will show days from other months too
57
+ *
58
+ * None of them is required, they all have default values. However, if you
59
+ * pass none of "inputField", "displayArea" or "button" you'll get a warning
60
+ * saying "nothing to setup".
61
+ */
62
+
63
+ function set_cal(input_field_name, image_id, dformat) {
64
+ Calendar.setup(
65
+ {
66
+ inputField : input_field_name, // ID of the input field
67
+ ifFormat : dformat, // the date format
68
+ button : image_id, // ID of the button
69
+ weekNumbers : false
70
+ });
71
+ }
72
+
73
+ Calendar.setup = function (params) {
74
+ function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
75
+
76
+ param_default("inputField", null);
77
+ param_default("displayArea", null);
78
+ param_default("button", null);
79
+ param_default("eventName", "click");
80
+ param_default("ifFormat", "%Y/%m/%d");
81
+ param_default("daFormat", "%Y/%m/%d");
82
+ param_default("singleClick", true);
83
+ param_default("disableFunc", null);
84
+ param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
85
+ param_default("dateText", null);
86
+ param_default("firstDay", null);
87
+ param_default("align", "Br");
88
+ param_default("range", [1900, 2999]);
89
+ param_default("weekNumbers", true);
90
+ param_default("flat", null);
91
+ param_default("flatCallback", null);
92
+ param_default("onSelect", null);
93
+ param_default("onClose", null);
94
+ param_default("onUpdate", null);
95
+ param_default("date", null);
96
+ param_default("showsTime", false);
97
+ param_default("timeFormat", "24");
98
+ param_default("electric", true);
99
+ param_default("step", 2);
100
+ param_default("position", null);
101
+ param_default("cache", false);
102
+ param_default("showOthers", false);
103
+ param_default("multiple", null);
104
+
105
+ var tmp = ["inputField", "displayArea", "button"];
106
+ for (var i in tmp) {
107
+ if (typeof params[tmp[i]] == "string") {
108
+ params[tmp[i]] = document.getElementById(params[tmp[i]]);
109
+ }
110
+ }
111
+ if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
112
+ alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");
113
+ return false;
114
+ }
115
+
116
+ function onSelect(cal) {
117
+ var p = cal.params;
118
+ var update = (cal.dateClicked || p.electric);
119
+ if (update && p.inputField) {
120
+ p.inputField.value = cal.date.print(p.ifFormat);
121
+ if (typeof p.inputField.onchange == "function")
122
+ p.inputField.onchange();
123
+ }
124
+ if (update && p.displayArea)
125
+ p.displayArea.innerHTML = cal.date.print(p.daFormat);
126
+ if (update && typeof p.onUpdate == "function")
127
+ p.onUpdate(cal);
128
+ if (update && p.flat) {
129
+ if (typeof p.flatCallback == "function")
130
+ p.flatCallback(cal);
131
+ }
132
+ if (update && p.singleClick && cal.dateClicked)
133
+ cal.callCloseHandler();
134
+ };
135
+
136
+ if (params.flat != null) {
137
+ if (typeof params.flat == "string")
138
+ params.flat = document.getElementById(params.flat);
139
+ if (!params.flat) {
140
+ alert("Calendar.setup:\n Flat specified but can't find parent.");
141
+ return false;
142
+ }
143
+ var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
144
+ cal.showsOtherMonths = params.showOthers;
145
+ cal.showsTime = params.showsTime;
146
+ cal.time24 = (params.timeFormat == "24");
147
+ cal.params = params;
148
+ cal.weekNumbers = params.weekNumbers;
149
+ cal.setRange(params.range[0], params.range[1]);
150
+ cal.setDateStatusHandler(params.dateStatusFunc);
151
+ cal.getDateText = params.dateText;
152
+ if (params.ifFormat) {
153
+ cal.setDateFormat(params.ifFormat);
154
+ }
155
+ if (params.inputField && typeof params.inputField.value == "string") {
156
+ cal.parseDate(params.inputField.value);
157
+ }
158
+ cal.create(params.flat);
159
+ cal.show();
160
+ return false;
161
+ }
162
+
163
+ var triggerEl = params.button || params.displayArea || params.inputField;
164
+ triggerEl["on" + params.eventName] = function() {
165
+ var dateEl = params.inputField || params.displayArea;
166
+ var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
167
+ var mustCreate = false;
168
+ var cal = window.calendar;
169
+ if (dateEl)
170
+ params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
171
+ if (!(cal && params.cache)) {
172
+ window.calendar = cal = new Calendar(params.firstDay,
173
+ params.date,
174
+ params.onSelect || onSelect,
175
+ params.onClose || function(cal) { cal.hide(); });
176
+ cal.showsTime = params.showsTime;
177
+ cal.time24 = (params.timeFormat == "24");
178
+ cal.weekNumbers = params.weekNumbers;
179
+ mustCreate = true;
180
+ } else {
181
+ if (params.date)
182
+ cal.setDate(params.date);
183
+ cal.hide();
184
+ }
185
+ if (params.multiple) {
186
+ cal.multiple = {};
187
+ for (var i = params.multiple.length; --i >= 0;) {
188
+ var d = params.multiple[i];
189
+ var ds = d.print("%Y%m%d");
190
+ cal.multiple[ds] = d;
191
+ }
192
+ }
193
+ cal.showsOtherMonths = params.showOthers;
194
+ cal.yearStep = params.step;
195
+ cal.setRange(params.range[0], params.range[1]);
196
+ cal.params = params;
197
+ cal.setDateStatusHandler(params.dateStatusFunc);
198
+ cal.getDateText = params.dateText;
199
+ cal.setDateFormat(dateFmt);
200
+ if (mustCreate)
201
+ cal.create();
202
+ cal.refresh();
203
+ if (!params.position)
204
+ cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
205
+ else
206
+ cal.showAt(params.position[0], params.position[1]);
207
+ return false;
208
+ };
209
+
210
+ return cal;
211
+ };
@@ -0,0 +1,21 @@
1
+ /* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
2
+ * ---------------------------------------------------------------------------
3
+ *
4
+ * The DHTML Calendar
5
+ *
6
+ * Details and latest version at:
7
+ * http://dynarch.com/mishoo/calendar.epl
8
+ *
9
+ * This script is distributed under the GNU Lesser General Public License.
10
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
11
+ *
12
+ * This file defines helper functions for setting up the calendar. They are
13
+ * intended to help non-programmers get a working calendar on their site
14
+ * quickly. This script should not be seen as part of the calendar. It just
15
+ * shows you what one can do with the calendar, while in the same time
16
+ * providing a quick and simple method for setting it up. If you need
17
+ * exhaustive customization of the calendar creation process feel free to
18
+ * modify this code to suit your needs (this is recommended and much better
19
+ * than modifying calendar.js itself).
20
+ */
21
+ Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;};