calendariffic 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +21 -0
- data/README +76 -0
- data/Rakefile +175 -0
- data/assets/images/calendariffic/calendar.png +0 -0
- data/assets/images/calendariffic/date.png +0 -0
- data/assets/images/calendariffic/date_add.png +0 -0
- data/assets/images/calendariffic/date_delete.png +0 -0
- data/assets/images/calendariffic/date_edit.png +0 -0
- data/assets/images/calendariffic/date_error.png +0 -0
- data/assets/images/calendariffic/date_go.png +0 -0
- data/assets/images/calendariffic/date_link.png +0 -0
- data/assets/images/calendariffic/date_magnify.png +0 -0
- data/assets/images/calendariffic/date_next.png +0 -0
- data/assets/images/calendariffic/date_previous.png +0 -0
- data/assets/images/calendariffic/img.gif +0 -0
- data/assets/images/calendariffic/menuarrow.gif +0 -0
- data/assets/images/calendariffic/menuarrow2.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/active-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/dark-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/hover-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/menuarrow.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/normal-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/rowhover-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/status-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/theme.css +236 -0
- data/assets/images/calendariffic/skins/aqua/title-bg.gif +0 -0
- data/assets/images/calendariffic/skins/aqua/today-bg.gif +0 -0
- data/assets/javascripts/calendariffic/ChangeLog +761 -0
- data/assets/javascripts/calendariffic/README +33 -0
- data/assets/javascripts/calendariffic/calendar-setup.js +211 -0
- data/assets/javascripts/calendariffic/calendar-setup_stripped.js +21 -0
- data/assets/javascripts/calendariffic/calendar.js +1799 -0
- data/assets/javascripts/calendariffic/calendar_stripped.js +14 -0
- data/assets/javascripts/calendariffic/doc/html/field-button.jpg +0 -0
- data/assets/javascripts/calendariffic/doc/html/reference-Z-S.css +193 -0
- data/assets/javascripts/calendariffic/doc/html/reference.css +34 -0
- data/assets/javascripts/calendariffic/doc/html/reference.html +1738 -0
- data/assets/javascripts/calendariffic/doc/reference.pdf +0 -0
- data/assets/javascripts/calendariffic/lang/calendar-af.js +44 -0
- data/assets/javascripts/calendariffic/lang/calendar-al.js +106 -0
- data/assets/javascripts/calendariffic/lang/calendar-bg.js +129 -0
- data/assets/javascripts/calendariffic/lang/calendar-big5-utf8.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-big5.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-br.js +113 -0
- data/assets/javascripts/calendariffic/lang/calendar-ca.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-cs-utf8.js +71 -0
- data/assets/javascripts/calendariffic/lang/calendar-cs-win.js +71 -0
- data/assets/javascripts/calendariffic/lang/calendar-da.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-de.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-du.js +50 -0
- data/assets/javascripts/calendariffic/lang/calendar-el.js +94 -0
- data/assets/javascripts/calendariffic/lang/calendar-en.js +127 -0
- data/assets/javascripts/calendariffic/lang/calendar-es.js +129 -0
- data/assets/javascripts/calendariffic/lang/calendar-fi.js +103 -0
- data/assets/javascripts/calendariffic/lang/calendar-fr.js +130 -0
- data/assets/javascripts/calendariffic/lang/calendar-he-utf8.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-hr-utf8.js +54 -0
- data/assets/javascripts/calendariffic/lang/calendar-hr.js +0 -0
- data/assets/javascripts/calendariffic/lang/calendar-hu.js +129 -0
- data/assets/javascripts/calendariffic/lang/calendar-it.js +129 -0
- data/assets/javascripts/calendariffic/lang/calendar-jp.js +50 -0
- data/assets/javascripts/calendariffic/lang/calendar-ko-utf8.js +125 -0
- data/assets/javascripts/calendariffic/lang/calendar-ko.js +125 -0
- data/assets/javascripts/calendariffic/lang/calendar-lt-utf8.js +119 -0
- data/assets/javascripts/calendariffic/lang/calendar-lt.js +119 -0
- data/assets/javascripts/calendariffic/lang/calendar-lv.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-nl.js +79 -0
- data/assets/javascripts/calendariffic/lang/calendar-no.js +119 -0
- data/assets/javascripts/calendariffic/lang/calendar-pl-utf8.js +100 -0
- data/assets/javascripts/calendariffic/lang/calendar-pl.js +61 -0
- data/assets/javascripts/calendariffic/lang/calendar-pt.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-ro.js +71 -0
- data/assets/javascripts/calendariffic/lang/calendar-ru.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-ru_win_.js +128 -0
- data/assets/javascripts/calendariffic/lang/calendar-si.js +101 -0
- data/assets/javascripts/calendariffic/lang/calendar-sk.js +104 -0
- data/assets/javascripts/calendariffic/lang/calendar-sp.js +115 -0
- data/assets/javascripts/calendariffic/lang/calendar-sv.js +98 -0
- data/assets/javascripts/calendariffic/lang/calendar-tr.js +63 -0
- data/assets/javascripts/calendariffic/lang/calendar-zh.js +124 -0
- data/assets/javascripts/calendariffic/lang/cn_utf8.js +128 -0
- data/assets/stylesheets/calendariffic/calendar-blue.css +232 -0
- data/assets/stylesheets/calendariffic/calendar-blue2.css +236 -0
- data/assets/stylesheets/calendariffic/calendar-brown.css +225 -0
- data/assets/stylesheets/calendariffic/calendar-green.css +229 -0
- data/assets/stylesheets/calendariffic/calendar-system.css +251 -0
- data/assets/stylesheets/calendariffic/calendar-tas.css +239 -0
- data/assets/stylesheets/calendariffic/calendar-win2k-1.css +271 -0
- data/assets/stylesheets/calendariffic/calendar-win2k-2.css +271 -0
- data/assets/stylesheets/calendariffic/calendar-win2k-cold-1.css +265 -0
- data/assets/stylesheets/calendariffic/calendar-win2k-cold-2.css +271 -0
- data/calendariffic.gemspec +167 -0
- data/doc/created.rid +1 -0
- data/doc/files/README.html +263 -0
- data/doc/fr_class_index.html +27 -0
- data/doc/fr_file_index.html +28 -0
- data/doc/fr_method_index.html +27 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/init.rb +2 -0
- data/install.rb +6 -0
- data/lib/calendariffic.rb +73 -0
- data/rails/init.rb +1 -0
- data/tasks/calendariffic_tasks.rake +4 -0
- data/test/calendariffic_test.rb +8 -0
- data/uninstall.rb +1 -0
- metadata +181 -0
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) Tom Preston-Werner
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
== Calendariffic.
|
2
|
+
May 2007 by Paul N. Danese. email bugs &c. to: pdanese@yahoo.com
|
3
|
+
=============
|
4
|
+
|
5
|
+
=== WHAT THIS PLUGIN DOES:
|
6
|
+
Allows the user to create a DHTML pop-up calendar and an associated text-box that
|
7
|
+
displays the selected date using 1 Rails function from within a .rhtml file.
|
8
|
+
|
9
|
+
=== INSPIRATION:
|
10
|
+
Like all the other good calendar plugins, Calendariffic relies on the heavy-lifting performed by the Dynarch DHTML calendar
|
11
|
+
(http://www.Dynarch.com/projects/calendar/).
|
12
|
+
|
13
|
+
=== LICENSE:
|
14
|
+
As Calendariffic is simply a rails extension of the Dynarch calendar, it is released under the same license
|
15
|
+
as that of the Dynarch calendar (i.e. the GNU General Lesser Public License, http://www.gnu.org/licenses/lgpl.html).
|
16
|
+
|
17
|
+
=== BACKGROUND:
|
18
|
+
The Rails community needs another Ajax Calendar plugin like I need another hole in my head.
|
19
|
+
Fortunately for all of us, my Colt .45 single-action Peacemaker just arrived from Ebay, complete with bullets.
|
20
|
+
Okay okay, there were a handful of questionable reasons for building this plugin.
|
21
|
+
1. To see if I could do it.
|
22
|
+
2. I tried the Datetime Toolbocks plugin, which is beautiful and slick and does everything but perform surgery and it worked like a champ--unless I wanted to modify its look and feel, in which case I needed a PhD in Ajaxology, which I don't have.
|
23
|
+
3. I tried another Calendar plugin which (in theory) possessed a configurable look and feel, but the documentation was so lacking that I (again) had to plumb the depths of someone else's ruby, rails and javascript and, well, I'm just a little too ADHD for that.
|
24
|
+
|
25
|
+
=== PLEDGE:
|
26
|
+
So Here's my Plugin Pledge.
|
27
|
+
|
28
|
+
* Calendariffic won't do as much as Datetime Toolbocks (e.g. you can't type in 'tomorrow' and have it guess the correct date), however it will do the basics just fine (i.e. pick a date from a calendar) and it'll still be easier to alter w/ respect to look and feel.
|
29
|
+
* The documentation won't [completely] suck.
|
30
|
+
|
31
|
+
=== HOW TO INSTALL THE PLUGIN:
|
32
|
+
1. YOU MUST HAVE A FUNCTIONAL COPY OF RAILS INSTALLED ON YOUR SYSTEM
|
33
|
+
2. YOU MUST HAVE A FUNCTIONAL RAILS PROJECT INSTALLED ON YOUR SYSTEM (let's say the project is called *myrailsapplication* and is located in the linux directory <b>/myrailsapplication/</b>.
|
34
|
+
3. Navigate to the <b>/myrailsapplication/</b> directory and type *script*/*plugin* *install* *http*://*opensvn*.*csie*.*org*/*calendariffic*/*calendariffic*/
|
35
|
+
4. Press the *enter* *key* and wait for all files to be downloaded into your rails application (files will be located in <b>/myrailsapplication/vendor/plugins/calendariffic/</b>)
|
36
|
+
5. You're done.
|
37
|
+
|
38
|
+
=== HOW TO USE THE PLUGIN:
|
39
|
+
1. Identify the .rhtml file that will display the Calendariffic calendar. Let's say this file is called *myrailsview*.*rhtml*.
|
40
|
+
|
41
|
+
2. You then need to include links to 3 Dynarch calendar javascript files which the plugin has installed in your <b>PUBLIC/javascripts/calendariffic directory</b>. These 3 files are called <b>'calendar.js', 'calendar-setup.js',</b> and <b>'calendar-en.js'</b>. The easiest way to do this is to use the rails function *javascript_include_tag*.
|
42
|
+
e.g. your myrailsview.rhtml file might have this in the <head> section:
|
43
|
+
<%= javascript_include_tag 'calendariffic/calendar.js', 'calendariffic/calendar-setup.js', 'calendariffic/lang/calendar-en.js' %>
|
44
|
+
|
45
|
+
Some things to note:
|
46
|
+
The Calendariffic file, calendar-setup.js, is a slightly modified version of Dynarch's calendar-setup.js file.
|
47
|
+
Specifically, it has 1 more function (called set_cal()) that is used to facilitate calendar creation.
|
48
|
+
So don't try replacing Calendariffic's calendar-setup.js file with the equivalently-named Dynarch file.
|
49
|
+
|
50
|
+
The calendar-en.js file is located in a subdirectory named 'lang'.
|
51
|
+
The calendar-en.js file sets the language associated with the calendar to ENGLISH.
|
52
|
+
There are MANY different language-specific javascript files located in the lang directory, so you can choose whichever is suitable for you.
|
53
|
+
|
54
|
+
You MUST include the relative path to each of the 3 javascript files in your javascript_include_tag function
|
55
|
+
(i.e. don't just write
|
56
|
+
javascript_include_tag 'calendar.js'
|
57
|
+
instead, write
|
58
|
+
javascript_include_tag 'calendariffic/calendar.js'
|
59
|
+
3. To specify the look-and-feel of your calendar pop-up, you now need to include a link to your favorite Dynarch calendar css file.
|
60
|
+
|
61
|
+
There are 10 different looks-and-feels to the standard Dynarch pop-up calendar and they are located within the rails directory public/stylesheets/calendariffic
|
62
|
+
|
63
|
+
The standard method to reference 1 of these .css files in your .rhtml file is to add something like this to your <head> tag:
|
64
|
+
<%= stylesheet_link_tag 'calendariffic/calendar-win2k-cold-1.css' %>
|
65
|
+
4. Here's where you add the DHTML calendar. Add this (or something similar) to the <body> portion of your .rhtml file
|
66
|
+
at the point where you want your pop-up calendar to appear:
|
67
|
+
for example
|
68
|
+
<%= calendariffic_input(false, 'start_date', 'calendariffic/date.png', 'start_cal', '%m/%d/%y', nil, {:class => 'myfavoriteclass', :readonly => 'true'}, {:class => 'borderless'}) %>
|
69
|
+
will yield the following HTML
|
70
|
+
<input type="text" name="start_date" id="start_date", value="" readonly="true" class="myfavoriteclass" /><img src="calendariffic/date.png" name="start_cal" id="start_cal" class="borderless" /><script language="javascript">set_cal('start_date', 'start_cal', '%m/%d/%y');</script>
|
71
|
+
Details of the syntax for the calendariffic_input function are given in the rdoc.
|
72
|
+
<b>Note that you MUST supply a value for text_name and a different value for image_name for the pop-up calendar to work</b>
|
73
|
+
|
74
|
+
5. Once you've added your calendariffic_input function to your .rhtml file, you're done.
|
75
|
+
You now have a calendar icon that can be clicked on to pop-up a calendar widget.
|
76
|
+
Once you select a date from the calendar widget, it will be displayed in your custom build text-box.
|
data/Rakefile
ADDED
@@ -0,0 +1,175 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
# Calendariffic
|
6
|
+
require 'rake'
|
7
|
+
require 'rake/testtask'
|
8
|
+
require 'rake/rdoctask'
|
9
|
+
|
10
|
+
desc 'Default: run unit tests.'
|
11
|
+
task :default => :test
|
12
|
+
|
13
|
+
desc 'Test the calendariffic plugin.'
|
14
|
+
Rake::TestTask.new(:test) do |t|
|
15
|
+
t.libs << 'lib'
|
16
|
+
t.pattern = 'test/**/*_test.rb'
|
17
|
+
t.verbose = true
|
18
|
+
end
|
19
|
+
|
20
|
+
desc 'Generate documentation for the calendariffic plugin.'
|
21
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
22
|
+
rdoc.rdoc_dir = 'rdoc'
|
23
|
+
rdoc.title = 'Calendariffic'
|
24
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
25
|
+
rdoc.rdoc_files.include('README')
|
26
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
27
|
+
end
|
28
|
+
# Calendariffic END
|
29
|
+
|
30
|
+
#############################################################################
|
31
|
+
#
|
32
|
+
# Helper functions
|
33
|
+
#
|
34
|
+
#############################################################################
|
35
|
+
|
36
|
+
def name
|
37
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
38
|
+
end
|
39
|
+
|
40
|
+
def version
|
41
|
+
line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
|
42
|
+
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
43
|
+
end
|
44
|
+
|
45
|
+
def date
|
46
|
+
Date.today.to_s
|
47
|
+
end
|
48
|
+
|
49
|
+
def rubyforge_project
|
50
|
+
name
|
51
|
+
end
|
52
|
+
|
53
|
+
def gemspec_file
|
54
|
+
"#{name}.gemspec"
|
55
|
+
end
|
56
|
+
|
57
|
+
def gem_file
|
58
|
+
"#{name}-#{version}.gem"
|
59
|
+
end
|
60
|
+
|
61
|
+
def replace_header(head, header_name)
|
62
|
+
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
63
|
+
end
|
64
|
+
|
65
|
+
#############################################################################
|
66
|
+
#
|
67
|
+
# Standard tasks
|
68
|
+
#
|
69
|
+
#############################################################################
|
70
|
+
|
71
|
+
task :default => :test
|
72
|
+
|
73
|
+
require 'rake/testtask'
|
74
|
+
Rake::TestTask.new(:test) do |test|
|
75
|
+
test.libs << 'lib' << 'test'
|
76
|
+
test.pattern = 'test/**/test_*.rb'
|
77
|
+
test.verbose = true
|
78
|
+
end
|
79
|
+
|
80
|
+
desc "Generate RCov test coverage and open in your browser"
|
81
|
+
task :coverage do
|
82
|
+
require 'rcov'
|
83
|
+
sh "rm -fr coverage"
|
84
|
+
sh "rcov test/test_*.rb"
|
85
|
+
sh "open coverage/index.html"
|
86
|
+
end
|
87
|
+
|
88
|
+
require 'rake/rdoctask'
|
89
|
+
Rake::RDocTask.new do |rdoc|
|
90
|
+
rdoc.rdoc_dir = 'rdoc'
|
91
|
+
rdoc.title = "#{name} #{version}"
|
92
|
+
rdoc.rdoc_files.include('README*')
|
93
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
94
|
+
end
|
95
|
+
|
96
|
+
desc "Open an irb session preloaded with this library"
|
97
|
+
task :console do
|
98
|
+
sh "irb -rubygems -r ./lib/#{name}.rb"
|
99
|
+
end
|
100
|
+
|
101
|
+
#############################################################################
|
102
|
+
#
|
103
|
+
# Custom tasks (add your own tasks here)
|
104
|
+
#
|
105
|
+
#############################################################################
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
#############################################################################
|
110
|
+
#
|
111
|
+
# Packaging tasks
|
112
|
+
#
|
113
|
+
#############################################################################
|
114
|
+
|
115
|
+
desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
|
116
|
+
task :release => :build do
|
117
|
+
unless `git branch` =~ /^\* master$/
|
118
|
+
puts "You must be on the master branch to release!"
|
119
|
+
exit!
|
120
|
+
end
|
121
|
+
sh "git commit --allow-empty -a -m 'Release #{version}'"
|
122
|
+
sh "git tag v#{version}"
|
123
|
+
sh "git push origin master"
|
124
|
+
sh "git push origin v#{version}"
|
125
|
+
sh "gem push pkg/#{name}-#{version}.gem"
|
126
|
+
end
|
127
|
+
|
128
|
+
desc "Build #{gem_file} into the pkg directory"
|
129
|
+
task :build => :gemspec do
|
130
|
+
sh "mkdir -p pkg"
|
131
|
+
sh "gem build #{gemspec_file}"
|
132
|
+
sh "mv #{gem_file} pkg"
|
133
|
+
end
|
134
|
+
|
135
|
+
desc "Generate #{gemspec_file}"
|
136
|
+
task :gemspec => :validate do
|
137
|
+
# read spec file and split out manifest section
|
138
|
+
spec = File.read(gemspec_file)
|
139
|
+
head, manifest, tail = spec.split(" # = MANIFEST =\n")
|
140
|
+
|
141
|
+
# replace name version and date
|
142
|
+
replace_header(head, :name)
|
143
|
+
replace_header(head, :version)
|
144
|
+
replace_header(head, :date)
|
145
|
+
#comment this out if your rubyforge_project has a different name
|
146
|
+
replace_header(head, :rubyforge_project)
|
147
|
+
|
148
|
+
# determine file list from git ls-files
|
149
|
+
files = `git ls-files`.
|
150
|
+
split("\n").
|
151
|
+
sort.
|
152
|
+
reject { |file| file =~ /^\./ }.
|
153
|
+
reject { |file| file =~ /^(rdoc|pkg)/ }.
|
154
|
+
map { |file| " #{file}" }.
|
155
|
+
join("\n")
|
156
|
+
|
157
|
+
# piece file back together and write
|
158
|
+
manifest = " s.files = %w[\n#{files}\n ]\n"
|
159
|
+
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
|
160
|
+
File.open(gemspec_file, 'w') { |io| io.write(spec) }
|
161
|
+
puts "Updated #{gemspec_file}"
|
162
|
+
end
|
163
|
+
|
164
|
+
desc "Validate #{gemspec_file}"
|
165
|
+
task :validate do
|
166
|
+
libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
|
167
|
+
unless libfiles.empty?
|
168
|
+
puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
|
169
|
+
exit!
|
170
|
+
end
|
171
|
+
unless Dir['VERSION*'].empty?
|
172
|
+
puts "A `VERSION` file at root level violates Gem best practices."
|
173
|
+
exit!
|
174
|
+
end
|
175
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,236 @@
|
|
1
|
+
/* Distributed as part of The Coolest DHTML Calendar
|
2
|
+
Author: Mihai Bazon, www.bazon.net/mishoo
|
3
|
+
Copyright Dynarch.com 2005, www.dynarch.com
|
4
|
+
*/
|
5
|
+
|
6
|
+
/* The main calendar widget. DIV containing a table. */
|
7
|
+
|
8
|
+
div.calendar { position: relative; }
|
9
|
+
|
10
|
+
.calendar, .calendar table {
|
11
|
+
border: 1px solid #bdb2bf;
|
12
|
+
font-size: 11px;
|
13
|
+
color: #000;
|
14
|
+
cursor: default;
|
15
|
+
background: url("normal-bg.gif");
|
16
|
+
font-family: "trebuchet ms",verdana,tahoma,sans-serif;
|
17
|
+
}
|
18
|
+
|
19
|
+
.calendar {
|
20
|
+
border-color: #797979;
|
21
|
+
}
|
22
|
+
|
23
|
+
/* Header part -- contains navigation buttons and day names. */
|
24
|
+
|
25
|
+
.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
|
26
|
+
text-align: center; /* They are the navigation buttons */
|
27
|
+
padding: 2px; /* Make the buttons seem like they're pressing */
|
28
|
+
background: url("title-bg.gif") repeat-x 0 100%; color: #000;
|
29
|
+
font-weight: bold;
|
30
|
+
}
|
31
|
+
|
32
|
+
.calendar .nav {
|
33
|
+
font-family: verdana,tahoma,sans-serif;
|
34
|
+
}
|
35
|
+
|
36
|
+
.calendar .nav div {
|
37
|
+
background: transparent url("menuarrow.gif") no-repeat 100% 100%;
|
38
|
+
}
|
39
|
+
|
40
|
+
.calendar thead tr { background: url("title-bg.gif") repeat-x 0 100%; color: #000; }
|
41
|
+
|
42
|
+
.calendar thead .title { /* This holds the current "month, year" */
|
43
|
+
font-weight: bold; /* Pressing it will take you to the current date */
|
44
|
+
text-align: center;
|
45
|
+
padding: 2px;
|
46
|
+
background: url("title-bg.gif") repeat-x 0 100%; color: #000;
|
47
|
+
}
|
48
|
+
|
49
|
+
.calendar thead .headrow { /* Row <TR> containing navigation buttons */
|
50
|
+
}
|
51
|
+
|
52
|
+
.calendar thead .name { /* Cells <TD> containing the day names */
|
53
|
+
border-bottom: 1px solid #797979;
|
54
|
+
padding: 2px;
|
55
|
+
text-align: center;
|
56
|
+
color: #000;
|
57
|
+
}
|
58
|
+
|
59
|
+
.calendar thead .weekend { /* How a weekend day name shows in header */
|
60
|
+
color: #c44;
|
61
|
+
}
|
62
|
+
|
63
|
+
.calendar thead .hilite { /* How do the buttons in header appear when hover */
|
64
|
+
background: url("hover-bg.gif");
|
65
|
+
border-bottom: 1px solid #797979;
|
66
|
+
padding: 2px 2px 1px 2px;
|
67
|
+
}
|
68
|
+
|
69
|
+
.calendar thead .active { /* Active (pressed) buttons in header */
|
70
|
+
background: url("active-bg.gif"); color: #fff;
|
71
|
+
padding: 3px 1px 0px 3px;
|
72
|
+
border-bottom: 1px solid #797979;
|
73
|
+
}
|
74
|
+
|
75
|
+
.calendar thead .daynames { /* Row <TR> containing the day names */
|
76
|
+
background: url("dark-bg.gif");
|
77
|
+
}
|
78
|
+
|
79
|
+
/* The body part -- contains all the days in month. */
|
80
|
+
|
81
|
+
.calendar tbody .day { /* Cells <TD> containing month days dates */
|
82
|
+
font-family: verdana,tahoma,sans-serif;
|
83
|
+
width: 2em;
|
84
|
+
color: #000;
|
85
|
+
text-align: right;
|
86
|
+
padding: 2px 4px 2px 2px;
|
87
|
+
}
|
88
|
+
.calendar tbody .day.othermonth {
|
89
|
+
font-size: 80%;
|
90
|
+
color: #999;
|
91
|
+
}
|
92
|
+
.calendar tbody .day.othermonth.oweekend {
|
93
|
+
color: #f99;
|
94
|
+
}
|
95
|
+
|
96
|
+
.calendar table .wn {
|
97
|
+
padding: 2px 3px 2px 2px;
|
98
|
+
border-right: 1px solid #797979;
|
99
|
+
background: url("dark-bg.gif");
|
100
|
+
}
|
101
|
+
|
102
|
+
.calendar tbody .rowhilite td,
|
103
|
+
.calendar tbody .rowhilite td.wn {
|
104
|
+
background: url("rowhover-bg.gif");
|
105
|
+
}
|
106
|
+
|
107
|
+
.calendar tbody td.today { font-weight: bold; /* background: url("today-bg.gif") no-repeat 70% 50%; */ }
|
108
|
+
|
109
|
+
.calendar tbody td.hilite { /* Hovered cells <TD> */
|
110
|
+
background: url("hover-bg.gif");
|
111
|
+
padding: 1px 3px 1px 1px;
|
112
|
+
border: 1px solid #bbb;
|
113
|
+
}
|
114
|
+
|
115
|
+
.calendar tbody td.active { /* Active (pressed) cells <TD> */
|
116
|
+
padding: 2px 2px 0px 2px;
|
117
|
+
}
|
118
|
+
|
119
|
+
.calendar tbody td.weekend { /* Cells showing weekend days */
|
120
|
+
color: #c44;
|
121
|
+
}
|
122
|
+
|
123
|
+
.calendar tbody td.selected { /* Cell showing selected date */
|
124
|
+
font-weight: bold;
|
125
|
+
border: 1px solid #797979;
|
126
|
+
padding: 1px 3px 1px 1px;
|
127
|
+
background: url("active-bg.gif"); color: #fff;
|
128
|
+
}
|
129
|
+
|
130
|
+
.calendar tbody .disabled { color: #999; }
|
131
|
+
|
132
|
+
.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
|
133
|
+
visibility: hidden;
|
134
|
+
}
|
135
|
+
|
136
|
+
.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
|
137
|
+
display: none;
|
138
|
+
}
|
139
|
+
|
140
|
+
/* The footer part -- status bar and "Close" button */
|
141
|
+
|
142
|
+
.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
|
143
|
+
text-align: center;
|
144
|
+
background: #565;
|
145
|
+
color: #fff;
|
146
|
+
}
|
147
|
+
|
148
|
+
.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
|
149
|
+
padding: 2px;
|
150
|
+
background: url("status-bg.gif") repeat-x 0 0; color: #000;
|
151
|
+
}
|
152
|
+
|
153
|
+
.calendar tfoot .hilite { /* Hover style for buttons in footer */
|
154
|
+
background: #afa;
|
155
|
+
border: 1px solid #084;
|
156
|
+
color: #000;
|
157
|
+
padding: 1px;
|
158
|
+
}
|
159
|
+
|
160
|
+
.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
|
161
|
+
background: #7c7;
|
162
|
+
padding: 2px 0px 0px 2px;
|
163
|
+
}
|
164
|
+
|
165
|
+
/* Combo boxes (menus that display months/years for direct selection) */
|
166
|
+
|
167
|
+
.calendar .combo {
|
168
|
+
position: absolute;
|
169
|
+
display: none;
|
170
|
+
top: 0px;
|
171
|
+
left: 0px;
|
172
|
+
width: 4em;
|
173
|
+
cursor: default;
|
174
|
+
border-width: 0 1px 1px 1px;
|
175
|
+
border-style: solid;
|
176
|
+
border-color: #797979;
|
177
|
+
background: url("normal-bg.gif"); color: #000;
|
178
|
+
z-index: 100;
|
179
|
+
font-size: 90%;
|
180
|
+
}
|
181
|
+
|
182
|
+
.calendar .combo .label,
|
183
|
+
.calendar .combo .label-IEfix {
|
184
|
+
text-align: center;
|
185
|
+
padding: 1px;
|
186
|
+
}
|
187
|
+
|
188
|
+
.calendar .combo .label-IEfix {
|
189
|
+
width: 4em;
|
190
|
+
}
|
191
|
+
|
192
|
+
.calendar .combo .hilite {
|
193
|
+
background: url("hover-bg.gif"); color: #000;
|
194
|
+
}
|
195
|
+
|
196
|
+
.calendar .combo .active {
|
197
|
+
background: url("active-bg.gif"); color: #fff;
|
198
|
+
font-weight: bold;
|
199
|
+
}
|
200
|
+
|
201
|
+
.calendar td.time {
|
202
|
+
border-top: 1px solid #797979;
|
203
|
+
padding: 1px 0px;
|
204
|
+
text-align: center;
|
205
|
+
background: url("dark-bg.gif");
|
206
|
+
}
|
207
|
+
|
208
|
+
.calendar td.time .hour,
|
209
|
+
.calendar td.time .minute,
|
210
|
+
.calendar td.time .ampm {
|
211
|
+
padding: 0px 5px 0px 6px;
|
212
|
+
font-weight: bold;
|
213
|
+
background: url("normal-bg.gif"); color: #000;
|
214
|
+
}
|
215
|
+
|
216
|
+
.calendar td.time .hour,
|
217
|
+
.calendar td.time .minute {
|
218
|
+
font-family: monospace;
|
219
|
+
}
|
220
|
+
|
221
|
+
.calendar td.time .ampm {
|
222
|
+
text-align: center;
|
223
|
+
}
|
224
|
+
|
225
|
+
.calendar td.time .colon {
|
226
|
+
padding: 0px 2px 0px 3px;
|
227
|
+
font-weight: bold;
|
228
|
+
}
|
229
|
+
|
230
|
+
.calendar td.time span.hilite {
|
231
|
+
background: url("hover-bg.gif"); color: #000;
|
232
|
+
}
|
233
|
+
|
234
|
+
.calendar td.time span.active {
|
235
|
+
background: url("active-bg.gif"); color: #fff;
|
236
|
+
}
|
Binary file
|
Binary file
|