Compare commits
No commits in common. "master" and "docs" have entirely different histories.
|
@ -1,3 +0,0 @@
|
|||
build/fullcalendar
|
||||
build/fullcalendar-*
|
||||
dist
|
278
GPL-LICENSE.txt
|
@ -1,278 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
|
@ -1,20 +0,0 @@
|
|||
Copyright (c) 2009 Adam Shaw
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
142
Makefile
|
@ -1,142 +0,0 @@
|
|||
|
||||
SRC_DIR = src
|
||||
BUILD_DIR = build
|
||||
DIST_DIR = dist
|
||||
DEMOS_DIR = demos
|
||||
OTHER_FILES = \
|
||||
changelog.txt \
|
||||
MIT-LICENSE.txt \
|
||||
GPL-LICENSE.txt
|
||||
|
||||
VER = $(shell cat version.txt)
|
||||
VER_SED = sed s/@VERSION/"$(VER)"/
|
||||
DATE = $(shell git log -1 --pretty=format:%ad)
|
||||
DATE_SED = sed s/@DATE/"$(DATE)"/
|
||||
|
||||
JQ = $(shell sed -ne "s/.*JQUERY[ \t]*=[ \t]*[\"']\(.*\)[\"'].*/\1/p" "$(SRC_DIR)/_loader.js")
|
||||
JQUI = $(shell sed -ne "s/.*JQUERY_UI[ \t]*=[ \t]*[\"']\(.*\)[\"'].*/\1/p" "$(SRC_DIR)/_loader.js")
|
||||
|
||||
DEMO_FILES = $(shell cd $(DEMOS_DIR); find . -mindepth 1 -maxdepth 1 -type f)
|
||||
DEMO_SUBDIRS = $(shell cd $(DEMOS_DIR); find . -mindepth 1 -maxdepth 1 -type d)
|
||||
DEMO_RE = (<script[^>]*_loader\.js[^>]*><\/script>|<!--\[\[|\]\]-->)[^<]*
|
||||
DEMO_SED = sed -ne '1h;1!H;$${;g;s/$(DEMO_RE)//g;p;}'
|
||||
|
||||
JS_SED = sed -ne "s/[ \t]*js([\"']\(.*\)[\"']).*/\1/p"
|
||||
CSS_SED = sed -ne "s/[ \t]*css([\"']\(.*\)[\"']).*/\1/p"
|
||||
|
||||
concat_js = \
|
||||
files=$$($(JS_SED) "$(1)/_loader.js"); \
|
||||
if [ -f "$(1)/intro.js" ]; then \
|
||||
files="intro.js $$files"; \
|
||||
fi; \
|
||||
if [ -f "$(1)/outro.js" ]; then \
|
||||
files="$$files outro.js"; \
|
||||
fi; \
|
||||
old=$$PWD; \
|
||||
if ! [ X = "X$$files" ]; then \
|
||||
(cd "$(1)"; cat $$files; cd "$$old") \
|
||||
| $(VER_SED) \
|
||||
| $(DATE_SED) \
|
||||
> "$(2)" ; \
|
||||
fi
|
||||
|
||||
concat_css = \
|
||||
files=$$($(CSS_SED) "$(1)/_loader.js"); \
|
||||
if ! [ X = "X$$files" ]; then \
|
||||
old=$$PWD; \
|
||||
(cd "$(1)"; cat $$files; cd "$$old") \
|
||||
| ${VER_SED} \
|
||||
| ${DATE_SED} \
|
||||
> "$(2)"; \
|
||||
fi
|
||||
|
||||
FC_V_DIR = $(BUILD_DIR)/fullcalendar-$(VER)
|
||||
FC_DIR = $(FC_V_DIR)/fullcalendar
|
||||
FCJS = $(FC_DIR)/fullcalendar.js
|
||||
FCCSS = $(FC_DIR)/fullcalendar.css
|
||||
FCPCSS = $(FC_DIR)/fullcalendar.print.css
|
||||
FCMJS = $(FC_DIR)/fullcalendar.min.js
|
||||
JQ_DIR = $(FC_V_DIR)/jquery
|
||||
DEMOS_DIR = $(FC_V_DIR)/demos
|
||||
FC_ZIP = $(FC_V_DIR).zip
|
||||
DIST = $(DIST_DIR)/$(shell basename $(FC_ZIP))
|
||||
|
||||
.PHONY: all distribute dist
|
||||
all: distribute
|
||||
distribute: core plugins jquery demos others
|
||||
|
||||
.PHONY: clean
|
||||
clean: Makefile
|
||||
rm -rf $(FC_ZIP)
|
||||
rm -rf $(FC_V_DIR)
|
||||
rm -rf $(DIST_DIR)
|
||||
|
||||
$(FC_V_DIR): Makefile
|
||||
mkdir -p $@
|
||||
|
||||
$(FC_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
$(DEMOS_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
$(JQ_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
$(DIST_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
$(FCJS): $(FC_DIR)
|
||||
$(call concat_js,$(SRC_DIR),$@)
|
||||
|
||||
$(FCCSS): $(FC_DIR)
|
||||
$(call concat_css,$(SRC_DIR),$@)
|
||||
|
||||
$(FCPCSS): $(SRC_DIR)/common/print.css $(FC_DIR)
|
||||
$(VER_SED) $< | $(DATE_SED) > $@
|
||||
|
||||
.PHONY: core
|
||||
core: $(FCJS) $(FCCSS) $(FCPCSS)
|
||||
|
||||
$(FCMJS): $(FCJS)
|
||||
java -jar $(BUILD_DIR)/compiler.jar --warning_level VERBOSE --jscomp_off checkTypes --externs build/externs.js --js $< > $@
|
||||
|
||||
.PHONY: plugins
|
||||
plugins: $(FCMJS) core
|
||||
for loader in $(SRC_DIR)/*/_loader.js; do \
|
||||
dir=`dirname $$loader`; \
|
||||
name=`basename $$dir`; \
|
||||
$(call concat_js,$$dir,$(FC_DIR)/$$name.js); \
|
||||
done
|
||||
|
||||
$(JQ_DIR)/$(JQ): lib/$(JQ) $(JQ_DIR)
|
||||
cp $< $@
|
||||
|
||||
$(JQ_DIR)/$(JQUI): lib/$(JQUI) $(JQ_DIR)
|
||||
cp $< $@
|
||||
|
||||
.PHONY: jquery
|
||||
jquery: $(JQ_DIR)/$(JQ) $(JQ_DIR)/$(JQUI)
|
||||
|
||||
.PHONY: demos
|
||||
demos: $(FC_DIR) $(DEMOS_DIR)
|
||||
for f in $(DEMO_FILES); do \
|
||||
cat $(DEMOS_DIR)/$$f \
|
||||
| $(DEMO_SED) \
|
||||
| sed "s/jquery\.js/${JQ}/" \
|
||||
| sed "s/jquery-ui\.js/${JQUI}/" \
|
||||
> $(DEMOS_DIR)/$$f; \
|
||||
done
|
||||
for d in $(DEMO_SUBDIRS); do \
|
||||
cp -r $(DEMOS_DIR)/$$d $(DEMOS_DIR)/$$d; \
|
||||
done
|
||||
|
||||
.PHONY: others
|
||||
others: $(FC_DIR)
|
||||
cp -r $(OTHER_FILES) $(FC_DIR)
|
||||
|
||||
$(FC_ZIP): $(FC_V_DIR) distribute
|
||||
zip -q -r $@ $<
|
||||
|
||||
$(DIST): $(FC_ZIP) $(DIST_DIR)
|
||||
mv $@ $<
|
65
README.mkd
|
@ -1,65 +0,0 @@
|
|||
|
||||
FullCalendar - Full-sized drag & drop event calendar
|
||||
====================================================
|
||||
|
||||
Development and testing
|
||||
-----------------------
|
||||
|
||||
Modify files in the `src/` directory and test your changes by viewing any of the HTML files
|
||||
in the `tests/` directory. Each test file exercises a particular aspect of FullCalendar,
|
||||
so you might want to create your own test file if you are developing a substantial new feature.
|
||||
|
||||
Building from source
|
||||
--------------------
|
||||
|
||||
You must have a Java runtime environment (accessible by the `java` command) for minification.
|
||||
Then, run `make zip` and check the `dist/` directory for your newly created ZIP archive.
|
||||
To start fresh, run the `make clean` command.
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
|
||||
Assuming you have downloaded a release, or built your own, you can get started by including the
|
||||
following dependencies in the <HEAD> of your HTML file:
|
||||
|
||||
<link rel='stylesheet' type='text/css' href='fullcalendar.css' /> <!-- required stylesheet -->
|
||||
<script type='text/javascript' src='jquery.js'></script> <!-- need jQuery >= v1.2.6 -->
|
||||
<script type='text/javascript' src='fullcalendar.min.js'></script> <!-- can also use fullcalendar.js -->
|
||||
|
||||
If you plan to use the drag/drop/resize functionality, you must include jQuery UI draggable and resizable.
|
||||
You can [download a custom build](http://jqueryui.com/download) or use the bundled files, like so:
|
||||
|
||||
<script type='text/javascript' src='ui.core.js'></script>
|
||||
<script type='text/javascript' src='ui.draggable.js'></script>
|
||||
<script type='text/javascript' src='ui.resizable.js'></script>
|
||||
|
||||
Somewhere in your javascript you need to initialize a FullCalendar within a pre-existing element.
|
||||
Here is an example of doing it within an element having an `id` of `calendar`:
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
// your options here
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
To see a full list of all available options, please consult the [FullCalendar documentation »](http://arshaw.com/fullcalendar/docs/)
|
||||
|
||||
I18n
|
||||
----
|
||||
To localize fullCalendar You can use i18n for jquery datepicker.
|
||||
|
||||
$.fullCalendar.applyLocale($.datepicker.regional['ru']);
|
||||
|
||||
Other texts could be modified via method setDefaults:
|
||||
|
||||
$.fullCalendar.setDefaults({
|
||||
buttonText: {
|
||||
month: 'month',
|
||||
week: 'week',
|
||||
day: 'day'
|
||||
}
|
||||
});
|
||||
|
||||
See all available locales here: [I18n](https://github.com/sergio-fry/fullcalendar/wiki/I18n)
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
allDaySlot *1.4*
|
||||
================
|
||||
|
||||
Determines if the "all-day" slot is displayed at the top of the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `true`
|
||||
</div>
|
||||
|
||||
When hidden with `false`, all-day events will not be displayed in agenda views.
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
allDayText *1.4*
|
||||
================
|
||||
|
||||
The text titling the "all-day" slot at the top of the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String, *default*: `'all-day'`
|
||||
</div>
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
axisFormat *1.4*
|
||||
================
|
||||
|
||||
Determines the time-text that will be displayed on the vertical axis of the agenda views.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String, *default*: `'h(:mm)tt'`
|
||||
</div>
|
||||
|
||||
The value is a format-string that will be processed by [formatDate](../utilities/formatDate).
|
||||
|
||||
The default value will produce times that look like "5pm" and "5:30pm".
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
defaultEventMinutes *1.4*
|
||||
=========================
|
||||
|
||||
Determines the length (in minutes) an event appears to be when it has an unspecified end date.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer, *default*: `120`
|
||||
</div>
|
||||
|
||||
By default, if an [Event Object](../event_data/Event_Object) as no `end`, it will appear to be 2 hours.
|
||||
|
||||
This option only affects events that appear in the agenda slots, meaning they have `allDay` set to `true`.
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
firstHour *1.4*
|
||||
===============
|
||||
|
||||
Determines the first hour that will be visible in the scroll pane.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer, *default*: `6`
|
||||
</div>
|
||||
|
||||
Values must be from 0-23, where 0=midnight, 1=1am, etc.
|
||||
|
||||
The user will be able to scroll upwards to see events before this time.
|
||||
If you want to prevent users from doing this, use the [minTime]() option instead.
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
Agenda Options
|
||||
==============
|
||||
|
||||
The following options only apply to the `agendaWeek` and `agendaDay` views:
|
||||
|
||||
- allDaySlot
|
||||
- allDayText
|
||||
- axisFormat
|
||||
- slotMinutes
|
||||
- defaultEventMinutes
|
||||
- firstHour
|
||||
- minTime
|
||||
- maxTime
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
maxTime *1.4.2*
|
||||
===============
|
||||
|
||||
Determines the last hour/time (exclusively) that will be displayed, even when the scrollbars have been scrolled all the way down.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer/String, *default*: `24`
|
||||
</div>
|
||||
|
||||
This can be a number like `22` (which means 10pm), a string like `'22:30'` (which means 10:30pm) or a string like `'10:30pm'`.
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
minTime *1.4.2*
|
||||
===============
|
||||
|
||||
Determines the first hour/time that will be displayed, even when the scrollbars have been scrolled all the way up.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer/String, *default*: `0`
|
||||
</div>
|
||||
|
||||
This can be a number like `5` (which means 5am), a string like `'5:30'` (which means 5:30am) or a string like `'5:30am'`.
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
slotMinutes *1.4*
|
||||
=================
|
||||
|
||||
The frequency for displaying time slots, in minutes.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer, *default*: `30`
|
||||
</div>
|
||||
|
||||
The default will make a slot every half hour.
|
|
@ -1 +0,0 @@
|
|||
var jQuery;
|
314
changelog.txt
|
@ -1,314 +0,0 @@
|
|||
|
||||
version 1.5.2 (8/21/11)
|
||||
- correctly process UTC "Z" ISO8601 date strings (issue 750)
|
||||
|
||||
version 1.5.1 (4/9/11)
|
||||
- more flexible ISO8601 date parsing (issue 814)
|
||||
- more flexible parsing of UNIX timestamps (issue 826)
|
||||
- FullCalendar now buildable from source on a Mac (issue 795)
|
||||
- FullCalendar QA'd in FF4 (issue 883)
|
||||
- upgraded to jQuery 1.5.2 (which supports IE9) and jQuery UI 1.8.11
|
||||
|
||||
version 1.5 (3/19/11)
|
||||
- slicker default styling for buttons
|
||||
- reworked a lot of the calendar's HTML and accompanying CSS
|
||||
(solves issues 327 and 395)
|
||||
- more printer-friendly (fullcalendar-print.css)
|
||||
- fullcalendar now inherits styles from jquery-ui themes differently.
|
||||
styles for buttons are distinct from styles for calendar cells.
|
||||
(solves issue 299)
|
||||
- can now color events through FullCalendar options and Event-Object properties (issue 117)
|
||||
THIS IS NOW THE PREFERRED METHOD OF COLORING EVENTS (as opposed to using className and CSS)
|
||||
- FullCalendar options:
|
||||
- eventColor (changes both background and border)
|
||||
- eventBackgroundColor
|
||||
- eventBorderColor
|
||||
- eventTextColor
|
||||
- Event-Object options:
|
||||
- color (changes both background and border)
|
||||
- backgroundColor
|
||||
- borderColor
|
||||
- textColor
|
||||
- can now specify an event source as an *object* with a `url` property (json feed) or
|
||||
an `events` property (function or array) with additional properties that will
|
||||
be applied to the entire event source:
|
||||
- color (changes both background and border)
|
||||
- backgroundColor
|
||||
- borderColor
|
||||
- textColor
|
||||
- className
|
||||
- editable
|
||||
- allDayDefault
|
||||
- ignoreTimezone
|
||||
- startParam (for a feed)
|
||||
- endParam (for a feed)
|
||||
- ANY OF THE JQUERY $.ajax OPTIONS
|
||||
allows for easily changing from GET to POST and sending additional parameters (issue 386)
|
||||
allows for easily attaching ajax handlers such as `error` (issue 754)
|
||||
allows for turning caching on (issue 355)
|
||||
- Google Calendar feeds are now specified differently:
|
||||
- specify a simple string of your feed's URL
|
||||
- specify an *object* with a `url` property of your feed's URL.
|
||||
you can include any of the new Event-Source options in this object.
|
||||
- the old `$.fullCalendar.gcalFeed` method still works
|
||||
- no more IE7 SSL popup (issue 504)
|
||||
- remove `cacheParam` - use json event source `cache` option instead
|
||||
- latest jquery/jquery-ui
|
||||
|
||||
version 1.4.11 (2/22/11)
|
||||
- fixed rerenderEvents bug (issue 790)
|
||||
- fixed bug with faulty dragging of events from all-day slot in agenda views
|
||||
- bundled with jquery 1.5 and jquery-ui 1.8.9
|
||||
|
||||
version 1.4.10 (1/2/11)
|
||||
- fixed bug with resizing event to different week in 5-day month view (issue 740)
|
||||
- fixed bug with events not sticking after a removeEvents call (issue 757)
|
||||
- fixed bug with underlying parseTime method, and other uses of parseInt (issue 688)
|
||||
|
||||
version 1.4.9 (11/16/10)
|
||||
- new algorithm for vertically stacking events (issue 111)
|
||||
- resizing an event to a different week (issue 306)
|
||||
- bug: some events not rendered with consecutive calls to addEventSource (issue 679)
|
||||
|
||||
version 1.4.8 (10/16/10)
|
||||
- ignoreTimezone option (set to `false` to process UTC offsets in ISO8601 dates)
|
||||
- bugfixes
|
||||
- event refetching not being called under certain conditions (issues 417, 554)
|
||||
- event refetching being called multiple times under certain conditions (issues 586, 616)
|
||||
- selection cannot be triggered by right mouse button (issue 558)
|
||||
- agenda view left axis sized incorrectly (issue 465)
|
||||
- IE js error when calendar is too narrow (issue 517)
|
||||
- agenda view looks strange when no scrollbars (issue 235)
|
||||
- improved parsing of ISO8601 dates with UTC offsets
|
||||
- $.fullCalendar.version
|
||||
- an internal refactor of the code, for easier future development and modularity
|
||||
|
||||
version 1.4.7 (7/5/10)
|
||||
- "dropping" external objects onto the calendar
|
||||
- droppable (boolean, to turn on/off)
|
||||
- dropAccept (to filter which events the calendar will accept)
|
||||
- drop (trigger)
|
||||
- selectable options can now be specified with a View Option Hash
|
||||
- bugfixes
|
||||
- dragged & reverted events having wrong time text (issue 406)
|
||||
- bug rendering events that have an endtime with seconds, but no hours/minutes (issue 477)
|
||||
- gotoDate date overflow bug (issue 429)
|
||||
- wrong date reported when clicking on edge of last column in agenda views (412)
|
||||
- support newlines in event titles
|
||||
- select/unselect callbacks now passes native js event
|
||||
|
||||
version 1.4.6 (5/31/10)
|
||||
- "selecting" days or timeslots
|
||||
- options: selectable, selectHelper, unselectAuto, unselectCancel
|
||||
- callbacks: select, unselect
|
||||
- methods: select, unselect
|
||||
- when dragging an event, the highlighting reflects the duration of the event
|
||||
- code compressing by Google Closure Compiler
|
||||
- bundled with jQuery 1.4.2 and jQuery UI 1.8.1
|
||||
|
||||
version 1.4.5 (2/21/10)
|
||||
- lazyFetching option, which can force the calendar to fetch events on every view/date change
|
||||
- scroll state of agenda views are preserved when switching back to view
|
||||
- bugfixes
|
||||
- calling methods on an uninitialized fullcalendar throws error
|
||||
- IE6/7 bug where an entire view becomes invisible (issue 320)
|
||||
- error when rendering a hidden calendar (in jquery ui tabs for example) in IE (issue 340)
|
||||
- interconnected bugs related to calendar resizing and scrollbars
|
||||
- when switching views or clicking prev/next, calendar would "blink" (issue 333)
|
||||
- liquid-width calendar's events shifted (depending on initial height of browser) (issue 341)
|
||||
- more robust underlying algorithm for calendar resizing
|
||||
|
||||
version 1.4.4 (2/3/10)
|
||||
- optimized event rendering in all views (events render in 1/10 the time)
|
||||
- gotoDate() does not force the calendar to unnecessarily rerender
|
||||
- render() method now correctly readjusts height
|
||||
|
||||
version 1.4.3 (12/22/09)
|
||||
- added destroy method
|
||||
- Google Calendar event pages respect currentTimezone
|
||||
- caching now handled by jQuery's ajax
|
||||
- protection from setting aspectRatio to zero
|
||||
- bugfixes
|
||||
- parseISO8601 and DST caused certain events to display day before
|
||||
- button positioning problem in IE6
|
||||
- ajax event source removed after recently being added, events still displayed
|
||||
- event not displayed when end is an empty string
|
||||
- dynamically setting calendar height when no events have been fetched, throws error
|
||||
|
||||
version 1.4.2 (12/02/09)
|
||||
- eventAfterRender trigger
|
||||
- getDate & getView methods
|
||||
- height & contentHeight options (explicitly sets the pixel height)
|
||||
- minTime & maxTime options (restricts shown hours in agenda view)
|
||||
- getters [for all options] and setters [for height, contentHeight, and aspectRatio ONLY! stay tuned..]
|
||||
- render method now readjusts calendar's size
|
||||
- bugfixes
|
||||
- lightbox scripts that use iframes (like fancybox)
|
||||
- day-of-week classNames were off when firstDay=1
|
||||
- guaranteed space on right side of agenda events (even when stacked)
|
||||
- accepts ISO8601 dates with a space (instead of 'T')
|
||||
|
||||
version 1.4.1 (10/31/09)
|
||||
- can exclude weekends with new 'weekends' option
|
||||
- gcal feed 'currentTimezone' option
|
||||
- bugfixes
|
||||
- year/month/date option sometimes wouldn't set correctly (depending on current date)
|
||||
- daylight savings issue caused agenda views to start at 1am (for BST users)
|
||||
- cleanup of gcal.js code
|
||||
|
||||
version 1.4 (10/19/09)
|
||||
- agendaWeek and agendaDay views
|
||||
- added some options for agenda views:
|
||||
- allDaySlot
|
||||
- allDayText
|
||||
- firstHour
|
||||
- slotMinutes
|
||||
- defaultEventMinutes
|
||||
- axisFormat
|
||||
- modified some existing options/triggers to work with agenda views:
|
||||
- dragOpacity and timeFormat can now accept a "View Hash" (a new concept)
|
||||
- dayClick now has an allDay parameter
|
||||
- eventDrop now has an an allDay parameter
|
||||
(this will affect those who use revertFunc, adjust parameter list)
|
||||
- added 'prevYear' and 'nextYear' for buttons in header
|
||||
- minor change for theme users, ui-state-hover not applied to active/inactive buttons
|
||||
- added event-color-changing example in docs
|
||||
- better defaults for right-to-left themed button icons
|
||||
|
||||
version 1.3.2 (10/13/09)
|
||||
- Bugfixes (please upgrade from 1.3.1!)
|
||||
- squashed potential infinite loop when addMonths and addDays
|
||||
is called with an invalid date
|
||||
- $.fullCalendar.parseDate() now correctly parses IETF format
|
||||
- when switching views, the 'today' button sticks inactive, fixed
|
||||
- gotoDate now can accept a single Date argument
|
||||
- documentation for changes in 1.3.1 and 1.3.2 now on website
|
||||
|
||||
version 1.3.1 (9/30/09)
|
||||
- Important Bugfixes (please upgrade from 1.3!)
|
||||
- When current date was late in the month, for long months, and prev/next buttons
|
||||
were clicked in month-view, some months would be skipped/repeated
|
||||
- In certain time zones, daylight savings time would cause certain days
|
||||
to be misnumbered in month-view
|
||||
- Subtle change in way week interval is chosen when switching from month to basicWeek/basicDay view
|
||||
- Added 'allDayDefault' option
|
||||
- Added 'changeView' and 'render' methods
|
||||
|
||||
version 1.3 (9/21/09)
|
||||
- different 'views': month/basicWeek/basicDay
|
||||
- more flexible 'header' system for buttons
|
||||
- themable by jQuery UI themes
|
||||
- resizable events (require jQuery UI resizable plugin)
|
||||
- rescoped & rewritten CSS, enhanced default look
|
||||
- cleaner css & rendering techniques for right-to-left
|
||||
- reworked options & API to support multiple views / be consistent with jQuery UI
|
||||
- refactoring of entire codebase
|
||||
- broken into different JS & CSS files, assembled w/ build scripts
|
||||
- new test suite for new features, uses firebug-lite
|
||||
- refactored docs
|
||||
- Options
|
||||
+ date
|
||||
+ defaultView
|
||||
+ aspectRatio
|
||||
+ disableResizing
|
||||
+ monthNames (use instead of $.fullCalendar.monthNames)
|
||||
+ monthNamesShort (use instead of $.fullCalendar.monthAbbrevs)
|
||||
+ dayNames (use instead of $.fullCalendar.dayNames)
|
||||
+ dayNamesShort (use instead of $.fullCalendar.dayAbbrevs)
|
||||
+ theme
|
||||
+ buttonText
|
||||
+ buttonIcons
|
||||
x draggable -> editable/disableDragging
|
||||
x fixedWeeks -> weekMode
|
||||
x abbrevDayHeadings -> columnFormat
|
||||
x buttons/title -> header
|
||||
x eventDragOpacity -> dragOpacity
|
||||
x eventRevertDuration -> dragRevertDuration
|
||||
x weekStart -> firstDay
|
||||
x rightToLeft -> isRTL
|
||||
x showTime (use 'allDay' CalEvent property instead)
|
||||
- Triggered Actions
|
||||
+ eventResizeStart
|
||||
+ eventResizeStop
|
||||
+ eventResize
|
||||
x monthDisplay -> viewDisplay
|
||||
x resize -> windowResize
|
||||
'eventDrop' params changed, can revert if ajax cuts out
|
||||
- CalEvent Properties
|
||||
x showTime -> allDay
|
||||
x draggable -> editable
|
||||
'end' is now INCLUSIVE when allDay=true
|
||||
'url' now produces a real <a> tag, more native clicking/tab behavior
|
||||
- Methods:
|
||||
+ renderEvent
|
||||
x prevMonth -> prev
|
||||
x nextMonth -> next
|
||||
x prevYear/nextYear -> moveDate
|
||||
x refresh -> rerenderEvents/refetchEvents
|
||||
x removeEvent -> removeEvents
|
||||
x getEventsByID -> clientEvents
|
||||
- Utilities:
|
||||
'formatDate' format string completely changed (inspired by jQuery UI datepicker + datejs)
|
||||
'formatDates' added to support date-ranges
|
||||
- Google Calendar Options:
|
||||
x draggable -> editable
|
||||
- Bugfixes
|
||||
- gcal extension fetched 25 results max, now fetches all
|
||||
|
||||
version 1.2.1 (6/29/09)
|
||||
- bugfixes
|
||||
- allows and corrects invalid end dates for events
|
||||
- doesn't throw an error in IE while rendering when display:none
|
||||
- fixed 'loading' callback when used w/ multiple addEventSource calls
|
||||
- gcal className can now be an array
|
||||
|
||||
version 1.2 (5/31/09)
|
||||
- expanded API
|
||||
- 'className' CalEvent attribute
|
||||
- 'source' CalEvent attribute
|
||||
- dynamically get/add/remove/update events of current month
|
||||
- locale improvements: change month/day name text
|
||||
- better date formatting ($.fullCalendar.formatDate)
|
||||
- multiple 'event sources' allowed
|
||||
- dynamically add/remove event sources
|
||||
- options for prevYear and nextYear buttons
|
||||
- docs have been reworked (include addition of Google Calendar docs)
|
||||
- changed behavior of parseDate for number strings
|
||||
(now interpets as unix timestamp, not MS times)
|
||||
- bugfixes
|
||||
- rightToLeft month start bug
|
||||
- off-by-one errors with month formatting commands
|
||||
- events from previous months sticking when clicking prev/next quickly
|
||||
- Google Calendar API changed to work w/ multiple event sources
|
||||
- can also provide 'className' and 'draggable' options
|
||||
- date utilties moved from $ to $.fullCalendar
|
||||
- more documentation in source code
|
||||
- minified version of fullcalendar.js
|
||||
- test suit (available from svn)
|
||||
- top buttons now use <button> w/ an inner <span> for better css cusomization
|
||||
- thus CSS has changed. IF UPGRADING FROM PREVIOUS VERSIONS,
|
||||
UPGRADE YOUR FULLCALENDAR.CSS FILE!!!
|
||||
|
||||
version 1.1 (5/10/09)
|
||||
- Added the following options:
|
||||
- weekStart
|
||||
- rightToLeft
|
||||
- titleFormat
|
||||
- timeFormat
|
||||
- cacheParam
|
||||
- resize
|
||||
- Fixed rendering bugs
|
||||
- Opera 9.25 (events placement & window resizing)
|
||||
- IE6 (window resizing)
|
||||
- Optimized window resizing for ALL browsers
|
||||
- Events on same day now sorted by start time (but first by timespan)
|
||||
- Correct z-index when dragging
|
||||
- Dragging contained in overflow DIV for IE6
|
||||
- Modified fullcalendar.css
|
||||
- for right-to-left support
|
||||
- for variable start-of-week
|
||||
- for IE6 resizing bug
|
||||
- for THEAD and TBODY (in 1.0, just used TBODY, restructured in 1.1)
|
||||
- IF UPGRADING FROM FULLCALENDAR 1.0, YOU MUST UPGRADE FULLCALENDAR.CSS
|
||||
!!!!!!!!!!!
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
date *1.3*
|
||||
==========
|
||||
|
||||
The initial date-of-month when the calendar loads.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer
|
||||
</div>
|
||||
|
||||
This option only matters for the week & day views. Month view does not need this option,
|
||||
because month view always displays the entire month from start to finish.
|
||||
|
||||
If `date` is unspecified, and `year`/`month` are set to the current year/month, then the
|
||||
calendar will start on the current date. If `date` is unspecified, and `year`/`month` are *not*
|
||||
set to the current year/month, then the calendar will start on the first of the month.
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
getDate *1.4.2*
|
||||
===============
|
||||
|
||||
Returns a Date object for the current date of the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'getDate' ) -> Date
|
||||
</div>
|
||||
|
||||
For month view, it will always be sometime between the first and last day of the month.
|
||||
For week views, it will always be sometime between the first and last day of the week.
|
||||
|
||||
Example of displaying a calendar's current date when a button is clicked:
|
||||
|
||||
$('#my-button').click(function() {
|
||||
var d = $('#calendar').fullCalendar('getDate');
|
||||
alert("The current date of the calendar is " + d);
|
||||
});
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
gotoDate
|
||||
========
|
||||
|
||||
Moves the calendar to an arbitrary year/month/date.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'gotoDate', *year* [, *month*, [ *date* ]] )
|
||||
</div>
|
||||
|
||||
**IMPORTANT**: `month` is 0-based, meaning January=`0`, February=`1`, etc.
|
||||
|
||||
This method can also be called with a single argument, a Date object
|
||||
(only works in versions >= 1.3.2).
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
incrementDate *1.3*
|
||||
===================
|
||||
|
||||
Moves the calendar forward/backward an arbitrary amount of time.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'incrementDate', *years* [, *months*, [ *days* ]] )
|
||||
</div>
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
Current Date
|
||||
============
|
||||
|
||||
<ul>
|
||||
<li>year</li>
|
||||
<li>month</li>
|
||||
<li>date</li>
|
||||
<li class='method'><a href='prev'>prev</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='next'>next</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='prevYear'>prevYear</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='nextYear'>nextYear</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='today'>today</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='gotoDate'>gotoDate</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='incrementDate'>incrementDate</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='getDate'>getDate</a> <em>(method)</em></li>
|
||||
</ul>
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
month
|
||||
=====
|
||||
|
||||
The initial month when the calendar loads.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer
|
||||
</div>
|
||||
|
||||
**IMPORTANT**: The value is 0-based, meaning January=`0`, February=`1`, etc.
|
||||
|
||||
If `month` is unspecified and `year` is set to the current year, the calendar will start on the current month.
|
||||
If `month` is unspecified and `year` is *not* set to the current year, the calendar will start on January.
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
next *1.3*
|
||||
==========
|
||||
|
||||
Moves the calendar one step forward (either by a month, week, or day).
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'next' )
|
||||
</div>
|
||||
|
||||
If the calendar is in `month` view, will move the calendar forward one month.
|
||||
|
||||
If the calendar is in `basicWeek` or `agendaWeek`, will move the calendar forward one week.
|
||||
|
||||
If the calendar is in `basicDay` or `agendaDay`, will move the calendar forward one day.
|
||||
|
||||
Example using `next` with an external button:
|
||||
|
||||
$('#my-next-button').click(function() {
|
||||
$('#calendar').fullCalendar('next');
|
||||
});
|
||||
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.0 through 1.2.1, this option was known as *prevMonth*.
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
nextYear *1.2.x and 1.4 onward*
|
||||
===============================
|
||||
|
||||
Moves the calendar forward one year.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'nextYear' )
|
||||
</div>
|
||||
|
||||
Version 1.3.x did not include this method, but you can use `.fullCalendar('incrementDate', 1)` instead.
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
prev *1.3*
|
||||
==========
|
||||
|
||||
Moves the calendar one step back (either by a month, week, or day).
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'prev' )
|
||||
</div>
|
||||
|
||||
If the calendar is in `month` view, will move the calendar back one month.
|
||||
|
||||
If the calendar is in `basicWeek` or `agendaWeek`, will move the calendar back one week.
|
||||
|
||||
If the calendar is in `basicDay` or `agendaDay`, will move the calendar back one day.
|
||||
|
||||
Example using `prev` with an external button:
|
||||
|
||||
$('#my-prev-button').click(function() {
|
||||
$('#calendar').fullCalendar('prev');
|
||||
});
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.0 through 1.2.1, this option was known as *prevMonth*.
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
prevYear *1.2.x and 1.4 onward*
|
||||
===============================
|
||||
|
||||
Moves the calendar back one year.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'prevYear' )
|
||||
</div>
|
||||
|
||||
Version 1.3.x did not include this method, but you can use `.fullCalendar('incrementDate', -1)` instead.
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
today
|
||||
=====
|
||||
|
||||
Moves the calendar to the current date.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'today' )
|
||||
</div>
|
||||
|
||||
Example using `today` with an external button:
|
||||
|
||||
$('#my-today-button').click(function() {
|
||||
$('#calendar').fullCalendar('today');
|
||||
});
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
year
|
||||
====
|
||||
|
||||
The initial year when the calendar loads.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer
|
||||
</div>
|
||||
|
||||
Must be a 4-digit year like `2009`.
|
||||
|
||||
If `year` is unspecified, the calendar will begin at the current year.
|
|
@ -1,98 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,98 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,basicWeek,basicDay'
|
||||
},
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
</body>
|
||||
</html>
|
Before Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 181 B |
Before Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 124 B |
Before Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 118 B |
Before Width: | Height: | Size: 104 B |
Before Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB |
|
@ -1,331 +0,0 @@
|
|||
/*
|
||||
* jQuery UI CSS Framework 1.8.11
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
||||
.ui-helper-clearfix { display: inline-block; }
|
||||
/* required comment for clearfix to work in Opera \*/
|
||||
* html .ui-helper-clearfix { height:1%; }
|
||||
.ui-helper-clearfix { display:block; }
|
||||
/* end clearfix */
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
/*
|
||||
* jQuery UI CSS Framework 1.8.11
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
|
||||
.ui-widget .ui-widget { font-size: 1em; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; }
|
||||
.ui-widget-content a { color: #362b36; }
|
||||
.ui-widget-header { border: 1px solid #aed0ea; background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
||||
.ui-widget-header a { color: #222222; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aed0ea; background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2779aa; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2779aa; text-decoration: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #74b2e2; background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #0070a3; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #2694e8; background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
|
||||
.ui-widget :active { outline: none; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #f9dd34; background: #ffef8f url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x; color: #363636; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_72a7cf_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_3d80b3_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_2694e8_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; }
|
||||
.ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
|
||||
.ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
|
||||
.ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
|
||||
.ui-corner-top { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
|
||||
.ui-corner-bottom { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
|
||||
.ui-corner-right { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
|
||||
.ui-corner-left { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
|
||||
.ui-corner-all { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
|
||||
.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
|
||||
* jQuery UI Resizable 1.8.11
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Resizable#theming
|
||||
*/
|
||||
.ui-resizable { position: relative;}
|
||||
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
|
||||
* jQuery UI Tabs 1.8.11
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Tabs#theming
|
||||
*/
|
||||
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
||||
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
||||
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
|
@ -1,93 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,157 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
|
||||
/* initialize the external events
|
||||
-----------------------------------------------------------------*/
|
||||
|
||||
$('#external-events div.external-event').each(function() {
|
||||
|
||||
// create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
|
||||
// it doesn't need to have a start or end
|
||||
var eventObject = {
|
||||
title: $.trim($(this).text()) // use the element's text as the event title
|
||||
};
|
||||
|
||||
// store the Event Object in the DOM element so we can get to it later
|
||||
$(this).data('eventObject', eventObject);
|
||||
|
||||
// make the event draggable using jQuery UI
|
||||
$(this).draggable({
|
||||
zIndex: 999,
|
||||
revert: true, // will cause the event to go back to its
|
||||
revertDuration: 0 // original position after the drag
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
/* initialize the calendar
|
||||
-----------------------------------------------------------------*/
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
editable: true,
|
||||
droppable: true, // this allows things to be dropped onto the calendar !!!
|
||||
drop: function(date, allDay) { // this function is called when something is dropped
|
||||
|
||||
// retrieve the dropped element's stored Event Object
|
||||
var originalEventObject = $(this).data('eventObject');
|
||||
|
||||
// we need to copy it, so that multiple events don't have a reference to the same object
|
||||
var copiedEventObject = $.extend({}, originalEventObject);
|
||||
|
||||
// assign it the date that was reported
|
||||
copiedEventObject.start = date;
|
||||
copiedEventObject.allDay = allDay;
|
||||
|
||||
// render the event on the calendar
|
||||
// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
|
||||
$('#calendar').fullCalendar('renderEvent', copiedEventObject, true);
|
||||
|
||||
// is the "remove after drop" checkbox checked?
|
||||
if ($('#drop-remove').is(':checked')) {
|
||||
// if so, remove the element from the "Draggable Events" list
|
||||
$(this).remove();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#wrap {
|
||||
width: 1100px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#external-events {
|
||||
float: left;
|
||||
width: 150px;
|
||||
padding: 0 10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #eee;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#external-events h4 {
|
||||
font-size: 16px;
|
||||
margin-top: 0;
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.external-event { /* try to mimick the look of a real event */
|
||||
margin: 10px 0;
|
||||
padding: 2px 4px;
|
||||
background: #3366CC;
|
||||
color: #fff;
|
||||
font-size: .85em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#external-events p {
|
||||
margin: 1.5em 0;
|
||||
font-size: 11px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#external-events p input {
|
||||
margin: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
float: right;
|
||||
width: 900px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='wrap'>
|
||||
|
||||
<div id='external-events'>
|
||||
<h4>Draggable Events</h4>
|
||||
<div class='external-event'>My Event 1</div>
|
||||
<div class='external-event'>My Event 2</div>
|
||||
<div class='external-event'>My Event 3</div>
|
||||
<div class='external-event'>My Event 4</div>
|
||||
<div class='external-event'>My Event 5</div>
|
||||
<p>
|
||||
<input type='checkbox' id='drop-remove' /> <label for='drop-remove'>remove after drop</label>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div style='clear:both'></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,68 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<script type='text/javascript' src='../src/gcal/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/gcal.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
|
||||
// US Holidays
|
||||
events: 'http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic',
|
||||
|
||||
eventClick: function(event) {
|
||||
// opens events in a popup window
|
||||
window.open(event.url, 'gcalevent', 'width=700,height=600');
|
||||
return false;
|
||||
},
|
||||
|
||||
loading: function(bool) {
|
||||
if (bool) {
|
||||
$('#loading').show();
|
||||
}else{
|
||||
$('#loading').hide();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#loading {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='loading' style='display:none'>loading...</div>
|
||||
<div id='calendar'></div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,25 +0,0 @@
|
|||
<?php
|
||||
|
||||
$year = date('Y');
|
||||
$month = date('m');
|
||||
|
||||
echo json_encode(array(
|
||||
|
||||
array(
|
||||
'id' => 111,
|
||||
'title' => "Event1",
|
||||
'start' => "$year-$month-10",
|
||||
'url' => "http://yahoo.com/"
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 222,
|
||||
'title' => "Event2",
|
||||
'start' => "$year-$month-20",
|
||||
'end' => "$year-$month-22",
|
||||
'url' => "http://yahoo.com/"
|
||||
)
|
||||
|
||||
));
|
||||
|
||||
?>
|
|
@ -1,64 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
|
||||
editable: true,
|
||||
|
||||
events: "json-events.php",
|
||||
|
||||
eventDrop: function(event, delta) {
|
||||
alert(event.title + ' was moved ' + delta + ' days\n' +
|
||||
'(should probably update your database)');
|
||||
},
|
||||
|
||||
loading: function(bool) {
|
||||
if (bool) $('#loading').show();
|
||||
else $('#loading').hide();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#loading {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='loading' style='display:none'>loading...</div>
|
||||
<div id='calendar'></div>
|
||||
<p>json-events.php needs to be running in the same directory.</p>
|
||||
</body>
|
||||
</html>
|
|
@ -1,115 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
var calendar = $('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
selectable: true,
|
||||
selectHelper: true,
|
||||
select: function(start, end, allDay) {
|
||||
var title = prompt('Event Title:');
|
||||
if (title) {
|
||||
calendar.fullCalendar('renderEvent',
|
||||
{
|
||||
title: title,
|
||||
start: start,
|
||||
end: end,
|
||||
allDay: allDay
|
||||
},
|
||||
true // make the event "stick"
|
||||
);
|
||||
}
|
||||
calendar.fullCalendar('unselect');
|
||||
},
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
</body>
|
||||
</html>
|
100
demos/theme.html
|
@ -1,100 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<link rel='stylesheet' type='text/css' href='cupertino/theme.css' />
|
||||
<script type='text/javascript' src='../src/_loader.js'></script>
|
||||
<!--[[
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.css' />
|
||||
<link rel='stylesheet' type='text/css' href='../fullcalendar/fullcalendar.print.css' media='print' />
|
||||
<script type='text/javascript' src='../jquery/jquery.js'></script>
|
||||
<script type='text/javascript' src='../jquery/jquery-ui.js'></script>
|
||||
<script type='text/javascript' src='../fullcalendar/fullcalendar.min.js'></script>
|
||||
]]-->
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
theme: true,
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type='text/css'>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
aspectRatio *1.3*
|
||||
=================
|
||||
|
||||
Determines the width-to-height aspect ratio of the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Float, *default*: `1.35`
|
||||
</div>
|
||||
|
||||
A calendar is a block-level element that fills its entire avaiable width.
|
||||
The calendar’s height, however, is determined by this ratio of width-to-height.
|
||||
(Hint: larger numbers make smaller heights).
|
||||
|
||||
The following example will initialize a calendar who's width is twice its height:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
aspectRatio: 2
|
||||
});
|
||||
|
||||
|
||||
Setter
|
||||
------
|
||||
|
||||
You can dynamically set a calendar's aspectRatio after initialization:
|
||||
|
||||
$('#calendar').fullCalendar('option', 'aspectRatio', 1.8);
|
||||
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
The *setter* only works in version 1.4.2 and later.
|
||||
</div>
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
buttonIcons *1.3*
|
||||
=================
|
||||
|
||||
Determines which theme icons appear on the header buttons.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Object, *default:*
|
||||
|
||||
{
|
||||
prev: 'circle-triangle-w',
|
||||
next: 'circle-triangle-e'
|
||||
}
|
||||
</div>
|
||||
|
||||
This option only applies to calendars that have jQuery UI theming enabled with the [theme]() option.
|
||||
|
||||
A hash must be supplied that maps button names (from the [header]()) to icon strings.
|
||||
The icon strings determine the CSS class that will be used on the button. For example, the
|
||||
string `'circle-triangle-w'` will result in the class `'ui-icon-triangle-w'`.
|
||||
|
||||
If a button does not have an entry, it falls back to using [buttonText](../text/buttonText).
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
contentHeight *1.4.2*
|
||||
=====================
|
||||
|
||||
Will make the calendar's content area a pixel height.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer
|
||||
</div>
|
||||
|
||||
By default, this option is unset and the calendar's height is calculated by [aspectRatio]().
|
||||
|
||||
Example usage of `contentHeight`:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
contentHeight: 600
|
||||
});
|
||||
|
||||
|
||||
Setter
|
||||
------
|
||||
|
||||
You can dynamically set a calendar's contentHeight after initialization:
|
||||
|
||||
$('#calendar').fullCalendar('option', 'contentHeight', 650);
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
destroy *1.4.3*
|
||||
===============
|
||||
|
||||
Restores the element to the state before FullCalendar was initialized.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'destroy' )
|
||||
</div>
|
||||
|
||||
Removes elements, events handlers, and internal data.
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
firstDay *1.3*
|
||||
==============
|
||||
|
||||
The day that each week begins.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer, *default*: `0` (Sunday)
|
||||
</div>
|
||||
|
||||
The value must be a number that represents the day of the week.
|
||||
|
||||
Sunday=`0`, Monday=`1`, Tuesday=`2`, etc.
|
||||
|
||||
This option is useful for UK users who need the week to start on Monday (`1`).
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.1 through 1.2.1, this option was known as *weekStart*.
|
||||
</div>
|
|
@ -0,0 +1,46 @@
|
|||
|
||||
header *1.3*
|
||||
============
|
||||
|
||||
Defines the buttons and title at the top of the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Object/`false`, *default:*
|
||||
|
||||
{
|
||||
left: 'title',
|
||||
center: '',
|
||||
right: 'today prev,next'
|
||||
}
|
||||
</div>
|
||||
|
||||
Setting the header options to `false` will display no header.
|
||||
An object can be supplied with properties `left`, `center`, and `right`.
|
||||
These properties contain strings with comma/space separated values.
|
||||
Values separated by a comma will be displayed adjacently.
|
||||
Values separated by a space will be displayed with a small gap in between.
|
||||
Strings can contain any of the following values:
|
||||
|
||||
`title`
|
||||
: text containing the current month/week/day
|
||||
|
||||
`prev`
|
||||
: button for moving the calendar back one month/week/day
|
||||
|
||||
`next`
|
||||
: button for moving the calendar forward one month/week/day
|
||||
|
||||
`prevYear`
|
||||
: button for moving the calendar back on year
|
||||
|
||||
`nextYear`
|
||||
: button for moving the calendar forward one year
|
||||
|
||||
`today`
|
||||
: button for moving the calendar to the current month/week/day
|
||||
|
||||
*a view name*
|
||||
: button that will switch the calendar to any of the [Available Views](../views/Available_Views)
|
||||
|
||||
|
||||
Specifying an empty string for a property will cause it display no text/buttons.
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
height *1.4.2*
|
||||
==============
|
||||
|
||||
Will make the entire calendar (including header) a pixel height.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Integer
|
||||
</div>
|
||||
|
||||
By default, this option is unset and the calendar's height is calculated by [aspectRatio]().
|
||||
|
||||
Example usage of `height`:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
height: 650
|
||||
});
|
||||
|
||||
|
||||
Setter
|
||||
------
|
||||
|
||||
You can dynamically set a calendar's height after initialization:
|
||||
|
||||
$('#calendar').fullCalendar('option', 'height', 700);
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
General Display
|
||||
===============
|
||||
|
||||
<ul>
|
||||
<li>header</li>
|
||||
<li>theme</li>
|
||||
<li>buttonIcons</li>
|
||||
<li>firstDay</li>
|
||||
<li>isRTL</li>
|
||||
<li>weekends</li>
|
||||
<li>weekMode</li>
|
||||
<li>height</li>
|
||||
<li>contentHeight</li>
|
||||
<li>aspectRatio</li>
|
||||
<li class='callback'><a href='viewDisplay'>viewDisplay</a> <em>(callback)</em></li>
|
||||
<li class='callback'><a href='windowResize'>windowResize</a> <em>(callback)</em></li>
|
||||
<li class='method'><a href='render'>render</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='destroy'>destroy</a> <em>(method)</em></li>
|
||||
</ul>
|
||||
|
||||
See also: [buttonText](../text/buttonText)
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
isRTL *1.3*
|
||||
===========
|
||||
|
||||
Displays the calendar in right-to-left mode.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `false`
|
||||
</div>
|
||||
|
||||
This option is useful for right-to-left languages such as Arabic and Hebrew.
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.1 through 1.2.1, this option was known as *rightToLeft*.
|
||||
</div>
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
render *1.3.1*
|
||||
==============
|
||||
|
||||
Immediately forces the calendar to render and/or readjusts its size.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'render' )
|
||||
</div>
|
||||
|
||||
This method is useful in the scenario where a tab setup might hide/show a calendar. Call this method whenever the tabs are shown.
|
||||
Here is an example with the [jQuery UI tab plugin](http://jqueryui.com/demos/tabs/):
|
||||
|
||||
$('#my-tabs').tabs({
|
||||
show: function(event, ui) {
|
||||
$('#calendar').fullCalendar('render');
|
||||
}
|
||||
});
|
||||
|
||||
Notice that this example calls `render` whenever *any* tab is shown, not just the tab that the calendar is within.
|
||||
This is okay, because FullCalendar is smart enough to only render calendars that are visible to the user.
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Prior to version 1.4.2, the *render* method did not readjust the size of the calendar. It only
|
||||
rendered the calendar if it was not already rendered.
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
theme *1.3*
|
||||
===========
|
||||
|
||||
Enables/disables use of jQuery UI theming.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `false`
|
||||
</div>
|
||||
|
||||
Once you enable theming with `true`, you still need to include the CSS file for the
|
||||
theme you want. For example, if you just downloaded a theme from the
|
||||
[jQuery UI Themeroller](http://jqueryui.com/themeroller/), you need to put a `<link>`
|
||||
tag in your page's `<head>`.
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
viewDisplay *1.3*
|
||||
=================
|
||||
|
||||
Triggered when the calendar loads and every time a different date-range is displayed.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *view* ) { }
|
||||
</div>
|
||||
|
||||
The calendar's date-range changes whenever the user switches to a new view
|
||||
(for example, if they switch from "month" to "agendaWeek") or when they click the prev/next buttons.
|
||||
|
||||
`view` is the current [View Object](../views/View_Object).
|
||||
|
||||
Within the callback function, `this` will be set to the calendar's main element.
|
||||
|
||||
Example usage of viewDisplay:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
viewDisplay: function(view) {
|
||||
alert('The new title of the view is ' + view.title);
|
||||
}
|
||||
});
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.0 through 1.2.1, this option was known as *monthDisplay*.
|
||||
</div>
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
weekMode *1.3*
|
||||
==============
|
||||
|
||||
Determines the number of weeks displayed in a month view. Also determines each week's height.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String, *default*: `'fixed'`
|
||||
</div>
|
||||
|
||||
Available options:
|
||||
|
||||
`'fixed'`
|
||||
: The calendar will always be 6 weeks tall. The height will always be the same, as determined by
|
||||
[height](height), [contentHeight](), or [aspectRatio]().
|
||||
|
||||
`'liquid'`
|
||||
: The calendar will have either 4, 5, or 6 weeks, depending on the month.
|
||||
The height of the weeks will stretch to fill the available height, as determined by
|
||||
[height](height), [contentHeight](), or [aspectRatio]().
|
||||
|
||||
`'variable'`
|
||||
: The calendar will have either 4, 5, or 6 weeks, depending on the month.
|
||||
Each week will have the same constant height, meaning the calendar’s height will change
|
||||
month-to-month.
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.0 through 1.2.1, this option was known as *fixedWeeks*.
|
||||
</div>
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
weekends *1.4.1*
|
||||
================
|
||||
|
||||
Whether to include Saturday/Sunday columns in any of the calendar views.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `true`
|
||||
</div>
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
windowResize *1.3*
|
||||
==================
|
||||
|
||||
Triggered after the calendar's dimensions have been changed due to the browser window being resized.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *view* ) { }
|
||||
</div>
|
||||
|
||||
The calendar has automatically adapted to the new size when windowResize is triggered.
|
||||
|
||||
`view` is the current [View Object](../views/View_Object).
|
||||
|
||||
Within the callback function, `this` will be set to the calendar's main element.
|
||||
|
||||
Example usage of windowResize:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
windowResize: function(view) {
|
||||
alert('The calendar has adjusted to a window resize');
|
||||
}
|
||||
});
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In version 1.1 through 1.2.1, this option was known as *resize*.
|
||||
</div>
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
drop *1.4.7*
|
||||
============
|
||||
|
||||
Called when a valid jQuery UI draggable has been dropped onto the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *date*, *allDay*, *jsEvent*, *ui* ) { }
|
||||
</div>
|
||||
|
||||
`date` holds the JavaScript Date object of where the draggable was dropped.
|
||||
|
||||
`allDay` holds a boolean of whether the draggable was dropped on an all-day cell
|
||||
(like in month view) or in a slot with a specific time (like in agenda view).
|
||||
|
||||
`jsEvent` holds the primitive JavaScript event, with information like mouse coordinates.
|
||||
|
||||
`ui` holds the jQuery UI information.
|
||||
|
||||
`this` holds the DOM element that has been dropped.
|
||||
|
||||
To see this callback function in action, view the [droppable]() article or look at
|
||||
[this example](/js/fullcalendar/examples/external-dragging.html).
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
dropAccept *1.4.7*
|
||||
==================
|
||||
|
||||
Provides a way to filter which elements can be dropped onto the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String/Function, *default*: `"*"`
|
||||
</div>
|
||||
|
||||
By default, after setting a calendar' [droppable]() option to `true`, the calendar
|
||||
will accept any draggables that are dropped onto the calendar. The `dropAccept` option
|
||||
allows the calendar be more selective about which elements can/can't be dropped.
|
||||
|
||||
The value of `dropAccept` can be a string [jQuery selector](http://api.jquery.com/category/selectors/).
|
||||
It can also be a function that accepts the draggable item as a single argument, and returns `true`
|
||||
if the element can be dropped onto the calendar.
|
||||
|
||||
In the following example, the first draggable (with id `"draggable1"`) can be dropped on the calendar,
|
||||
while the second draggable (with id `"draggable2"`) cannot:
|
||||
|
||||
...
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='draggable1' class='cool-event'></div>
|
||||
<div id='draggable2'></div>
|
||||
...
|
||||
|
||||
and here is the JavaScript:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
droppable: true,
|
||||
dropAccept: '.cool-event',
|
||||
drop: function() {
|
||||
alert('dropped!');
|
||||
}
|
||||
});
|
||||
|
||||
$('#draggable1').draggable();
|
||||
$('#draggable2').draggable();
|
|
@ -0,0 +1,46 @@
|
|||
|
||||
droppable *1.4.7*
|
||||
=================
|
||||
|
||||
Determines if jQuery UI draggables can be dropped onto the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `false`
|
||||
</div>
|
||||
|
||||
This option operates with jQuery UI draggables. You must [download](http://jqueryui.com/download)
|
||||
the appropriate jQuery UI files and initialize a [draggable](http://jqueryui.com/demos/draggable/) element.
|
||||
Additionally, you must set the calendar's `droppable` option to `true`.
|
||||
|
||||
Here is how you might initialize an element that can be dragged onto a calendar:
|
||||
|
||||
$('#my-draggable').draggable({
|
||||
revert: true, // immediately snap back to original position
|
||||
revertDuration: 0 //
|
||||
});
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
droppable: true,
|
||||
drop: function(date, allDay) {
|
||||
alert("Dropped on " + date + " with allDay=" + allDay);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
How can I use this to add events???
|
||||
-----------------------------------
|
||||
|
||||
Good question. It is a common need to have an "external list of events" that can be
|
||||
dragged onto the calendar.
|
||||
|
||||
While the `droppable` option deals with generic jQuery UI draggables and is not specifically
|
||||
tailored to adding events, it is possible to achieve this with a few lines of code.
|
||||
Follow the **external-dragging.html** example in FullCalendar's download. You can also
|
||||
view the [example online](/js/fullcalendar/examples/external-dragging.html).
|
||||
|
||||
In short, you must call [renderEvent](../event_rendering/renderEvent) yourself
|
||||
in the [drop]() callback.
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Hopefully, this task will become more convenient with future API changes.
|
||||
</div>
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
Dropping External Elements
|
||||
==========================
|
||||
|
||||
<ul>
|
||||
<li><a href='droppable'>droppable</a></li>
|
||||
<li><a href='dropAccept'>dropAccept</a></li>
|
||||
<li class='callback'><a href='drop'>drop</a> <em>(callback)</em></li>
|
||||
</ul>
|
|
@ -0,0 +1,79 @@
|
|||
|
||||
Event Object
|
||||
============
|
||||
|
||||
A standard object that FullCalendar uses to store information about a calendar event.
|
||||
|
||||
An Event Object has a number of properties. When passing new Event Objects to
|
||||
`events` and `eventSources`, only the `title` and `start` properties are required.
|
||||
Here is the full list of properties:
|
||||
|
||||
**id**: String/Integer (optional)
|
||||
: Uniquely identifies the given event. Different instances of repeating events should all have the same `id`.
|
||||
|
||||
**title**: String
|
||||
: The text on an event's element
|
||||
|
||||
**allDay**: `true` or `false` (optional)
|
||||
: Whether an event occurs at a specific time-of-day. This property affects whether an event's time is shown.
|
||||
Also, in the agenda views, determines if it is displayed in the "all-day" section.
|
||||
|
||||
**Don't include quotes** around your `true`/`false`. This value is not a string!
|
||||
|
||||
When specifying Event Objects for `events` or `eventSources`,
|
||||
omitting this property will make it inherit from
|
||||
[allDayDefault](), which is normally `false`.
|
||||
|
||||
**start**: Date
|
||||
: A JavaScript Date object indicating the date/time an event begins.
|
||||
|
||||
When specifying Event Objects for `events` or `eventSources`,
|
||||
you may specify a string in IETF format (ex: "Wed, 18 Oct 2009 13:00:00 EST"),
|
||||
a string in ISO8601 format (ex: "2009-11-05T13:15:30Z") or a UNIX timestamp.
|
||||
|
||||
**end**: Date (optional)
|
||||
: A Javascript Date object indicating the date/time an event ends.
|
||||
As with `start`, you may specify it in IETF, ISO8601, or UNIX timestamp format.
|
||||
|
||||
**If an event is all-day**...
|
||||
|
||||
the end date is inclusive. This means an event with `start` Nov 10 and
|
||||
`end` Nov 12 will span 3 days on the calendar.
|
||||
|
||||
**If an event is NOT all-day**...
|
||||
|
||||
the end date is exclusive. This is only a gotcha when your `end` has time 00:00.
|
||||
It means your event ends on midnight, and it will not span through the next day.
|
||||
|
||||
**url**: String (optional)
|
||||
: A URL that will be visited when this event is clicked by the user.
|
||||
For more information on controlling this behavior, see the [eventClick](../mouse/eventClick) callback.
|
||||
|
||||
**className**: String/Array (optional)
|
||||
: A CSS class (or array of classes) that will be attached to this event's element.
|
||||
|
||||
**editable**: `true` or `false` (optional)
|
||||
: Overrides the master [editable](../event_ui/editable) option for this single event.
|
||||
|
||||
**source**: Array/String/Function (automatically populated)
|
||||
: A reference to the event source (as specified in `events` or `eventSources`)
|
||||
that this event came from.
|
||||
|
||||
Do not worry about populating this value, FullCalendar will do this automatically.
|
||||
|
||||
|
||||
In addition to the fields above, you may also include your own non-standard fields
|
||||
in each Event Object. FullCalendar will not modify or delete these fields.
|
||||
For example, developers often include a `description` field for use in callbacks such
|
||||
as [eventRender](../event_rendering/eventRender).
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Prior to version 1.3, the *end* date was always exclusive, even when *allDay* was set to *true*.
|
||||
|
||||
Prior to version 1.3, the *allDay* property did not exist. *showTime* was used instead.
|
||||
It was set to *true* to show times and *false* to hide them.
|
||||
|
||||
The *className* and *source* properties did not exist prior to version 1.2.
|
||||
</div>
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
addEventSource *1.2*
|
||||
====================
|
||||
|
||||
Dynamically adds an event source.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'addEventSource', *source* )
|
||||
</div>
|
||||
|
||||
Source may be an Array/URL/Function just as in the `events` option.
|
||||
Events will be immediately fetched from this source and placed on the calendar.
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
allDayDefault *1.3.1*
|
||||
=====================
|
||||
|
||||
Determines the default value for each [Event Object]()'s `allDay` property, when it is unspecified.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `true`
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
cacheParam *1.1*
|
||||
================
|
||||
|
||||
A GET parameter of this name will be inserted into each JSON feed's URL to prevent caching.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String, *default*: `'_'`
|
||||
</div>
|
||||
|
||||
The value will be the current millisecond time.
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
clientEvents *1.3*
|
||||
==================
|
||||
|
||||
Retrieves events that FullCalendar has in memory.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'clientEvents' [, *idOrFilter* ] ) -> Array
|
||||
</div>
|
||||
|
||||
This method will return an array of [Event Objects](Event_Object) that FullCalendar has stored
|
||||
in client-side memory.
|
||||
|
||||
If `idOrFilter` is omitted, *all* events will be returned.
|
||||
|
||||
If `idOrFilter` is an ID, all events with the same ID will be returned.
|
||||
|
||||
`idOrFilter` may also be a filter function that accepts one [Event Object]()
|
||||
argument and returns `true` if it should be included in the result set.
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
In versions 1.2 and 1.2.1, this option was known as *getEventsByID*
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
endParam
|
||||
========
|
||||
|
||||
A GET parameter of this name will be inserted into each JSON feed's URL.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String, *default*: `'end'`
|
||||
</div>
|
||||
|
||||
The value of this GET parameter will be a UNIX timestamp denoting the end of the last visible day (exclusive).
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
eventSources *1.2*
|
||||
==================
|
||||
|
||||
A way to specify multiple event sources.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Array
|
||||
</div>
|
||||
|
||||
This option is used instead of the `events` option.
|
||||
It can take an Array of Arrays/Functions/URLs (anything that the `events` option would take).
|
||||
|
||||
Here is an example calendar that displays two [JSON feeds](events_json_feed):
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
eventSources: [
|
||||
'/feed1.php',
|
||||
'/feed2.php'
|
||||
]
|
||||
});
|
||||
|
||||
Here is how you would display two Google Calendars:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
eventSources: [
|
||||
$.fullCalendar.gcalFeed("http://www.google.com/feed1"),
|
||||
$.fullCalendar.gcalFeed("http://www.google.com/feed2")
|
||||
]
|
||||
});
|
||||
|
||||
More info on displaying Google Calendars can be found [here](../google_calendar).
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
events (as an array)
|
||||
====================
|
||||
|
||||
An array of [Event Objects](Event_Object) that will be displayed on the calendar.
|
||||
|
||||
Here is an example of how to specify an array of events:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
events: [
|
||||
{
|
||||
title : 'event1',
|
||||
start : '2010-01-01'
|
||||
},
|
||||
{
|
||||
title : 'event2',
|
||||
start : '2010-01-05',
|
||||
end : '2010-01-07'
|
||||
},
|
||||
{
|
||||
title : 'event3',
|
||||
start : '2010-01-09 12:30:00',
|
||||
allDay : false // will make the time show
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
Make sure you do not have a comma after the last event in your array!
|
||||
It will make Internet Explorer choke.
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
events (as a function)
|
||||
======================
|
||||
|
||||
A custom function for programmatically generating [Event Objects](Event_Object).
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *start*, *end*, *callback* ) { }
|
||||
</div>
|
||||
|
||||
FullCalendar will call this function whenever it needs new event data.
|
||||
This is triggered when the user clicks prev/next or switches views.
|
||||
|
||||
This function will be given `start` and `end` parameters, which are
|
||||
Date objects denoting the range the calendar needs events for.
|
||||
|
||||
It will also be given `callback`, a function that must be called when
|
||||
the custom event function has generated its events. It is the event function's
|
||||
responsibility to make sure `callback` is being called with an array of
|
||||
[Event Objects](Event_Object).
|
||||
|
||||
Here is an example showing how to use an event function to fetch events from
|
||||
an XML feed:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
events: function(start, end, callback) {
|
||||
$.ajax({
|
||||
url: 'myxmlfeed.php',
|
||||
dataType: 'xml',
|
||||
data: {
|
||||
// our hypothetical feed requires UNIX timestamps
|
||||
start: Math.round(start.getTime() / 1000),
|
||||
end: Math.round(end.getTime() / 1000)
|
||||
},
|
||||
success: function(doc) {
|
||||
|
||||
var events = [];
|
||||
|
||||
$(doc).find('event').each(function() {
|
||||
event.push({
|
||||
title: $(this).attr('title'),
|
||||
start: $(this).attr('start') // will be parsed
|
||||
});
|
||||
});
|
||||
|
||||
callback(events);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
However, if you have the choice, JSON is a better idea because you can just specify a
|
||||
[feed URL](events_json_feed).
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
events (as a json feed)
|
||||
=======================
|
||||
|
||||
A URL of a JSON feed that the calendar will fetch [Event Objects](Event_Object) from.
|
||||
|
||||
FullCalendar will visit the URL whenever it needs new event data.
|
||||
This happens when the user clicks prev/next or changes views.
|
||||
FullCalendar will determine the date-range it needs events for and will
|
||||
pass that information along in GET parameters.
|
||||
|
||||
The GET parameter names will be determined by the [startParam]() and [endParam]() options.
|
||||
(`"start"` and `"end"` by default).
|
||||
|
||||
The value of the parameters will always be UNIX timestamps (seconds since 1970).
|
||||
|
||||
Consider the following script:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
events: "/myfeed.php"
|
||||
});
|
||||
|
||||
Here is a URL that FullCalendar might visit:
|
||||
|
||||
`/myfeed.php?start=1262332800&end=1265011200&_=1263178646`
|
||||
|
||||
The `_` parameter is automatically inserted to prevent the browser from
|
||||
caching the result (see [cacheParam]()).
|
||||
|
||||
If you need to access a feed that is in a different domain, you can use JSONP
|
||||
with a `?` in your URL (see the JSONP discussion in [$.ajax](http://api.jquery.com/jQuery.ajax/)).
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
Event Data
|
||||
==========
|
||||
|
||||
<ul>
|
||||
<li class='article'>Event Object</li>
|
||||
<li><a href='events_array'>events</a> <em>(as an array)</em></li>
|
||||
<li><a href='events_json_feed'>events</a> <em>(as a json feed)</em></li>
|
||||
<li><a href='events_function'>events</a> <em>(as a function)</em></li>
|
||||
<li>eventSources</li>
|
||||
<li>allDayDefault</li>
|
||||
<li>startParam</li>
|
||||
<li>endParam</li>
|
||||
<li>cacheParam</li>
|
||||
<li>lazyFetching</li>
|
||||
<li class='callback'><a href='loading'>loading</a> <em>(callback)</em></li>
|
||||
<li class='method'><a href='updateEvent'>updateEvent</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='clientEvents'>clientEvents</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='removeEvents'>removeEvents</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='refetchEvents'>refetchEvents</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='addEventSource'>addEventSource</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='removeEventSource'>removeEventSource</a> <em>(method)</em></li>
|
||||
</ul>
|
||||
|
||||
See also: [renderEvent](../event_rendering/renderEvent) (for adding an event)
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
lazyFetching *1.4.5*
|
||||
====================
|
||||
|
||||
Determines when event fetching should occur.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `true`
|
||||
</div>
|
||||
|
||||
When set to `true` (the default), the calendar will only fetch events when it absolutely
|
||||
needs to, minimizing AJAX calls. For example, say your calendar starts out in month view, in February.
|
||||
FullCalendar will fetch events for the entire month of February and store them in its internal cache.
|
||||
Then, say the user switches to week view and begins browsing the weeks in February.
|
||||
The calendar will avoid fetching events because it already has this information stored.
|
||||
|
||||
When set to `false`, the calendar will fetch events any time the view is switched,
|
||||
or any time the current date changes (for example, as a result of the user clicking prev/next).
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Before this option existed, FullCalendar would always do "lazy" event fetching,
|
||||
as if `lazyFetching` were set to `true`.
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
loading
|
||||
=======
|
||||
|
||||
Triggered when event fetching starts/stops.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *isLoading*, *view* )
|
||||
</div>
|
||||
|
||||
Triggered with a `true` argument when the calendar begins fetching events via AJAX. Triggered with `false` when done.
|
||||
|
||||
`view` is the current [View Object](../views/View_Object).
|
||||
|
||||
This function is often used to show/hide a loading indicator.
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
refetchEvents *1.3*
|
||||
===================
|
||||
|
||||
Refetches events from all sources and rerenders them on the screen.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'refetchEvents' )
|
||||
</div>
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Prior to version 1.3, the same effect was achieved by the *refresh* method.
|
||||
</div>
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
removeEventSource *1.2*
|
||||
=======================
|
||||
|
||||
Dynamically removes an event source.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'removeEventSource', *source* )
|
||||
</div>
|
||||
|
||||
Source must be a reference to the original Array/URL/Function.
|
||||
Events from the source will immediately be removed from the calendar.
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
removeEvents *1.2*
|
||||
==================
|
||||
|
||||
Removes events from the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'removeEvents' [, *idOrFilter* ] )
|
||||
</div>
|
||||
|
||||
If `idOrFilter` is omitted, *all* events are removed.
|
||||
|
||||
If `idOrFilter` is an ID, all events with the same ID will be removed.
|
||||
|
||||
`idOrFilter` may also be a filter function that accepts one [Event Object]()
|
||||
argument and returns `true` if it should be removed.
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
startParam
|
||||
==========
|
||||
|
||||
A GET parameter of this name will be inserted into each JSON feed's URL.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
String, *default*: `'start'`
|
||||
</div>
|
||||
|
||||
The value of this GET parameter will be a UNIX timestamp denoting the start of the first visible day (inclusive).
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
updateEvent *1.2*
|
||||
=================
|
||||
|
||||
Reports changes to an event and renders them on the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'updateEvent', *event* )
|
||||
</div>
|
||||
|
||||
`event` must be the original [Event Object]() for an event,
|
||||
**not** merely a reconstructed object.
|
||||
The original Event Object can obtained by callbacks such as [eventClick](../mouse/eventClick),
|
||||
or by the [clientEvents]() method.
|
||||
|
||||
Here is how you might update an event after a click:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
eventClick: function(event, element) {
|
||||
|
||||
event.title = "CLICKED!";
|
||||
|
||||
$('#calendar').fullCalendar('updateEvent', event);
|
||||
|
||||
}
|
||||
});
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
Event Colors
|
||||
============
|
||||
|
||||
You can modify the default color that affects all events by adding some css in the following form:
|
||||
|
||||
.fc-event,
|
||||
.fc-agenda .fc-event-time,
|
||||
.fc-event a {
|
||||
background-color: black; /* background color */
|
||||
border-color: black; /* border color */
|
||||
color: red; /* text color */
|
||||
}
|
||||
|
||||
You can also change the color for certain events by using the `className` property of each [Event Object](../event_data/Event_Object).
|
||||
Here is an example of the CSS you would write if your `className` was "holiday":
|
||||
|
||||
.holiday,
|
||||
.fc-agenda .holiday .fc-event-time,
|
||||
.holiday a {
|
||||
background-color: green; /* background color */
|
||||
border-color: green; /* border color */
|
||||
color: yellow; /* text color */
|
||||
}
|
||||
|
||||
If you are using the "default" and "className" techniques together,
|
||||
make sure the CSS for the default technique comes first.
|
||||
|
||||
<p class='abstract' style='display:none'>
|
||||
How to change colors of events through CSS.
|
||||
</p>
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Versions prior to 1.3 had different ways of setting colors through CSS.
|
||||
Check your version's *fullcalendar.css* for an example.
|
||||
</div>
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
eventAfterRender *1.4.2*
|
||||
========================
|
||||
|
||||
Triggered after an event has been placed on the calendar in its final position.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *event*, *element*, *view* ) { }
|
||||
</div>
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
eventRender
|
||||
===========
|
||||
|
||||
Triggered while an event is being rendered.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
function( *event*, *element*, *view* ) { }
|
||||
</div>
|
||||
|
||||
`event` is the [Event Object](../event_data/Event_Object) that is attempting to be rendered.
|
||||
|
||||
`element` is a newly created jQuery `<div>` that will be used for rendering.
|
||||
It has already been populated with the correct time/title.
|
||||
|
||||
The `eventRender` callback function can modify `element`, return a brand new
|
||||
DOM element that will be used for rendering instead, or it can return `false`,
|
||||
which will prevent the event from being rendered at all.
|
||||
|
||||
`eventRender` is a great way to attach other jQuery plugins to event elements,
|
||||
such as a [qTip](http://craigsworks.com/projects/qtip/) tooltip effect:
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
events: [
|
||||
{
|
||||
title: 'My Event',
|
||||
start: '2010-01-01',
|
||||
description: 'This is a cool event'
|
||||
}
|
||||
// more events here
|
||||
],
|
||||
eventRender: function(event, element) {
|
||||
element.qtip({
|
||||
content: event.description
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Note that `description` is a non-standard Event Object field, which is allowed.
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
Event Rendering
|
||||
===============
|
||||
|
||||
<ul>
|
||||
<li class='article'>Colors</li>
|
||||
<li class='callback'><a href='eventRender'>eventRender</a> <em>(callback)</em></li>
|
||||
<li class='callback'><a href='eventAfterRender'>eventAfterRender</a> <em>(callback)</em></li>
|
||||
<li class='method'><a href='renderEvent'>renderEvent</a> <em>(method)</em></li>
|
||||
<li class='method'><a href='rerenderEvents'>rerenderEvents</a> <em>(method)</em></li>
|
||||
</ul>
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
renderEvent *1.3*
|
||||
=================
|
||||
|
||||
Renders a new event on the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'renderEvent', *event* [, *stick* ] )
|
||||
</div>
|
||||
|
||||
`event` must be an [Event Object](../event_data/Event_Object) with a `title` and `start` at the very least.
|
||||
|
||||
Normally, the event will disappear once the calendar refetches its event sources (example: when prev/next is clicked).
|
||||
However, specifying `stick` as `true` will cause the event to be permanently fixed to the calendar.
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
rerenderEvents *1.3*
|
||||
====================
|
||||
|
||||
Rerenders all events on the calendar.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
.fullCalendar( 'rerenderEvents' )
|
||||
</div>
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
Prior to version 1.3, the same effect could be achieved by the *refresh* method.
|
||||
</div>
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
Requirements for Event Dragging & Resizing
|
||||
==========================================
|
||||
|
||||
Event dragging and resizing requires the following jQuery UI modules:
|
||||
|
||||
- [Draggable](http://jqueryui.com/demos/draggable/) (the Droppable module is **not** required)
|
||||
- [Resizable](http://jqueryui.com/demos/resizable/)
|
||||
|
||||
These modules can be conveniently bundled/compressed/downloaded at the jQuery UI
|
||||
[downloads page](http://jqueryui.com/download).
|
||||
They are also included in the FullCalendar download in "jquery/jquery-ui-custom.js",
|
||||
all bundled and compressed into one file.
|
||||
|
||||
After you have gathered the dependencies, **you still need to enable dragging/resizing**
|
||||
by settings the [editable]() option to `true`.
|
||||
|
||||
<p class='abstract' style='display:none'>
|
||||
jQuery UI dependencies.
|
||||
</p>
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
disableDragging *1.3*
|
||||
=====================
|
||||
|
||||
Disables all event dragging, even when events are editable.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `false`
|
||||
</div>
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
disableResizing *1.3*
|
||||
=====================
|
||||
|
||||
Disables all event resizing, even when events are editable.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Boolean, *default*: `false`
|
||||
</div>
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
dragOpacity *1.3*
|
||||
=================
|
||||
|
||||
The opacity of an event while it is being dragged.
|
||||
|
||||
<div class='spec' markdown='1'>
|
||||
Float/[View Option Hash](../views/View_Option_Hash), *default*:
|
||||
|
||||
{
|
||||
// for agendaWeek and agendaDay
|
||||
agenda: .5,
|
||||
|
||||
// for all other views
|
||||
'': 1.0
|
||||
}
|
||||
</div>
|
||||
|
||||
Float values range from 0.0 to 1.0.
|
||||
|
||||
Specify a single number to affect all views, or a [View Option Hash](../views/View_Option_Hash) to target specific views
|
||||
(which is what the default does).
|
||||
|
||||
<div class='version-info' markdown='1'>
|
||||
A *View Option Hash* can only be provided in versions 1.4 and later.
|
||||
|
||||
Prior to version 1.3, this option was known as *eventDragOpacity*.
|
||||
</div>
|