A full interactive Calendar UI built for Vanilla JS or use in other frontend frameworks.

#javascript #js #vanillajs #ui #frontend #webdev #website #html #css #jquery

Adam Shaw 069c2377e1 fix broken updateEvent method %!s(int64=12) %!d(string=hai) anos
build fb0202e6a5 update bower shim readme %!s(int64=12) %!d(string=hai) anos
demos 0c6f0ff13c adjust demos to work with PHP 5.2 or higher %!s(int64=12) %!d(string=hai) anos
lang 564ee6a9a9 [2.0] FullCalendar language files %!s(int64=12) %!d(string=hai) anos
src 069c2377e1 fix broken updateEvent method %!s(int64=12) %!d(string=hai) anos
tasks 05ab0a7cf8 [2.0] build system updates, esp for language file generation %!s(int64=12) %!d(string=hai) anos
tests 1c28cf5a5f different behavior when end-time equals nextDayThreshold. tests %!s(int64=12) %!d(string=hai) anos
.bowerrc 9181e8be2e bower components go in lib/, all demos and tests reference them directly %!s(int64=12) %!d(string=hai) anos
.gitignore 9181e8be2e bower components go in lib/, all demos and tests reference them directly %!s(int64=12) %!d(string=hai) anos
Gruntfile.js 3746117815 fix lint problems in misc js files %!s(int64=12) %!d(string=hai) anos
bower.json 316e94412d upgrade to moment 2.5.1 and resolve cloning issue %!s(int64=12) %!d(string=hai) anos
changelog.md 1b12c3a35b update changelog with temporary link to 2.0 Upgrade article %!s(int64=12) %!d(string=hai) anos
fullcalendar.jquery.json 18f41c3550 [2.0] meta file updates %!s(int64=12) %!d(string=hai) anos
jscs.conf.js 3746117815 fix lint problems in misc js files %!s(int64=12) %!d(string=hai) anos
jshint.conf.js 39dd3f08f4 misc comments %!s(int64=12) %!d(string=hai) anos
karma.conf.js 80fe8c1c96 new tests for ambiguous moments, moment construtors, moment range querying %!s(int64=12) %!d(string=hai) anos
license.txt b7e644bf4e change to single MIT license. update banners in source files %!s(int64=13) %!d(string=hai) anos
lumbar.json 1f5b6490a3 break apart date_utils.js %!s(int64=12) %!d(string=hai) anos
package.json b23937a015 setup for code linting and style checking (jshint/jscs) %!s(int64=12) %!d(string=hai) anos
readme.md aecd5a49ed improve readme to include info about style guide %!s(int64=12) %!d(string=hai) anos

readme.md

FullCalendar - Full-sized drag & drop event calendar

This document describes how to modify or contribute to the FullCalendar project. If you are looking for end-developer documentation, please visit the project homepage.

Getting Set Up

You will need Git, Node, and NPM installed. For clarification, please view the jQuery readme, which requires a similar setup.

Also, you will need the grunt-cli and bower packages installed globally (-g) on your system:

npm install -g grunt-cli bower

Then, clone FullCalendar's git repo:

git clone git://github.com/arshaw/fullcalendar.git

Enter the directory and install FullCalendar's development dependencies:

cd fullcalendar && npm install

Development Workflow

After you make code changes, you'll want to compile the JS/CSS so that it can be previewed from the tests and demos. You can either manually rebuild each time you make a change:

grunt dev

Or, you can run a script that automatically rebuilds whenever you save a source file:

./build/watch

You can optionally add the --sourceMap flag to output source maps for debugging.

When you are finished, run the following command to write the distributable files into the ./build/out/ and ./build/dist/ directories:

grunt

If you want to clean up the generated files, run:

grunt clean

Automated Testing

To run automated tests, you must first install karma globally:

npm install -g karma

Then, assuming all your source files have been built (via grunt dev or watch), you can run the tests from a browser:

karma start --single-run

This will output a URL that you can visit in a browser. Alternatively, you can run the tests headlessly:

karma start --single-run --browsers PhantomJS

Style Guide

Please follow the Google JavaScript Style Guide as closely as possible. With the following exceptions:

if (true) {
}
else { // please put else, else if, and catch on a separate line
}

// please write one-line array literals with a one-space padding inside
var a = [ 1, 2, 3 ];

// please write one-line object literals with a one-space padding inside
var o = { a: 1, b: 2, c: 3 };

Other exceptions:

  • please ignore anything about Google Closure Compiler or the goog library
  • please do not write JSDoc comments

Notes about whitespace:

  • use tabs instead of spaces
  • separate functions with 2 blank lines
  • separate logical blocks within functions with 1 blank line

Before Contributing

If you have edited code (including tests and translations) and would like to submit a pull request, please make sure you have successfully ran the automated tests (instructions above) as well as checked your code for any quality/styling errors. To do this, run:

grunt check