Initial Merge
@@ -1,12 +1,8 @@
|
||||
build/archive
|
||||
build/component
|
||||
build/cdn
|
||||
build/temp
|
||||
dist
|
||||
|
||||
# for npm
|
||||
# npm modules
|
||||
node_modules
|
||||
|
||||
# for bower
|
||||
components
|
||||
|
||||
.DS_Store
|
||||
# bower components
|
||||
lib/*/*
|
||||
@@ -10,12 +10,12 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
grunt.loadNpmTasks('grunt-contrib-compress');
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-jscs-checker');
|
||||
grunt.loadNpmTasks('grunt-shell');
|
||||
grunt.loadNpmTasks('grunt-karma');
|
||||
grunt.loadNpmTasks('grunt-bump');
|
||||
grunt.loadNpmTasks('lumbar');
|
||||
|
||||
// Parse config files
|
||||
var lumbarConfig = grunt.file.readJSON('lumbar.json');
|
||||
var packageConfig = grunt.file.readJSON('package.json');
|
||||
var pluginConfig = grunt.file.readJSON('fullcalendar.jquery.json');
|
||||
|
||||
// This will eventually get passed to grunt.initConfig()
|
||||
// Initialize multitasks...
|
||||
@@ -24,17 +24,34 @@ module.exports = function(grunt) {
|
||||
uglify: {},
|
||||
copy: {},
|
||||
compress: {},
|
||||
clean: {}
|
||||
shell: {},
|
||||
clean: {
|
||||
temp: 'build/temp'
|
||||
}
|
||||
};
|
||||
|
||||
// Combine certain configs for the "meta" template variable (<%= meta.whatever %>)
|
||||
config.meta = _.extend({}, packageConfig, pluginConfig);
|
||||
// for the "meta" template variable (<%= meta.whatever %>)
|
||||
config.meta = grunt.file.readJSON('fullcalendar.jquery.json');
|
||||
|
||||
// The "grunt" command with no arguments
|
||||
grunt.registerTask('default', 'archive');
|
||||
grunt.registerTask('default', 'dist');
|
||||
|
||||
// Builds all distributable files, for a new release possibly
|
||||
grunt.registerTask('dist', [
|
||||
'clean',
|
||||
'modules',
|
||||
'languages',
|
||||
'karma:single',
|
||||
'archiveDist',
|
||||
'cdnjsDist'
|
||||
]);
|
||||
|
||||
// Bare minimum for debugging
|
||||
grunt.registerTask('dev', 'lumbar:build');
|
||||
grunt.registerTask('dev', [
|
||||
'shell:assume-unchanged',
|
||||
'lumbar:build',
|
||||
'languages'
|
||||
]);
|
||||
|
||||
|
||||
|
||||
@@ -42,8 +59,11 @@ module.exports = function(grunt) {
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
grunt.registerTask('modules', 'Build the FullCalendar modules', [
|
||||
'jscs:srcModules',
|
||||
'clean:modules',
|
||||
'lumbar:build',
|
||||
'concat:moduleVariables',
|
||||
'jshint:builtModules',
|
||||
'uglify:modules'
|
||||
]);
|
||||
|
||||
@@ -51,7 +71,14 @@ module.exports = function(grunt) {
|
||||
config.lumbar = {
|
||||
build: {
|
||||
build: 'lumbar.json',
|
||||
output: 'build/out' // a directory. lumbar doesn't like trailing slash
|
||||
output: 'dist', // a directory. lumbar doesn't like trailing slash
|
||||
background: false // lumbar complains otherwise
|
||||
},
|
||||
watch: {
|
||||
watch: 'lumbar.json',
|
||||
output: 'dist', // a directory. lumbar doesn't like trailing slash
|
||||
background: false, // lumbar complains otherwise
|
||||
sourceMap: true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -61,9 +88,9 @@ module.exports = function(grunt) {
|
||||
process: true // replace
|
||||
},
|
||||
expand: true,
|
||||
cwd: 'build/out/',
|
||||
src: [ '*.js', '*.css', '!jquery*' ],
|
||||
dest: 'build/out/'
|
||||
cwd: 'dist/',
|
||||
src: [ '*.js', '*.css' ],
|
||||
dest: 'dist/'
|
||||
};
|
||||
|
||||
// create minified versions (*.min.js)
|
||||
@@ -72,11 +99,69 @@ module.exports = function(grunt) {
|
||||
preserveComments: 'some' // keep comments starting with /*!
|
||||
},
|
||||
expand: true,
|
||||
src: 'build/out/fullcalendar.js', // only do it for fullcalendar.js
|
||||
src: 'dist/fullcalendar.js', // only do it for fullcalendar.js
|
||||
ext: '.min.js'
|
||||
}
|
||||
};
|
||||
|
||||
config.clean.modules = 'build/out/*';
|
||||
config.clean.modules = [
|
||||
'dist/*.{js,css,map}', // maps created by lumbar sourceMap
|
||||
'dist/src' // created by lumbar sourceMap
|
||||
];
|
||||
|
||||
|
||||
|
||||
/* Languages
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
grunt.registerTask('languages', [
|
||||
'jscs:srcLanguages',
|
||||
'jshint:srcLanguages',
|
||||
'clean:languages',
|
||||
'generateLanguages',
|
||||
'uglify:languages',
|
||||
'uglify:languagesAll'
|
||||
]);
|
||||
|
||||
config.generateLanguages = {
|
||||
moment: 'lib/moment/lang/',
|
||||
datepicker: 'lib/jquery-ui/ui/i18n/',
|
||||
fullCalendar: 'lang/',
|
||||
dest: 'build/temp/lang/',
|
||||
allDest: 'build/temp/lang-all.js'
|
||||
};
|
||||
|
||||
config.uglify.languages = {
|
||||
expand: true,
|
||||
cwd: 'build/temp/lang/',
|
||||
src: '*.js',
|
||||
dest: 'dist/lang/'
|
||||
};
|
||||
|
||||
config.uglify.languagesAll = {
|
||||
src: 'build/temp/lang-all.js',
|
||||
dest: 'dist/lang-all.js'
|
||||
};
|
||||
|
||||
config.clean.languages = [
|
||||
'build/temp/lang',
|
||||
'build/temp/lang-all.js',
|
||||
'dist/lang',
|
||||
'dist/lang-all.js'
|
||||
];
|
||||
|
||||
|
||||
|
||||
/* Automated Tests
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
config.karma = {
|
||||
options: {
|
||||
configFile: 'build/karma.conf.js'
|
||||
},
|
||||
url: {}, // visit a URL in a browser
|
||||
headless: { browsers: [ 'PhantomJS' ] },
|
||||
single: { browsers: [ 'PhantomJS' ], singleRun: true, autoWatch: false }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -84,12 +169,22 @@ module.exports = function(grunt) {
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
grunt.registerTask('archive', 'Create a distributable ZIP archive', [
|
||||
'clean:modules',
|
||||
'clean:archive',
|
||||
'modules',
|
||||
'languages',
|
||||
'karma:single',
|
||||
'archiveDist'
|
||||
]);
|
||||
|
||||
grunt.registerTask('archiveDist', [
|
||||
'clean:archive',
|
||||
'copy:archiveModules',
|
||||
'copy:archiveDependencies',
|
||||
'copy:archiveLanguages',
|
||||
'copy:archiveLanguagesAll',
|
||||
'copy:archiveMoment',
|
||||
'copy:archiveJQuery',
|
||||
'concat:archiveJQueryUI',
|
||||
'copy:archiveDemos',
|
||||
'copy:archiveDemoTheme',
|
||||
'copy:archiveMisc',
|
||||
'compress:archive'
|
||||
]);
|
||||
@@ -97,27 +192,47 @@ module.exports = function(grunt) {
|
||||
// copy FullCalendar modules into ./fullcalendar/ directory
|
||||
config.copy.archiveModules = {
|
||||
expand: true,
|
||||
cwd: 'build/out/',
|
||||
src: [ '*.js', '*.css', '!jquery*' ],
|
||||
dest: 'build/archive/fullcalendar/'
|
||||
cwd: 'dist/',
|
||||
src: [ '*.js', '*.css' ],
|
||||
dest: 'build/temp/archive/'
|
||||
};
|
||||
|
||||
// copy jQuery and jQuery UI into the ./jquery/ directory
|
||||
config.copy.archiveDependencies = {
|
||||
config.copy.archiveLanguages = {
|
||||
expand: true,
|
||||
flatten: true,
|
||||
cwd: 'dist/lang/',
|
||||
src: '*.js',
|
||||
dest: 'build/temp/archive/lang/'
|
||||
};
|
||||
|
||||
config.copy.archiveLanguagesAll = {
|
||||
src: 'dist/lang-all.js',
|
||||
dest: 'build/temp/archive/lang-all.js'
|
||||
};
|
||||
|
||||
config.copy.archiveMoment = {
|
||||
src: 'lib/moment/min/moment.min.js',
|
||||
dest: 'build/temp/archive/lib/moment.min.js'
|
||||
};
|
||||
|
||||
config.copy.archiveJQuery = {
|
||||
src: 'lib/jquery/dist/jquery.min.js',
|
||||
dest: 'build/temp/archive/lib/jquery.min.js'
|
||||
};
|
||||
|
||||
config.concat.archiveJQueryUI = {
|
||||
src: [
|
||||
// we want to retain the original filenames
|
||||
lumbarConfig.modules['jquery'].scripts[0],
|
||||
lumbarConfig.modules['jquery-ui'].scripts[0]
|
||||
'lib/jquery-ui/ui/minified/jquery.ui.core.min.js',
|
||||
'lib/jquery-ui/ui/minified/jquery.ui.widget.min.js',
|
||||
'lib/jquery-ui/ui/minified/jquery.ui.mouse.min.js',
|
||||
'lib/jquery-ui/ui/minified/jquery.ui.draggable.min.js',
|
||||
'lib/jquery-ui/ui/minified/jquery.ui.resizable.min.js'
|
||||
],
|
||||
dest: 'build/archive/jquery/'
|
||||
dest: 'build/temp/archive/lib/jquery-ui.custom.min.js'
|
||||
};
|
||||
|
||||
// copy demo files into ./demos/ directory
|
||||
config.copy.archiveDemos = {
|
||||
options: {
|
||||
processContentExclude: 'demos/*/**', // don't process anything more than 1 level deep (like assets)
|
||||
processContent: function(content) {
|
||||
content = content.replace(/((?:src|href)=['"])([^'"]*)(['"])/g, function(m0, m1, m2, m3) {
|
||||
return m1 + transformDemoPath(m2) + m3;
|
||||
@@ -126,23 +241,34 @@ module.exports = function(grunt) {
|
||||
}
|
||||
},
|
||||
src: 'demos/**',
|
||||
dest: 'build/archive/'
|
||||
dest: 'build/temp/archive/'
|
||||
};
|
||||
|
||||
// copy the "cupertino" jquery-ui theme into the demo directory (for demos/theme.html)
|
||||
config.copy.archiveDemoTheme = {
|
||||
expand: true,
|
||||
cwd: 'lib/jquery-ui/themes/cupertino/',
|
||||
src: [ 'jquery-ui.min.css', 'images/*' ],
|
||||
dest: 'build/temp/archive/lib/cupertino/'
|
||||
};
|
||||
|
||||
// in demo HTML, rewrites paths to work in the archive
|
||||
function transformDemoPath(path) {
|
||||
path = path.replace('/build/out/jquery.js', '/' + lumbarConfig.modules['jquery'].scripts[0]);
|
||||
path = path.replace('/build/out/jquery-ui.js', '/' + lumbarConfig.modules['jquery-ui'].scripts[0]);
|
||||
path = path.replace('/lib/', '/jquery/');
|
||||
path = path.replace('/build/out/', '/fullcalendar/');
|
||||
path = path.replace('../lib/moment/moment.js', '../lib/moment.min.js');
|
||||
path = path.replace('../lib/jquery/dist/jquery.js', '../lib/jquery.min.js');
|
||||
path = path.replace('../lib/jquery-ui/ui/jquery-ui.js', '../lib/jquery-ui.custom.min.js');
|
||||
path = path.replace('../lib/jquery-ui/themes/cupertino/', '../lib/cupertino/');
|
||||
path = path.replace('../dist/', '../');
|
||||
path = path.replace('/fullcalendar.js', '/fullcalendar.min.js');
|
||||
return path;
|
||||
}
|
||||
|
||||
// copy license and changelog
|
||||
config.copy.archiveMisc = {
|
||||
src: "*.txt",
|
||||
dest: 'build/archive/'
|
||||
files: {
|
||||
'build/temp/archive/license.txt': 'license.txt',
|
||||
'build/temp/archive/changelog.txt': 'changelog.md'
|
||||
}
|
||||
};
|
||||
|
||||
// create the ZIP
|
||||
@@ -151,94 +277,126 @@ module.exports = function(grunt) {
|
||||
archive: 'dist/<%= meta.name %>-<%= meta.version %>.zip'
|
||||
},
|
||||
expand: true,
|
||||
cwd: 'build/archive/',
|
||||
cwd: 'build/temp/archive/',
|
||||
src: '**',
|
||||
dest: '<%= meta.name %>-<%= meta.version %>/' // have a top-level directory in the ZIP file
|
||||
};
|
||||
|
||||
config.clean.archive = 'build/archive/*';
|
||||
config.clean.dist = 'dist/*';
|
||||
config.clean.archive = [
|
||||
'build/temp/archive',
|
||||
'dist/*.zip'
|
||||
];
|
||||
|
||||
|
||||
|
||||
/* Bower Component (http://twitter.github.com/bower/)
|
||||
/* Release Utilities
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
grunt.registerTask('component', 'Build the FullCalendar component for the Bower package manager', [
|
||||
'clean:modules',
|
||||
'clean:component',
|
||||
'modules',
|
||||
'copy:componentModules',
|
||||
'copy:componentReadme',
|
||||
'componentConfig'
|
||||
]);
|
||||
|
||||
// copy FullCalendar modules into component root
|
||||
config.copy.componentModules = {
|
||||
expand: true,
|
||||
cwd: 'build/out/',
|
||||
src: [ '*.js', '*.css', '!jquery*' ],
|
||||
dest: 'build/component/'
|
||||
config.bump = { // changes the version number in the configs
|
||||
options: {
|
||||
files: [
|
||||
'package.json',
|
||||
'bower.json',
|
||||
'fullcalendar.jquery.json'
|
||||
],
|
||||
commit: false,
|
||||
createTag: false,
|
||||
push: false
|
||||
}
|
||||
};
|
||||
|
||||
// copy the component-specific README
|
||||
config.copy.componentReadme = {
|
||||
src: 'build/component-readme.md',
|
||||
dest: 'build/component/readme.md'
|
||||
};
|
||||
|
||||
// assemble the component's config from existing configs
|
||||
grunt.registerTask('componentConfig', function() {
|
||||
var config = grunt.file.readJSON('build/component.json');
|
||||
grunt.file.write(
|
||||
'build/component/component.json',
|
||||
JSON.stringify(
|
||||
_.extend({}, pluginConfig, config), // combine 2 configs
|
||||
null, // replacer
|
||||
2 // indent
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
config.clean.component = 'build/component/*';
|
||||
|
||||
|
||||
|
||||
/* CDN (http://cdnjs.com/)
|
||||
/* CDNJS (http://cdnjs.com/)
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
grunt.registerTask('cdn', 'Build files for CDNJS\'s hosted version of FullCalendar', [
|
||||
'clean:modules',
|
||||
'clean:cdn',
|
||||
grunt.registerTask('cdnjs', 'Build files for CDNJS\'s hosted version of FullCalendar', [
|
||||
'modules',
|
||||
'copy:cdnModules',
|
||||
'cdnConfig'
|
||||
'languages',
|
||||
'karma:single',
|
||||
'cdnjsDist'
|
||||
]);
|
||||
|
||||
config.copy.cdnModules = {
|
||||
grunt.registerTask('cdnjsDist', [
|
||||
'clean:cdnjs',
|
||||
'copy:cdnjsModules',
|
||||
'copy:cdnjsLanguages',
|
||||
'copy:cdnjsLanguagesAll',
|
||||
'cdnjsConfig'
|
||||
]);
|
||||
|
||||
config.copy.cdnjsModules = {
|
||||
expand: true,
|
||||
cwd: 'build/out/',
|
||||
src: [ '*.js', '*.css', '!jquery*' ],
|
||||
dest: 'build/cdn/<%= meta.version %>/'
|
||||
cwd: 'dist/',
|
||||
src: [ '*.js', '*.css' ],
|
||||
dest: 'dist/cdnjs/<%= meta.version %>/'
|
||||
};
|
||||
|
||||
grunt.registerTask('cdnConfig', function() {
|
||||
var config = grunt.file.readJSON('build/cdn.json');
|
||||
config.copy.cdnjsLanguages = {
|
||||
expand: true,
|
||||
cwd: 'dist/lang/',
|
||||
src: '*.js',
|
||||
dest: 'dist/cdnjs/<%= meta.version %>/lang/'
|
||||
};
|
||||
|
||||
config.copy.cdnjsLanguagesAll = {
|
||||
src: 'dist/lang-all.js',
|
||||
dest: 'dist/cdnjs/<%= meta.version %>/lang-all.js'
|
||||
};
|
||||
|
||||
grunt.registerTask('cdnjsConfig', function() {
|
||||
var jqueryConfig = grunt.file.readJSON('fullcalendar.jquery.json');
|
||||
var cdnjsConfig = grunt.file.readJSON('build/cdnjs.json');
|
||||
grunt.file.write(
|
||||
'build/cdn/package.json',
|
||||
'dist/cdnjs/package.json',
|
||||
JSON.stringify(
|
||||
_.extend({}, pluginConfig, config), // combine 2 configs
|
||||
_.extend({}, jqueryConfig, cdnjsConfig), // combine 2 configs
|
||||
null, // replace
|
||||
2 // indent
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
config.clean.cdn = 'build/cdn/<%= meta.version %>/*';
|
||||
// NOTE: not a complete clean. also need to manually worry about package.json and version folders
|
||||
config.clean.cdnjs = 'dist/cdnjs';
|
||||
|
||||
|
||||
|
||||
/* Linting and Code Style Checking
|
||||
----------------------------------------------------------------------------------------------------*/
|
||||
|
||||
grunt.registerTask('check', 'Lint and check code style', [
|
||||
'jscs',
|
||||
'jshint:srcModules', // so we can fix most quality errors in their original files
|
||||
'lumbar:build',
|
||||
'jshint' // will run srcModules again but oh well
|
||||
]);
|
||||
|
||||
// configs located elsewhere
|
||||
config.jshint = require('./build/jshint.conf');
|
||||
config.jscs = require('./build/jscs.conf');
|
||||
|
||||
|
||||
|
||||
/* dist & git hacks
|
||||
----------------------------------------------------------------------------------------------------
|
||||
// These shell commands are used to force/unforce git from thinking that files have changed.
|
||||
// Used to ignore changes when dist files are overwritten, but not committed, during development.
|
||||
*/
|
||||
|
||||
config.shell['assume-unchanged'] = {
|
||||
command: 'git update-index --assume-unchanged `git ls-files dist`'
|
||||
};
|
||||
config.shell['no-assume-unchanged'] = {
|
||||
command: 'git update-index --no-assume-unchanged `git ls-files dist`'
|
||||
};
|
||||
config.shell['list-assume-unchanged'] = {
|
||||
command: 'git ls-files -v | grep \'^h\''
|
||||
};
|
||||
|
||||
|
||||
|
||||
// finally, give grunt the config object...
|
||||
grunt.initConfig(config);
|
||||
|
||||
grunt.loadTasks('./build/tasks/');
|
||||
};
|
||||
|
||||
@@ -1,39 +1,35 @@
|
||||
{
|
||||
"name": "fullcalendar",
|
||||
"version": "1.6.3",
|
||||
"dependencies": {
|
||||
"jquery": "~1.10.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"jquery-ui": "~1.10.3"
|
||||
},
|
||||
"title": "FullCalendar",
|
||||
"description": "Full-sized drag & drop event calendar with resource views",
|
||||
"keywords": [
|
||||
"calendar",
|
||||
"event",
|
||||
"full-sized",
|
||||
"Resources"
|
||||
],
|
||||
"version": "2.0.2",
|
||||
|
||||
"description": "Full-sized drag & drop event calendar",
|
||||
"keywords": [ "calendar", "event", "full-sized" ],
|
||||
"homepage": "http://arshaw.com/fullcalendar/",
|
||||
"demo": "",
|
||||
"docs": "http://arshaw.com/fullcalendar/docs/",
|
||||
"download": "",
|
||||
"bugs": "https://github.com/seankenny/fullcalendar/issues",
|
||||
"licenses": [
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "https://github.com/seankenny/fullcalendar/blob/master/license.txt"
|
||||
}
|
||||
],
|
||||
"author": {
|
||||
"name": "Adam Shaw, Sean Kenny",
|
||||
"email": "srkenny@gmail.com",
|
||||
"url": "http://seankenny.me/"
|
||||
|
||||
"dependencies": {
|
||||
"jquery": ">=1.7.1",
|
||||
"moment": ">=2.5.0"
|
||||
},
|
||||
"copyright": "2013 Adam Shaw, Sean Kenny - resource view",
|
||||
"devDependencies": {
|
||||
"jquery-ui": "1.8.17 - 1.10.4",
|
||||
"jquery-simulate-ext": "~1.3.0",
|
||||
"jquery-mockjax": "~1.5.3",
|
||||
"jasmine-jquery": "~2.0.3",
|
||||
"jasmine-fixture": "~1.2.0",
|
||||
"moment-timezone": "~0.0.6"
|
||||
},
|
||||
|
||||
"main": [
|
||||
"/build/component/fullcalendar.js",
|
||||
"/build/component/fullcalendar.css"
|
||||
"/dist/fullcalendar.js",
|
||||
"/dist/fullcalendar.css"
|
||||
],
|
||||
"ignore": [
|
||||
"*",
|
||||
"**/.*",
|
||||
"!/dist/**",
|
||||
"!/bower.json",
|
||||
"!/changelog.*",
|
||||
"!/license.*",
|
||||
"!/readme.*"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "`dirname $0`/.."
|
||||
proj_dir="$PWD"
|
||||
|
||||
echo
|
||||
echo "This script assumes the following:"
|
||||
echo "1. You have run the release script"
|
||||
echo "2. You have a clone of CDNJS's repo with remotes 'upstream' and 'origin'"
|
||||
echo "3. You have initialized CDNJS's repo with 'npm install'"
|
||||
echo
|
||||
|
||||
# 1. make a fork of cdnjs on github
|
||||
# 2. clone the fork from github (which will be the 'origin')
|
||||
# 3. `git remote add upstream git@github.com:cdnjs/cdnjs.git`
|
||||
|
||||
version=$(sed -n 's/^.*"version" *: *"\([^"]*\)".*$/\1/p' package.json)
|
||||
cdnjs_dir="$HOME/Scratch/cdnjs"
|
||||
|
||||
echo "FullCalendar version: $version"
|
||||
echo "Default CDNJS directory: $cdnjs_dir"
|
||||
echo
|
||||
|
||||
echo "Enter the location of the CDNJS directory. To keep the default, press enter."
|
||||
read cdnjs_dir_override
|
||||
|
||||
if [[ "$cdnjs_dir_override" ]]
|
||||
then
|
||||
cdnjs_dir="$cdnjs_dir_override"
|
||||
fi
|
||||
|
||||
echo "Updating local copy of CDNJS..." && \
|
||||
cd "$cdnjs_dir" && \
|
||||
git pull upstream master && \
|
||||
\
|
||||
echo "Copying over our changes..." && \
|
||||
cd "$proj_dir" && \
|
||||
cp -r -f dist/cdnjs/* "$cdnjs_dir/ajax/libs/fullcalendar/" && \
|
||||
\
|
||||
echo "Running CDNJS's tests..." && \
|
||||
cd "$cdnjs_dir" && \
|
||||
npm test && \
|
||||
\
|
||||
echo "Building commit..." && \
|
||||
git add "ajax/libs/fullcalendar/" && \
|
||||
git commit -e -m "fullcalendar v$version" && \
|
||||
echo && \
|
||||
echo 'DONE. It is now up to you to run `'"cd $cdnjs_dir && git push origin master"'` and submit the PR to CDNJS.' && \
|
||||
echo
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
FullCalendar Component
|
||||
======================
|
||||
|
||||
This repo is the official [Bower](http://twitter.github.com/bower/) component endpoint for the
|
||||
[FullCalendar Project](http://arshaw.com/fullcalendar/).
|
||||
It is a shim repo that has been generated by running the `grunt component` command in the
|
||||
main development repo.
|
||||
|
||||
[Visit the development repo](https://github.com/arshaw/fullcalendar)
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"main": [
|
||||
"./fullcalendar.js",
|
||||
"./fullcalendar.css"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
read -p "Enter new year (4 digits): " year
|
||||
read -p "Enter new month (2 digits): " month
|
||||
read -p "This will modify files in the demos folder, is that ok? (y/n): " yn
|
||||
|
||||
if [[ $yn != "y" ]]
|
||||
then
|
||||
exit
|
||||
fi
|
||||
|
||||
find "`dirname $0`/../demos" -type f \( -name '*.html' -o -name '*.json' \) -print0 \
|
||||
| xargs -0 sed -i '' -e "s/[0-9][0-9][0-9][0-9]-[0-9][0-9]/$year-$month/g"
|
||||
|
||||
echo "DONE"
|
||||
@@ -0,0 +1,53 @@
|
||||
module.exports = {
|
||||
|
||||
options: {
|
||||
requireCurlyBraces: [ 'if', 'else', 'for', 'while', 'do', 'try', 'catch' ],
|
||||
requireSpacesInFunctionExpression: { beforeOpeningCurlyBrace: true },
|
||||
disallowSpacesInFunctionExpression: { beforeOpeningRoundBrace: true },
|
||||
disallowSpacesInsideParentheses: true,
|
||||
requireSpacesInsideObjectBrackets: 'all',
|
||||
disallowQuotedKeysInObjects: 'allButReserved',
|
||||
disallowSpaceAfterObjectKeys: true,
|
||||
requireCommaBeforeLineBreak: true,
|
||||
requireOperatorBeforeLineBreak: [ '?', '+', '-', '/', '*', '=', '==', '===', '!=', '!==', '>', '>=', '<', '<=' ],
|
||||
disallowLeftStickedOperators: [ '?' ],
|
||||
requireRightStickedOperators: [ '!' ],
|
||||
requireLeftStickedOperators: [ ',' ],
|
||||
disallowRightStickedOperators: [ ':' ],
|
||||
disallowSpaceAfterPrefixUnaryOperators: [ '++', '--', '+', '-', '~', '!' ],
|
||||
disallowSpaceBeforePostfixUnaryOperators: [ '++', '--' ],
|
||||
requireCamelCaseOrUpperCaseIdentifiers: true,
|
||||
disallowKeywords: [ 'with' ],
|
||||
disallowMultipleLineStrings: true,
|
||||
requireDotNotation: true,
|
||||
requireParenthesesAroundIIFE: true
|
||||
},
|
||||
|
||||
srcModules: [
|
||||
'src/**/*.js',
|
||||
'!**/intro.js',
|
||||
'!**/outro.js'
|
||||
],
|
||||
|
||||
srcLanguages: 'lang/*.js',
|
||||
|
||||
tests: {
|
||||
options: {
|
||||
// more restrictions.
|
||||
// we eventually want these to apply to all other code too.
|
||||
requireSpaceAfterKeywords: [ 'if', 'else', 'for', 'while', 'do', 'switch', 'return', 'try', 'catch' ],
|
||||
requireSpacesInsideArrayBrackets: 'all',
|
||||
requireKeywordsOnNewLine: [ 'else', 'catch' ],
|
||||
disallowTrailingWhitespace: true,
|
||||
validateQuoteMarks: '\'',
|
||||
maximumLineLength: 120
|
||||
},
|
||||
src: 'tests/automated/*.js'
|
||||
},
|
||||
|
||||
misc: [
|
||||
'*.js', // ex: Gruntfile.js
|
||||
'build/*.js' // ex: this file
|
||||
]
|
||||
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
module.exports = {
|
||||
|
||||
options: {
|
||||
browser: true,
|
||||
globals: {
|
||||
// `false` means read-only
|
||||
define: false,
|
||||
moment: false,
|
||||
jQuery: false
|
||||
},
|
||||
es3: true,
|
||||
bitwise: true,
|
||||
camelcase: true,
|
||||
curly: true,
|
||||
forin: true,
|
||||
freeze: true,
|
||||
immed: true,
|
||||
noarg: true,
|
||||
smarttabs: true,
|
||||
trailing: true,
|
||||
eqnull: true,
|
||||
'-W032': true, // Unnecessary semicolon. (lumbar's ;;)
|
||||
'-W008': true // A leading decimal point can be confused with a dot (ex: .5)
|
||||
},
|
||||
|
||||
srcModules: [
|
||||
'src/**/*.js',
|
||||
'!**/intro.js', // exclude
|
||||
'!**/outro.js' //
|
||||
],
|
||||
|
||||
builtModules: {
|
||||
options: {
|
||||
// Built modules are ready to be checked for...
|
||||
undef: true, // use of undeclared globals
|
||||
unused: 'vars', // functions/variables (excluding function arguments) that are never used
|
||||
latedef: 'nofunc' // variables that are referenced before their `var` statement
|
||||
},
|
||||
src: [
|
||||
'dist/*.js',
|
||||
'!**/*.min.js', // exclude
|
||||
'!**/lang-all.js' //
|
||||
]
|
||||
},
|
||||
|
||||
srcLanguages: 'lang/*.js',
|
||||
|
||||
tests: 'tests/automated/*.js',
|
||||
|
||||
misc: [
|
||||
'*.js', // ex: Gruntfile.js
|
||||
'build/*.js' // ex: this file
|
||||
]
|
||||
|
||||
};
|
||||
@@ -0,0 +1,79 @@
|
||||
|
||||
module.exports = function(config) {
|
||||
config.set({
|
||||
|
||||
// base path, that will be used to resolve files and exclude
|
||||
basePath: '',
|
||||
|
||||
// frameworks to use
|
||||
frameworks: [ 'jasmine' ],
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
|
||||
// For IE8 testing. Because doesn't have forEach and other ES5 methods
|
||||
// which are common in the tests.
|
||||
// You must run `bower install es5-shim` first.
|
||||
//'../lib/es5-shim/es5-shim.js',
|
||||
|
||||
// For IE8 testing, we'll need jQuery 1.x. Before running karma, force the version:
|
||||
// `bower install jquery#1` and choose 1
|
||||
// to undo: `bower update jquery`
|
||||
|
||||
'../lib/moment/moment.js',
|
||||
'../lib/jquery/dist/jquery.js',
|
||||
'../lib/jquery-ui/ui/jquery-ui.js',
|
||||
|
||||
// for jquery simulate
|
||||
'../lib/jquery-simulate-ext/libs/bililiteRange.js',
|
||||
'../lib/jquery-simulate-ext/libs/jquery.simulate.js',
|
||||
'../lib/jquery-simulate-ext/src/jquery.simulate.ext.js',
|
||||
'../lib/jquery-simulate-ext/src/jquery.simulate.drag-n-drop.js',
|
||||
'../lib/jquery-simulate-ext/src/jquery.simulate.key-sequence.js',
|
||||
'../lib/jquery-simulate-ext/src/jquery.simulate.key-combo.js',
|
||||
'../tests/lib/jquery-simulate-hacks.js', // needs to be last
|
||||
|
||||
'../lib/jquery-mockjax/jquery.mockjax.js',
|
||||
'../lib/jasmine-jquery/lib/jasmine-jquery.js',
|
||||
'../lib/jasmine-fixture/dist/jasmine-fixture.js',
|
||||
'../tests/lib/jasmine-ext.js',
|
||||
|
||||
'../dist/fullcalendar.js',
|
||||
'../dist/gcal.js',
|
||||
'../dist/lang-all.js',
|
||||
'../dist/fullcalendar.css',
|
||||
'../tests/base.css',
|
||||
|
||||
// For IE8 testing. Because it can't handle running all the tests at once.
|
||||
// Comment out the *.js line and run karma with each of the lines below.
|
||||
//'../tests/automated/{a,b,c,d,e,f,g,h,i,j,k,l}*.js'
|
||||
//'../tests/automated/{m,n}*.js' // mostly moment tests
|
||||
//'../tests/automated/{o,p,q,r,s,t,u,v,w,x,y,z}*.js'
|
||||
|
||||
'../tests/automated/*.js'
|
||||
],
|
||||
|
||||
// list of files to exclude
|
||||
exclude: [],
|
||||
|
||||
// test results reporter to use
|
||||
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
|
||||
reporters: [ 'dots' ],
|
||||
|
||||
// web server port
|
||||
port: 9876,
|
||||
|
||||
// enable / disable colors in the output (reporters and logs)
|
||||
colors: true,
|
||||
|
||||
// level of logging
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_INFO,
|
||||
|
||||
// enable / disable watching file and executing tests whenever any file changes
|
||||
autoWatch: true,
|
||||
|
||||
// If browser does not capture in given timeout [ms], kill it
|
||||
captureTimeout: 60000
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "`dirname $0`/.."
|
||||
|
||||
read -p "Enter the new version number with no 'v' (for example '1.0.1'): " version
|
||||
|
||||
if [[ ! "$version" ]]
|
||||
then
|
||||
exit
|
||||
fi
|
||||
|
||||
grunt bump --setversion=$version && \
|
||||
grunt dist && \
|
||||
grunt shell:no-assume-unchanged && \
|
||||
git add -f dist/*.js dist/*.css dist/lang/*.js && \
|
||||
git commit -a -e -m "version $version" && \
|
||||
git tag -a v$version -m "version $version"
|
||||
|
||||
status=$?
|
||||
|
||||
# regardless of error/success, undo the temporary no-assume-unchanged
|
||||
git reset
|
||||
grunt shell:assume-unchanged
|
||||
|
||||
if [ $status -eq 0 ]
|
||||
then
|
||||
echo
|
||||
echo 'DONE. It is now up to you to run `'"git push origin master && git push origin v$version"'`'
|
||||
echo
|
||||
fi
|
||||
@@ -0,0 +1,209 @@
|
||||
var pathLib = require('path');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
var config = grunt.config('generateLanguages');
|
||||
|
||||
|
||||
grunt.registerTask('generateLanguages', function() {
|
||||
|
||||
var combinedJS = '';
|
||||
var languageCnt = 0;
|
||||
var skippedLangCodes = [];
|
||||
|
||||
grunt.file.mkdir(config.dest, 0755);
|
||||
|
||||
grunt.file.expand(pathLib.join(config.moment, '*.js')).forEach(function(momentPath) {
|
||||
|
||||
var langCode = momentPath.match(/([^\/]*)\.js$/)[1];
|
||||
var js = getLangJS(langCode, momentPath);
|
||||
|
||||
if (js) {
|
||||
|
||||
grunt.file.write(
|
||||
pathLib.join(config.dest, langCode + '.js'),
|
||||
wrapWithUMD(js)
|
||||
);
|
||||
|
||||
combinedJS += wrapWithClosure(js) + '\n';
|
||||
|
||||
languageCnt++;
|
||||
}
|
||||
else {
|
||||
skippedLangCodes.push(langCode);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// code for resetting the language back to English
|
||||
combinedJS += '\nmoment.lang("en");';
|
||||
combinedJS += '\n$.fullCalendar.lang("en");';
|
||||
combinedJS += '\nif ($.datepicker) $.datepicker.setDefaults($.datepicker.regional[""]);';
|
||||
|
||||
if (config.allDest) {
|
||||
grunt.file.write(config.allDest, wrapWithUMD(combinedJS));
|
||||
}
|
||||
|
||||
grunt.log.writeln(skippedLangCodes.length + ' skipped languages: ' + skippedLangCodes.join(', '));
|
||||
grunt.log.writeln(languageCnt + ' generated languages.');
|
||||
|
||||
});
|
||||
|
||||
|
||||
function getLangJS(langCode, momentPath) {
|
||||
|
||||
var shortLangCode;
|
||||
var momentLangJS;
|
||||
var datepickerLangJS;
|
||||
var fullCalendarLangJS;
|
||||
|
||||
// given "fr-ca", get just "fr"
|
||||
if (langCode.indexOf('-') != -1) {
|
||||
shortLangCode = langCode.replace(/-.*/, '');
|
||||
}
|
||||
|
||||
momentLangJS = getMomentLangJS(momentPath);
|
||||
|
||||
datepickerLangJS = getDatepickerLangJS(langCode);
|
||||
if (!datepickerLangJS && shortLangCode) {
|
||||
datepickerLangJS = getDatepickerLangJS(shortLangCode, langCode);
|
||||
}
|
||||
|
||||
fullCalendarLangJS = getFullCalendarLangJS(langCode);
|
||||
if (!fullCalendarLangJS && shortLangCode) {
|
||||
fullCalendarLangJS = getFullCalendarLangJS(shortLangCode, langCode);
|
||||
}
|
||||
|
||||
// If this is an "en" language, only the Moment config is needed.
|
||||
// For all other languages, all 3 configs are needed.
|
||||
if (momentLangJS && (shortLangCode == 'en' || (datepickerLangJS && fullCalendarLangJS))) {
|
||||
|
||||
// if there is no definition, we still need to tell FC to set the default
|
||||
if (!fullCalendarLangJS) {
|
||||
fullCalendarLangJS = '$.fullCalendar.lang("' + langCode + '");';
|
||||
}
|
||||
|
||||
datepickerLangJS = datepickerLangJS || '';
|
||||
|
||||
return momentLangJS + '\n' +
|
||||
datepickerLangJS + '\n' +
|
||||
fullCalendarLangJS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function wrapWithUMD(body) {
|
||||
return [
|
||||
'(function(factory) {',
|
||||
' if (typeof define === "function" && define.amd) {',
|
||||
' define([ "jquery", "moment" ], factory);',
|
||||
' }',
|
||||
' else {',
|
||||
' factory(jQuery, moment);',
|
||||
' }',
|
||||
'})(function($, moment) {',
|
||||
'',
|
||||
body,
|
||||
'',
|
||||
'});'
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
|
||||
function wrapWithClosure(body) {
|
||||
return [
|
||||
'(function() {',
|
||||
'',
|
||||
body,
|
||||
'',
|
||||
'})();'
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
|
||||
function getMomentLangJS(path) { // file assumed to exist
|
||||
|
||||
var js = grunt.file.read(path);
|
||||
|
||||
js = js.replace( // remove the UMD wrap
|
||||
/\(\s*function[\S\s]*?function\s*\(\s*moment\s*\)\s*\{([\S\s]*)\}\)\);?/,
|
||||
function(m0, body) {
|
||||
body = body.replace(/^ /mg, ''); // remove 1 level of indentation
|
||||
return body;
|
||||
}
|
||||
);
|
||||
|
||||
js = js.replace( // replace the `return` statement so execution continues
|
||||
/^(\s*)return moment\.lang\(/m,
|
||||
'$1moment.lang('
|
||||
);
|
||||
|
||||
return js;
|
||||
}
|
||||
|
||||
|
||||
function getDatepickerLangJS(langCode, targetLangCode) {
|
||||
|
||||
// convert "en-ca" to "en-CA"
|
||||
var datepickerLangCode = langCode.replace(/\-(\w+)/, function(m0, m1) {
|
||||
return '-' + m1.toUpperCase();
|
||||
});
|
||||
|
||||
var path = pathLib.join(config.datepicker, 'jquery.ui.datepicker-' + datepickerLangCode + '.js');
|
||||
var js;
|
||||
|
||||
try {
|
||||
js = grunt.file.read(path);
|
||||
}
|
||||
catch (ex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
js = js.replace(
|
||||
/^jQuery\([\S\s]*?\{([\S\s]*)\}\);?/m, // inside the jQuery(function) wrap,
|
||||
function(m0, body) { // use only the function body, modified.
|
||||
|
||||
var match = body.match(/\$\.datepicker\.regional[\S\s]*?(\{[\S\s]*?\});?/);
|
||||
var props = match[1];
|
||||
|
||||
// remove 1 level of tab indentation
|
||||
props = props.replace(/^\t/mg, '');
|
||||
|
||||
return "$.fullCalendar.datepickerLang(" +
|
||||
"'" + (targetLangCode || langCode) + "', " + // for FullCalendar
|
||||
"'" + datepickerLangCode + "', " + // for datepicker
|
||||
props +
|
||||
");";
|
||||
}
|
||||
);
|
||||
|
||||
return js;
|
||||
}
|
||||
|
||||
|
||||
function getFullCalendarLangJS(langCode, targetLangCode) {
|
||||
|
||||
var path = pathLib.join(config.fullCalendar, langCode + '.js');
|
||||
var js;
|
||||
|
||||
try {
|
||||
js = grunt.file.read(path);
|
||||
}
|
||||
catch (ex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// if we originally wanted "ar-ma", but only "ar" is available, we have to adjust
|
||||
// the declaration
|
||||
if (targetLangCode && targetLangCode != langCode) {
|
||||
js = js.replace(
|
||||
/\$\.fullCalendar\.lang\(['"]([^'"]*)['"]/,
|
||||
'$.fullCalendar.lang("' + targetLangCode + '"'
|
||||
);
|
||||
}
|
||||
|
||||
return js;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
@@ -1 +0,0 @@
|
||||
"`dirname $0`/../node_modules/lumbar/bin/lumbar" watch "$@" "`dirname $0`/out"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "`dirname $0`/.."
|
||||
|
||||
grunt shell:assume-unchanged
|
||||
grunt lumbar:watch
|
||||
@@ -0,0 +1,602 @@
|
||||
|
||||
v2.0.2 (2014-06-24)
|
||||
-------------------
|
||||
|
||||
- bug with persisting addEventSource calls ([2191])
|
||||
- bug with persisting removeEvents calls with an array source ([2187])
|
||||
- bug with removeEvents method when called with 0 removes all events ([2082])
|
||||
|
||||
[2191]: https://code.google.com/p/fullcalendar/issues/detail?id=2191
|
||||
[2187]: https://code.google.com/p/fullcalendar/issues/detail?id=2187
|
||||
[2082]: https://code.google.com/p/fullcalendar/issues/detail?id=2082
|
||||
|
||||
|
||||
v2.0.1 (2014-06-15)
|
||||
-------------------
|
||||
|
||||
- `delta` parameters reintroduced in `eventDrop` and `eventResize` handlers ([2156])
|
||||
- **Note**: this changes the argument order for `revertFunc`
|
||||
- wrongfully triggering a windowResize when resizing an agenda view event ([1116])
|
||||
- `this` values in event drag-n-drop/resize handlers consistently the DOM node ([1177])
|
||||
- `displayEventEnd` - v2 workaround to force display of an end time ([2090])
|
||||
- don't modify passed-in eventSource items ([954])
|
||||
- destroy method now removes fc-ltr class ([2033])
|
||||
- weeks of last/next month still visible when weekends are hidden ([2095])
|
||||
- fixed memory leak when destroying calendar with selectable/droppable ([2137])
|
||||
- Icelandic language ([2180])
|
||||
- Bahasa Indonesia language ([PR 172])
|
||||
|
||||
[1116]: https://code.google.com/p/fullcalendar/issues/detail?id=1116
|
||||
[1177]: https://code.google.com/p/fullcalendar/issues/detail?id=1177
|
||||
[2090]: https://code.google.com/p/fullcalendar/issues/detail?id=2090
|
||||
[954]: https://code.google.com/p/fullcalendar/issues/detail?id=954
|
||||
[2033]: https://code.google.com/p/fullcalendar/issues/detail?id=2033
|
||||
[2095]: https://code.google.com/p/fullcalendar/issues/detail?id=2095
|
||||
[2137]: https://code.google.com/p/fullcalendar/issues/detail?id=2137
|
||||
[2156]: https://code.google.com/p/fullcalendar/issues/detail?id=2156
|
||||
[2180]: https://code.google.com/p/fullcalendar/issues/detail?id=2180
|
||||
[PR 172]: https://github.com/arshaw/fullcalendar/pull/172
|
||||
|
||||
|
||||
v2.0.0 (2014-06-01)
|
||||
-------------------
|
||||
|
||||
Internationalization support, timezone support, and [MomentJS] integration. Extensive changes, many
|
||||
of which are backwards incompatible.
|
||||
|
||||
[Full list of changes][Upgrading-to-v2] | [Affected Issues][Date-Milestone]
|
||||
|
||||
An automated testing framework has been set up ([Karma] + [Jasmine]) and tests have been written
|
||||
which cover about half of FullCalendar's functionality. Special thanks to @incre-d, @vidbina, and
|
||||
@sirrocco for the help.
|
||||
|
||||
In addition, the main development repo has been repurposed to also include the built distributable
|
||||
JS/CSS for the project and will serve as the new [Bower] endpoint.
|
||||
|
||||
[MomentJS]: http://momentjs.com/
|
||||
[Upgrading-to-v2]: http://arshaw.com/fullcalendar/wiki/Upgrading-to-v2/
|
||||
[Date-Milestone]: https://code.google.com/p/fullcalendar/issues/list?can=1&q=milestone%3Ddate
|
||||
[Karma]: http://karma-runner.github.io/
|
||||
[Jasmine]: http://jasmine.github.io/
|
||||
[Bower]: http://bower.io/
|
||||
|
||||
|
||||
v1.6.4 (2013-09-01)
|
||||
-------------------
|
||||
|
||||
- better algorithm for positioning timed agenda events ([1115])
|
||||
- `slotEventOverlap` option to tweak timed agenda event overlapping ([218])
|
||||
- selection bug when slot height is customized ([1035])
|
||||
- supply view argument in `loading` callback ([1018])
|
||||
- fixed week number not displaying in agenda views ([1951])
|
||||
- fixed fullCalendar not initializing with no options ([1356])
|
||||
- NPM's `package.json`, no more warnings or errors ([1762])
|
||||
- building the bower component should output `bower.json` instead of `component.json` ([PR 125])
|
||||
- use bower internally for fetching new versions of jQuery and jQuery UI
|
||||
|
||||
[1115]: https://code.google.com/p/fullcalendar/issues/detail?id=1115
|
||||
[218]: https://code.google.com/p/fullcalendar/issues/detail?id=218
|
||||
[1035]: https://code.google.com/p/fullcalendar/issues/detail?id=1035
|
||||
[1018]: https://code.google.com/p/fullcalendar/issues/detail?id=1018
|
||||
[1951]: https://code.google.com/p/fullcalendar/issues/detail?id=1951
|
||||
[1356]: https://code.google.com/p/fullcalendar/issues/detail?id=1356
|
||||
[1762]: https://code.google.com/p/fullcalendar/issues/detail?id=1762
|
||||
[PR 125]: https://github.com/arshaw/fullcalendar/pull/125
|
||||
|
||||
|
||||
v1.6.3 (2013-08-10)
|
||||
-------------------
|
||||
|
||||
- `viewRender` callback ([PR 15])
|
||||
- `viewDestroy` callback ([PR 15])
|
||||
- `eventDestroy` callback ([PR 111])
|
||||
- `handleWindowResize` option ([PR 54])
|
||||
- `eventStartEditable`/`startEditable` options ([PR 49])
|
||||
- `eventDurationEditable`/`durationEditable` options ([PR 49])
|
||||
- specify function for `$.ajax` `data` parameter for JSON event sources ([PR 59])
|
||||
- fixed bug with agenda event dropping in wrong column ([PR 55])
|
||||
- easier event element z-index customization ([PR 58])
|
||||
- classNames on past/future days ([PR 88])
|
||||
- allow `null`/`undefined` event titles ([PR 84])
|
||||
- small optimize for agenda event rendering ([PR 56])
|
||||
- deprecated:
|
||||
- `viewDisplay`
|
||||
- `disableDragging`
|
||||
- `disableResizing`
|
||||
- bundled with latest jQuery (1.10.2) and jQuery UI (1.10.3)
|
||||
|
||||
[PR 15]: https://github.com/arshaw/fullcalendar/pull/15
|
||||
[PR 111]: https://github.com/arshaw/fullcalendar/pull/111
|
||||
[PR 54]: https://github.com/arshaw/fullcalendar/pull/54
|
||||
[PR 49]: https://github.com/arshaw/fullcalendar/pull/49
|
||||
[PR 59]: https://github.com/arshaw/fullcalendar/pull/59
|
||||
[PR 55]: https://github.com/arshaw/fullcalendar/pull/55
|
||||
[PR 58]: https://github.com/arshaw/fullcalendar/pull/58
|
||||
[PR 88]: https://github.com/arshaw/fullcalendar/pull/88
|
||||
[PR 84]: https://github.com/arshaw/fullcalendar/pull/84
|
||||
[PR 56]: https://github.com/arshaw/fullcalendar/pull/56
|
||||
|
||||
|
||||
v1.6.2 (2013-07-18)
|
||||
-------------------
|
||||
|
||||
- `hiddenDays` option ([686])
|
||||
- bugfix: when `eventRender` returns `false`, incorrect stacking of events ([762])
|
||||
- bugfix: couldn't change `event.backgroundImage` when calling `updateEvent` (thx @stephenharris)
|
||||
|
||||
[686]: https://code.google.com/p/fullcalendar/issues/detail?id=686
|
||||
[762]: https://code.google.com/p/fullcalendar/issues/detail?id=762
|
||||
|
||||
|
||||
v1.6.1 (2013-04-14)
|
||||
-------------------
|
||||
|
||||
- fixed event inner content overflow bug ([1783])
|
||||
- fixed table header className bug [1772]
|
||||
- removed text-shadow on events (better for general use, thx @tkrotoff)
|
||||
|
||||
[1783]: https://code.google.com/p/fullcalendar/issues/detail?id=1783
|
||||
[1772]: https://code.google.com/p/fullcalendar/issues/detail?id=1772
|
||||
|
||||
|
||||
v1.6.0 (2013-03-18)
|
||||
-------------------
|
||||
|
||||
- visual facelift, with bootstrap-inspired buttons and colors
|
||||
- simplified HTML/CSS for events and buttons
|
||||
- `dayRender`, for modifying a day cell ([191], thx @althaus)
|
||||
- week numbers on side of calendar ([295])
|
||||
- `weekNumber`
|
||||
- `weekNumberCalculation`
|
||||
- `weekNumberTitle`
|
||||
- `W` formatting variable
|
||||
- finer snapping granularity for agenda view events ([495], thx @ms-doodle-com)
|
||||
- `eventAfterAllRender` ([753], thx @pdrakeweb)
|
||||
- `eventDataTransform` (thx @joeyspo)
|
||||
- `data-date` attributes on cells (thx @Jae)
|
||||
- expose `$.fullCalendar.dateFormatters`
|
||||
- when clicking fast on buttons, prevent text selection
|
||||
- bundled with latest jQuery (1.9.1) and jQuery UI (1.10.2)
|
||||
- Grunt/Lumbar build system for internal development
|
||||
- build for Bower package manager
|
||||
- build for jQuery plugin site
|
||||
|
||||
[191]: https://code.google.com/p/fullcalendar/issues/detail?id=191
|
||||
[295]: https://code.google.com/p/fullcalendar/issues/detail?id=295
|
||||
[495]: https://code.google.com/p/fullcalendar/issues/detail?id=495
|
||||
[753]: https://code.google.com/p/fullcalendar/issues/detail?id=753
|
||||
|
||||
|
||||
v1.5.4 (2012-09-05)
|
||||
-------------------
|
||||
|
||||
- made compatible with jQuery 1.8.* (thx @archaeron)
|
||||
- bundled with jQuery 1.8.1 and jQuery UI 1.8.23
|
||||
|
||||
|
||||
v1.5.3 (2012-02-06)
|
||||
-------------------
|
||||
|
||||
- fixed dragging issue with jQuery UI 1.8.16 ([1168])
|
||||
- bundled with jQuery 1.7.1 and jQuery UI 1.8.17
|
||||
|
||||
[1168]: https://code.google.com/p/fullcalendar/issues/detail?id=1168
|
||||
|
||||
|
||||
v1.5.2 (2011-08-21)
|
||||
-------------------
|
||||
|
||||
- correctly process UTC "Z" ISO8601 date strings ([750])
|
||||
|
||||
[750]: https://code.google.com/p/fullcalendar/issues/detail?id=750
|
||||
|
||||
|
||||
v1.5.1 (2011-04-09)
|
||||
-------------------
|
||||
|
||||
- more flexible ISO8601 date parsing ([814])
|
||||
- more flexible parsing of UNIX timestamps ([826])
|
||||
- FullCalendar now buildable from source on a Mac ([795])
|
||||
- FullCalendar QA'd in FF4 ([883])
|
||||
- upgraded to jQuery 1.5.2 (which supports IE9) and jQuery UI 1.8.11
|
||||
|
||||
[814]: https://code.google.com/p/fullcalendar/issues/detail?id=814
|
||||
[826]: https://code.google.com/p/fullcalendar/issues/detail?id=826
|
||||
[795]: https://code.google.com/p/fullcalendar/issues/detail?id=795
|
||||
[883]: https://code.google.com/p/fullcalendar/issues/detail?id=883
|
||||
|
||||
|
||||
v1.5 (2011-03-19)
|
||||
-----------------
|
||||
|
||||
- slicker default styling for buttons
|
||||
- reworked a lot of the calendar's HTML and accompanying CSS (solves [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 [299])
|
||||
- can now color events through FullCalendar options and Event-Object properties ([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)
|
||||
- backgroudColor
|
||||
- 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 ([386])
|
||||
allows for easily attaching ajax handlers such as `error` ([754])
|
||||
allows for turning caching on ([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 ([504])
|
||||
- remove `cacheParam` - use json event source `cache` option instead
|
||||
- latest jquery/jquery-ui
|
||||
|
||||
[327]: https://code.google.com/p/fullcalendar/issues/detail?id=327
|
||||
[395]: https://code.google.com/p/fullcalendar/issues/detail?id=395
|
||||
[299]: https://code.google.com/p/fullcalendar/issues/detail?id=299
|
||||
[117]: https://code.google.com/p/fullcalendar/issues/detail?id=117
|
||||
[386]: https://code.google.com/p/fullcalendar/issues/detail?id=386
|
||||
[754]: https://code.google.com/p/fullcalendar/issues/detail?id=754
|
||||
[355]: https://code.google.com/p/fullcalendar/issues/detail?id=355
|
||||
[504]: https://code.google.com/p/fullcalendar/issues/detail?id=504
|
||||
|
||||
|
||||
v1.4.11 (2011-02-22)
|
||||
--------------------
|
||||
|
||||
- fixed rerenderEvents bug ([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
|
||||
|
||||
[790]: https://code.google.com/p/fullcalendar/issues/detail?id=790
|
||||
|
||||
|
||||
v1.4.10 (2011-01-02)
|
||||
--------------------
|
||||
|
||||
- fixed bug with resizing event to different week in 5-day month view ([740])
|
||||
- fixed bug with events not sticking after a removeEvents call ([757])
|
||||
- fixed bug with underlying parseTime method, and other uses of parseInt ([688])
|
||||
|
||||
[740]: https://code.google.com/p/fullcalendar/issues/detail?id=740
|
||||
[757]: https://code.google.com/p/fullcalendar/issues/detail?id=757
|
||||
[688]: https://code.google.com/p/fullcalendar/issues/detail?id=688
|
||||
|
||||
|
||||
v1.4.9 (2010-11-16)
|
||||
-------------------
|
||||
|
||||
- new algorithm for vertically stacking events ([111])
|
||||
- resizing an event to a different week ([306])
|
||||
- bug: some events not rendered with consecutive calls to addEventSource ([679])
|
||||
|
||||
[111]: https://code.google.com/p/fullcalendar/issues/detail?id=111
|
||||
[306]: https://code.google.com/p/fullcalendar/issues/detail?id=306
|
||||
[679]: https://code.google.com/p/fullcalendar/issues/detail?id=679
|
||||
|
||||
|
||||
v1.4.8 (2010-10-16)
|
||||
-------------------
|
||||
|
||||
- ignoreTimezone option (set to `false` to process UTC offsets in ISO8601 dates)
|
||||
- bugfixes
|
||||
- event refetching not being called under certain conditions ([417], [554])
|
||||
- event refetching being called multiple times under certain conditions ([586], [616])
|
||||
- selection cannot be triggered by right mouse button ([558])
|
||||
- agenda view left axis sized incorrectly ([465])
|
||||
- IE js error when calendar is too narrow ([517])
|
||||
- agenda view looks strange when no scrollbars ([235])
|
||||
- improved parsing of ISO8601 dates with UTC offsets
|
||||
- $.fullCalendar.version
|
||||
- an internal refactor of the code, for easier future development and modularity
|
||||
|
||||
[417]: https://code.google.com/p/fullcalendar/issues/detail?id=417
|
||||
[554]: https://code.google.com/p/fullcalendar/issues/detail?id=554
|
||||
[586]: https://code.google.com/p/fullcalendar/issues/detail?id=586
|
||||
[616]: https://code.google.com/p/fullcalendar/issues/detail?id=616
|
||||
[558]: https://code.google.com/p/fullcalendar/issues/detail?id=558
|
||||
[465]: https://code.google.com/p/fullcalendar/issues/detail?id=465
|
||||
[517]: https://code.google.com/p/fullcalendar/issues/detail?id=517
|
||||
[235]: https://code.google.com/p/fullcalendar/issues/detail?id=235
|
||||
|
||||
|
||||
v1.4.7 (2010-07-05)
|
||||
-------------------
|
||||
|
||||
- "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 ([406])
|
||||
- bug rendering events that have an endtime with seconds, but no hours/minutes ([477])
|
||||
- gotoDate date overflow bug ([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
|
||||
|
||||
[406]: https://code.google.com/p/fullcalendar/issues/detail?id=406
|
||||
[477]: https://code.google.com/p/fullcalendar/issues/detail?id=477
|
||||
[429]: https://code.google.com/p/fullcalendar/issues/detail?id=429
|
||||
[412]: https://code.google.com/p/fullcalendar/issues/detail?id=412
|
||||
|
||||
|
||||
v1.4.6 (2010-05-31)
|
||||
-------------------
|
||||
|
||||
- "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
|
||||
|
||||
|
||||
v1.4.5 (2010-02-21)
|
||||
-------------------
|
||||
|
||||
- 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 ([320])
|
||||
- error when rendering a hidden calendar (in jquery ui tabs for example) in IE ([340])
|
||||
- interconnected bugs related to calendar resizing and scrollbars
|
||||
- when switching views or clicking prev/next, calendar would "blink" ([333])
|
||||
- liquid-width calendar's events shifted (depending on initial height of browser) ([341])
|
||||
- more robust underlying algorithm for calendar resizing
|
||||
|
||||
[320]: https://code.google.com/p/fullcalendar/issues/detail?id=320
|
||||
[340]: https://code.google.com/p/fullcalendar/issues/detail?id=340
|
||||
[333]: https://code.google.com/p/fullcalendar/issues/detail?id=333
|
||||
[341]: https://code.google.com/p/fullcalendar/issues/detail?id=341
|
||||
|
||||
|
||||
v1.4.4 (2010-02-03)
|
||||
-------------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.4.3 (2009-12-22)
|
||||
-------------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.4.2 (2009-12-02)
|
||||
-------------------
|
||||
|
||||
- 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')
|
||||
|
||||
|
||||
v1.4.1 (2009-10-31)
|
||||
-------------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.4 (2009-10-19)
|
||||
-----------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.3.2 (2009-10-13)
|
||||
-------------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.3.1 (2009-09-30)
|
||||
-------------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.3 (2009-09-21)
|
||||
-----------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.2.1 (2009-06-29)
|
||||
-------------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.2 (2009-05-31)
|
||||
-----------------
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
v1.1 (2009-05-10)
|
||||
-----------------
|
||||
|
||||
- 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
|
||||
@@ -1,371 +0,0 @@
|
||||
|
||||
version 1.6.3 (8/10/13)
|
||||
- viewRender callback (PR 15)
|
||||
- viewDestroy callback (PR 15)
|
||||
- eventDestroy callback (PR 111)
|
||||
- handleWindowResize option (PR 54)
|
||||
- eventStartEditable/startEditable options (PR 49)
|
||||
- eventDurationEditable/durationEditable options (PR 49)
|
||||
- specify function for $.ajax `data` parameter for JSON event sources (PR 59)
|
||||
- fixed bug with agenda event dropping in wrong column (PR 55)
|
||||
- easier event element z-index customization (PR 58)
|
||||
- classNames on past/future days (PR 88)
|
||||
- allow null/undefined event titles (PR 84)
|
||||
- small optimize for agenda event rendering (PR 56)
|
||||
- deprecated:
|
||||
- viewDisplay
|
||||
- disableDragging
|
||||
- disableResizing
|
||||
- bundled with latest jQuery (1.10.2) and jQuery UI (1.10.3)
|
||||
|
||||
version 1.6.2 (7/18/13)
|
||||
- hiddenDays option (issue 686)
|
||||
- bugfix: when eventRender returns false, incorrect stacking of events (issue 762)
|
||||
- bugfix: couldn't change event.backgroundImage when calling updateEvent (thx stephenharris)
|
||||
|
||||
version 1.6.1 (4/14/13)
|
||||
- fixed event inner content overflow bug (issue 1783)
|
||||
- fixed table header className bug (1772)
|
||||
- removed text-shadow on events (better for general use, thx tkrotoff)
|
||||
|
||||
version 1.6.0 (3/18/13)
|
||||
- visual facelift, with bootstrap-inspired buttons and colors
|
||||
- simplified HTML/CSS for events and buttons
|
||||
- dayRender, for modifying a day cell (issue 191, thx althaus)
|
||||
- week numbers on side of calendar (issue 295)
|
||||
- weekNumber
|
||||
- weekNumberCalculation
|
||||
- weekNumberTitle
|
||||
- "W" formatting variable
|
||||
- finer snapping granularity for agenda view events (issue 495, thx ms-doodle-com)
|
||||
- eventAfterAllRender (issue 753, thx pdrakeweb)
|
||||
- eventDataTransform (thx joeyspo)
|
||||
- data-date attributes on cells (thx Jae)
|
||||
- expose $.fullCalendar.dateFormatters
|
||||
- when clicking fast on buttons, prevent text selection
|
||||
- bundled with latest jQuery (1.9.1) and jQuery UI (1.10.2)
|
||||
- Grunt/Lumbar build system for internal development
|
||||
- build for Bower package manager
|
||||
- build for jQuery plugin site
|
||||
|
||||
version 1.5.4 (9/5/12)
|
||||
- made compatible with jQuery 1.8.* (thx archaeron)
|
||||
- bundled with jQuery 1.8.1 and jQuery UI 1.8.23
|
||||
|
||||
version 1.5.3 (2/6/12)
|
||||
- fixed dragging issue with jQuery UI 1.8.16 (issue 1168)
|
||||
- bundled with jQuery 1.7.1 and jQuery UI 1.8.17
|
||||
|
||||
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)
|
||||
- backgroudColor
|
||||
- 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
|
||||
!!!!!!!!!!!
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
@@ -21,51 +18,45 @@
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
start: '2014-06-01'
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
start: '2014-06-07',
|
||||
end: '2014-06-10'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-09T16:00:00'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-16T16:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
start: '2014-06-12T10:30:00',
|
||||
end: '2014-06-12T12:30:00'
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
start: '2014-06-12T12:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
start: '2014-06-13T07:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
url: 'http://google.com/',
|
||||
start: '2014-06-28'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -76,20 +67,22 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
@@ -21,51 +18,45 @@
|
||||
center: 'title',
|
||||
right: 'month,basicWeek,basicDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
start: '2014-06-01'
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
start: '2014-06-07',
|
||||
end: '2014-06-10'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-09T16:00:00'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-16T16:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
start: '2014-06-12T10:30:00',
|
||||
end: '2014-06-12T12:30:00'
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
start: '2014-06-12T12:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
start: '2014-06-13T07:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
url: 'http://google.com/',
|
||||
start: '2014-06-28'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -76,20 +67,22 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 312 B |
|
Before Width: | Height: | Size: 206 B |
|
Before Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 336 B |
|
Before Width: | Height: | Size: 346 B |
|
Before Width: | Height: | Size: 332 B |
|
Before Width: | Height: | Size: 249 B |
|
Before Width: | Height: | Size: 387 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
@@ -1,523 +0,0 @@
|
||||
/*! jQuery UI - v1.10.3 - 2013-08-10
|
||||
* http://jqueryui.com
|
||||
* Includes: jquery.ui.core.css, jquery.ui.tabs.css
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=highlight_soft&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=highlight_hard&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=glass&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=glass&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=flat&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=highlight_hard&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
|
||||
* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden {
|
||||
display: none;
|
||||
}
|
||||
.ui-helper-hidden-accessible {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 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:before,
|
||||
.ui-helper-clearfix:after {
|
||||
content: "";
|
||||
display: table;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.ui-helper-clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
.ui-helper-clearfix {
|
||||
min-height: 0; /* support: IE7 */
|
||||
}
|
||||
.ui-helper-zfix {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter:Alpha(Opacity=0);
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
|
||||
/* 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: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-tabs {
|
||||
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
padding: .2em;
|
||||
}
|
||||
.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: 0;
|
||||
margin: 1px .2em 0 0;
|
||||
border-bottom-width: 0;
|
||||
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-active {
|
||||
margin-bottom: -1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active a,
|
||||
.ui-tabs .ui-tabs-nav li.ui-state-disabled a,
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
|
||||
cursor: text;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
|
||||
cursor: pointer;
|
||||
}
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
display: block;
|
||||
border-width: 0;
|
||||
padding: 1em 1.4em;
|
||||
background: none;
|
||||
}
|
||||
|
||||
/* 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,
|
||||
.ui-state-hover a:link,
|
||||
.ui-state-hover a:visited {
|
||||
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;
|
||||
}
|
||||
|
||||
/* 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;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.ui-icon,
|
||||
.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-blank { background-position: 16px 16px; }
|
||||
.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-on { background-position: -96px -144px; }
|
||||
.ui-icon-radio-off { 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-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-left,
|
||||
.ui-corner-tl {
|
||||
border-top-left-radius: 6px;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-right,
|
||||
.ui-corner-tr {
|
||||
border-top-right-radius: 6px;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-left,
|
||||
.ui-corner-bl {
|
||||
border-bottom-left-radius: 6px;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-right,
|
||||
.ui-corner-br {
|
||||
border-bottom-right-radius: 6px;
|
||||
}
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat;
|
||||
opacity: .8;
|
||||
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: .3;
|
||||
filter: Alpha(Opacity=30);
|
||||
border-radius: 8px;
|
||||
}
|
||||
@@ -1,66 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
defaultDate: '2014-06-12',
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
start: '2014-06-01'
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
start: '2014-06-07',
|
||||
end: '2014-06-10'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-09T16:00:00'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-16T16:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
start: '2014-06-12T10:30:00',
|
||||
end: '2014-06-12T12:30:00'
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
start: '2014-06-12T12:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
start: '2014-06-13T07:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
url: 'http://google.com/',
|
||||
start: '2014-06-28'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -71,20 +62,22 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
@@ -46,7 +48,7 @@
|
||||
},
|
||||
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
|
||||
drop: function(date) { // this function is called when something is dropped
|
||||
|
||||
// retrieve the dropped element's stored Event Object
|
||||
var originalEventObject = $(this).data('eventObject');
|
||||
@@ -56,7 +58,6 @@
|
||||
|
||||
// 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/)
|
||||
@@ -82,12 +83,12 @@
|
||||
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;
|
||||
@@ -96,13 +97,13 @@
|
||||
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;
|
||||
@@ -111,44 +112,46 @@
|
||||
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='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='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 id='calendar'></div>
|
||||
|
||||
<div style='clear:both'></div>
|
||||
</div>
|
||||
<div style='clear:both'></div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<script src='../build/out/gcal.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script src='../dist/gcal.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
@@ -23,11 +24,7 @@
|
||||
},
|
||||
|
||||
loading: function(bool) {
|
||||
if (bool) {
|
||||
$('#loading').show();
|
||||
}else{
|
||||
$('#loading').hide();
|
||||
}
|
||||
$('#loading').toggle(bool);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -38,27 +35,31 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#loading {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='loading' style='display:none'>loading...</div>
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='loading'>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,31 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(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)');
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
editable: true,
|
||||
events: {
|
||||
url: 'php/get-events.php',
|
||||
error: function() {
|
||||
$('#script-warning').show();
|
||||
}
|
||||
},
|
||||
|
||||
loading: function(bool) {
|
||||
if (bool) $('#loading').show();
|
||||
else $('#loading').hide();
|
||||
$('#loading').toggle(bool);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
@@ -34,28 +37,47 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#script-warning {
|
||||
display: none;
|
||||
background: #eee;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 0 10px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
color: red;
|
||||
}
|
||||
|
||||
#loading {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px 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>
|
||||
|
||||
<div id='script-warning'>
|
||||
<code>php/get-events.php</code> must be running.
|
||||
</div>
|
||||
|
||||
<div id='loading'>loading...</div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
[
|
||||
{
|
||||
"title": "All Day Event",
|
||||
"start": "2014-06-01"
|
||||
},
|
||||
{
|
||||
"title": "Long Event",
|
||||
"start": "2014-06-07",
|
||||
"end": "2014-06-10"
|
||||
},
|
||||
{
|
||||
"id": "999",
|
||||
"title": "Repeating Event",
|
||||
"start": "2014-06-09T16:00:00-05:00"
|
||||
},
|
||||
{
|
||||
"id": "999",
|
||||
"title": "Repeating Event",
|
||||
"start": "2014-06-16T16:00:00-05:00"
|
||||
},
|
||||
{
|
||||
"title": "Meeting",
|
||||
"start": "2014-06-12T10:30:00-05:00",
|
||||
"end": "2014-06-12T12:30:00-05:00"
|
||||
},
|
||||
{
|
||||
"title": "Lunch",
|
||||
"start": "2014-06-12T12:00:00-05:00"
|
||||
},
|
||||
{
|
||||
"title": "Birthday Party",
|
||||
"start": "2014-06-13T07:00:00-05:00"
|
||||
},
|
||||
{
|
||||
"title": "Click for Google",
|
||||
"url": "http://google.com/",
|
||||
"start": "2014-06-28"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<link rel='stylesheet' href='../lib/jquery-ui/themes/cupertino/jquery-ui.min.css' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script src='../dist/lang-all.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
var currentLangCode = 'en';
|
||||
|
||||
// build the language selector's options
|
||||
$.each($.fullCalendar.langs, function(langCode) {
|
||||
$('#lang-selector').append(
|
||||
$('<option/>')
|
||||
.attr('value', langCode)
|
||||
.prop('selected', langCode == currentLangCode)
|
||||
.text(langCode)
|
||||
);
|
||||
});
|
||||
|
||||
// rerender the calendar when the selected option changes
|
||||
$('#lang-selector').on('change', function() {
|
||||
if (this.value) {
|
||||
currentLangCode = this.value;
|
||||
$('#calendar').fullCalendar('destroy');
|
||||
renderCalendar();
|
||||
}
|
||||
});
|
||||
|
||||
function renderCalendar() {
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
lang: currentLangCode,
|
||||
buttonIcons: false, // show the prev/next text
|
||||
weekNumbers: true,
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: '2014-06-01'
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: '2014-06-07',
|
||||
end: '2014-06-10'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: '2014-06-09T16:00:00'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: '2014-06-16T16:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: '2014-06-12T10:30:00',
|
||||
end: '2014-06-12T12:30:00'
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: '2014-06-12T12:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: '2014-06-13T07:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
url: 'http://google.com/',
|
||||
start: '2014-06-28'
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
renderCalendar();
|
||||
});
|
||||
|
||||
</script>
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#top {
|
||||
background: #eee;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 0 10px;
|
||||
line-height: 40px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id='top'>
|
||||
|
||||
Language:
|
||||
<select id='lang-selector'></select>
|
||||
|
||||
</div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
// This script reads event data from a JSON file and outputs those events which are within the range
|
||||
// supplied by the "start" and "end" GET parameters.
|
||||
//
|
||||
// An optional "timezone" GET parameter will force all ISO8601 date stings to a given timezone.
|
||||
//
|
||||
// Requires PHP 5.2.0 or higher.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
// Require our Event class and datetime utilities
|
||||
require dirname(__FILE__) . '/utils.php';
|
||||
|
||||
// Short-circuit if the client did not give us a date range.
|
||||
if (!isset($_GET['start']) || !isset($_GET['end'])) {
|
||||
die("Please provide a date range.");
|
||||
}
|
||||
|
||||
// Parse the start/end parameters.
|
||||
// These are assumed to be ISO8601 strings with no time nor timezone, like "2013-12-29".
|
||||
// Since no timezone will be present, they will parsed as UTC.
|
||||
$range_start = parseDateTime($_GET['start']);
|
||||
$range_end = parseDateTime($_GET['end']);
|
||||
|
||||
// Parse the timezone parameter if it is present.
|
||||
$timezone = null;
|
||||
if (isset($_GET['timezone'])) {
|
||||
$timezone = new DateTimeZone($_GET['timezone']);
|
||||
}
|
||||
|
||||
// Read and parse our events JSON file into an array of event data arrays.
|
||||
$json = file_get_contents(dirname(__FILE__) . '/../json/events.json');
|
||||
$input_arrays = json_decode($json, true);
|
||||
|
||||
// Accumulate an output array of event data arrays.
|
||||
$output_arrays = array();
|
||||
foreach ($input_arrays as $array) {
|
||||
|
||||
// Convert the input array into a useful Event object
|
||||
$event = new Event($array, $timezone);
|
||||
|
||||
// If the event is in-bounds, add it to the output
|
||||
if ($event->isWithinDayRange($range_start, $range_end)) {
|
||||
$output_arrays[] = $event->toArray();
|
||||
}
|
||||
}
|
||||
|
||||
// Send JSON to the client.
|
||||
echo json_encode($output_arrays);
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
// This script outputs a JSON array of all timezones (like "America/Chicago") that PHP supports.
|
||||
//
|
||||
// Requires PHP 5.2.0 or higher.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
echo json_encode(DateTimeZone::listIdentifiers());
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
// Utilities for our event-fetching scripts.
|
||||
//
|
||||
// Requires PHP 5.2.0 or higher.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
// PHP will fatal error if we attempt to use the DateTime class without this being set.
|
||||
date_default_timezone_set('UTC');
|
||||
|
||||
|
||||
class Event {
|
||||
|
||||
// Tests whether the given ISO8601 string has a time-of-day or not
|
||||
const ALL_DAY_REGEX = '/^\d{4}-\d\d-\d\d$/'; // matches strings like "2013-12-29"
|
||||
|
||||
public $title;
|
||||
public $allDay; // a boolean
|
||||
public $start; // a DateTime
|
||||
public $end; // a DateTime, or null
|
||||
public $properties = array(); // an array of other misc properties
|
||||
|
||||
|
||||
// Constructs an Event object from the given array of key=>values.
|
||||
// You can optionally force the timezone of the parsed dates.
|
||||
public function __construct($array, $timezone=null) {
|
||||
|
||||
$this->title = $array['title'];
|
||||
|
||||
if (isset($array['allDay'])) {
|
||||
// allDay has been explicitly specified
|
||||
$this->allDay = (bool)$array['allDay'];
|
||||
}
|
||||
else {
|
||||
// Guess allDay based off of ISO8601 date strings
|
||||
$this->allDay = preg_match(self::ALL_DAY_REGEX, $array['start']) &&
|
||||
(!isset($array['end']) || preg_match(self::ALL_DAY_REGEX, $array['end']));
|
||||
}
|
||||
|
||||
if ($this->allDay) {
|
||||
// If dates are allDay, we want to parse them in UTC to avoid DST issues.
|
||||
$timezone = null;
|
||||
}
|
||||
|
||||
// Parse dates
|
||||
$this->start = parseDateTime($array['start'], $timezone);
|
||||
$this->end = isset($array['end']) ? parseDateTime($array['end'], $timezone) : null;
|
||||
|
||||
// Record misc properties
|
||||
foreach ($array as $name => $value) {
|
||||
if (!in_array($name, array('title', 'allDay', 'start', 'end'))) {
|
||||
$this->properties[$name] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Returns whether the date range of our event intersects with the given all-day range.
|
||||
// $rangeStart and $rangeEnd are assumed to be dates in UTC with 00:00:00 time.
|
||||
public function isWithinDayRange($rangeStart, $rangeEnd) {
|
||||
|
||||
// Normalize our event's dates for comparison with the all-day range.
|
||||
$eventStart = stripTime($this->start);
|
||||
$eventEnd = isset($this->end) ? stripTime($this->end) : null;
|
||||
|
||||
if (!$eventEnd) {
|
||||
// No end time? Only check if the start is within range.
|
||||
return $eventStart < $rangeEnd && $eventStart >= $rangeStart;
|
||||
}
|
||||
else {
|
||||
// Check if the two ranges intersect.
|
||||
return $eventStart < $rangeEnd && $eventEnd > $rangeStart;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Converts this Event object back to a plain data array, to be used for generating JSON
|
||||
public function toArray() {
|
||||
|
||||
// Start with the misc properties (don't worry, PHP won't affect the original array)
|
||||
$array = $this->properties;
|
||||
|
||||
$array['title'] = $this->title;
|
||||
|
||||
// Figure out the date format. This essentially encodes allDay into the date string.
|
||||
if ($this->allDay) {
|
||||
$format = 'Y-m-d'; // output like "2013-12-29"
|
||||
}
|
||||
else {
|
||||
$format = 'c'; // full ISO8601 output, like "2013-12-29T09:00:00+08:00"
|
||||
}
|
||||
|
||||
// Serialize dates into strings
|
||||
$array['start'] = $this->start->format($format);
|
||||
if (isset($this->end)) {
|
||||
$array['end'] = $this->end->format($format);
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Date Utilities
|
||||
//----------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
// Parses a string into a DateTime object, optionally forced into the given timezone.
|
||||
function parseDateTime($string, $timezone=null) {
|
||||
$date = new DateTime(
|
||||
$string,
|
||||
$timezone ? $timezone : new DateTimeZone('UTC')
|
||||
// Used only when the string is ambiguous.
|
||||
// Ignored if string has a timezone offset in it.
|
||||
);
|
||||
if ($timezone) {
|
||||
// If our timezone was ignored above, force it.
|
||||
$date->setTimezone($timezone);
|
||||
}
|
||||
return $date;
|
||||
}
|
||||
|
||||
|
||||
// Takes the year/month/date values of the given DateTime and converts them to a new DateTime,
|
||||
// but in UTC.
|
||||
function stripTime($datetime) {
|
||||
return new DateTime($datetime->format('Y-m-d'));
|
||||
}
|
||||
@@ -1,88 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
var calendar = $('#calendar').fullCalendar({
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
selectable: true,
|
||||
selectHelper: true,
|
||||
select: function(start, end, allDay) {
|
||||
select: function(start, end) {
|
||||
var title = prompt('Event Title:');
|
||||
var eventData;
|
||||
if (title) {
|
||||
calendar.fullCalendar('renderEvent',
|
||||
{
|
||||
title: title,
|
||||
start: start,
|
||||
end: end,
|
||||
allDay: allDay
|
||||
},
|
||||
true // make the event "stick"
|
||||
);
|
||||
eventData = {
|
||||
title: title,
|
||||
start: start,
|
||||
end: end
|
||||
};
|
||||
$('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
|
||||
}
|
||||
calendar.fullCalendar('unselect');
|
||||
$('#calendar').fullCalendar('unselect');
|
||||
},
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
start: '2014-06-01'
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
start: '2014-06-07',
|
||||
end: '2014-06-10'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-09T16:00:00'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-16T16:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
start: '2014-06-12T10:30:00',
|
||||
end: '2014-06-12T12:30:00'
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
start: '2014-06-12T12:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
start: '2014-06-13T07:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
url: 'http://google.com/',
|
||||
start: '2014-06-28'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -93,20 +82,22 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel='stylesheet' href='cupertino/theme.css' />
|
||||
<link href='../build/out/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../build/out/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../build/out/jquery.js'></script>
|
||||
<script src='../build/out/jquery-ui.js'></script>
|
||||
<script src='../build/out/fullcalendar.js'></script>
|
||||
<meta charset='utf-8' />
|
||||
<link rel='stylesheet' href='../lib/jquery-ui/themes/cupertino/jquery-ui.min.css' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var date = new Date();
|
||||
var d = date.getDate();
|
||||
var m = date.getMonth();
|
||||
var y = date.getFullYear();
|
||||
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
theme: true,
|
||||
header: {
|
||||
@@ -23,51 +20,45 @@
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
editable: true,
|
||||
events: [
|
||||
{
|
||||
title: 'All Day Event',
|
||||
start: new Date(y, m, 1)
|
||||
start: '2014-06-01'
|
||||
},
|
||||
{
|
||||
title: 'Long Event',
|
||||
start: new Date(y, m, d-5),
|
||||
end: new Date(y, m, d-2)
|
||||
start: '2014-06-07',
|
||||
end: '2014-06-10'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d-3, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-09T16:00:00'
|
||||
},
|
||||
{
|
||||
id: 999,
|
||||
title: 'Repeating Event',
|
||||
start: new Date(y, m, d+4, 16, 0),
|
||||
allDay: false
|
||||
start: '2014-06-16T16:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Meeting',
|
||||
start: new Date(y, m, d, 10, 30),
|
||||
allDay: false
|
||||
start: '2014-06-12T10:30:00',
|
||||
end: '2014-06-12T12:30:00'
|
||||
},
|
||||
{
|
||||
title: 'Lunch',
|
||||
start: new Date(y, m, d, 12, 0),
|
||||
end: new Date(y, m, d, 14, 0),
|
||||
allDay: false
|
||||
start: '2014-06-12T12:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Birthday Party',
|
||||
start: new Date(y, m, d+1, 19, 0),
|
||||
end: new Date(y, m, d+1, 22, 30),
|
||||
allDay: false
|
||||
start: '2014-06-13T07:00:00'
|
||||
},
|
||||
{
|
||||
title: 'Click for Google',
|
||||
start: new Date(y, m, 28),
|
||||
end: new Date(y, m, 29),
|
||||
url: 'http://google.com/'
|
||||
url: 'http://google.com/',
|
||||
start: '2014-06-28'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -78,20 +69,22 @@
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
}
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id='calendar'></div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<link href='../dist/fullcalendar.css' rel='stylesheet' />
|
||||
<link href='../dist/fullcalendar.print.css' rel='stylesheet' media='print' />
|
||||
<script src='../lib/moment/moment.js'></script>
|
||||
<script src='../lib/jquery/dist/jquery.js'></script>
|
||||
<script src='../lib/jquery-ui/ui/jquery-ui.js'></script>
|
||||
<script src='../dist/fullcalendar.js'></script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
var currentTimezone = false;
|
||||
|
||||
// load the list of available timezones
|
||||
$.getJSON('php/get-timezones.php', function(timezones) {
|
||||
$.each(timezones, function(i, timezone) {
|
||||
if (timezone != 'UTC') { // UTC is already in the list
|
||||
$('#timezone-selector').append(
|
||||
$("<option/>").text(timezone).attr('value', timezone)
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// when the timezone selector changes, rerender the calendar
|
||||
$('#timezone-selector').on('change', function() {
|
||||
currentTimezone = this.value || false;
|
||||
$('#calendar').fullCalendar('destroy');
|
||||
renderCalendar();
|
||||
});
|
||||
|
||||
function renderCalendar() {
|
||||
$('#calendar').fullCalendar({
|
||||
header: {
|
||||
left: 'prev,next today',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay'
|
||||
},
|
||||
defaultDate: '2014-06-12',
|
||||
timezone: currentTimezone,
|
||||
editable: true,
|
||||
events: {
|
||||
url: 'php/get-events.php',
|
||||
error: function() {
|
||||
$('#script-warning').show();
|
||||
}
|
||||
},
|
||||
loading: function(bool) {
|
||||
$('#loading').toggle(bool);
|
||||
},
|
||||
eventRender: function(event, el) {
|
||||
// render the timezone offset below the event title
|
||||
if (event.start.hasZone()) {
|
||||
el.find('.fc-event-title').after(
|
||||
$('<div class="tzo"/>').text(event.start.format('Z'))
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
renderCalendar();
|
||||
});
|
||||
|
||||
</script>
|
||||
<style>
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#top {
|
||||
background: #eee;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 0 10px;
|
||||
line-height: 40px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.left { float: left }
|
||||
.right { float: right }
|
||||
.clear { clear: both }
|
||||
|
||||
#script-warning, #loading { display: none }
|
||||
#script-warning { font-weight: bold; color: red }
|
||||
|
||||
#calendar {
|
||||
width: 900px;
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
.tzo {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id='top'>
|
||||
|
||||
<div class='left'>
|
||||
Timezone:
|
||||
<select id='timezone-selector'>
|
||||
<option value='' selected>none</option>
|
||||
<option value='local'>local</option>
|
||||
<option value='UTC'>UTC</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class='right'>
|
||||
<span id='loading'>loading...</span>
|
||||
<span id='script-warning'><code>php/get-events.php</code> must be running.</span>
|
||||
</div>
|
||||
|
||||
<div class='clear'></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id='calendar'></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,601 @@
|
||||
/*!
|
||||
* FullCalendar v2.0.2 Stylesheet
|
||||
* Docs & License: http://arshaw.com/fullcalendar/
|
||||
* (c) 2013 Adam Shaw
|
||||
*/
|
||||
|
||||
|
||||
.fc {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
html .fc,
|
||||
.fc table {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.fc td,
|
||||
.fc th {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Header
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-header td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-header-left {
|
||||
width: 25%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc-header-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-header-right {
|
||||
width: 25%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-header-title {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fc-header-title h2 {
|
||||
margin-top: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc .fc-header-space {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-bottom: 1em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* buttons edges butting together */
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-header .fc-corner-right, /* non-theme */
|
||||
.fc-header .ui-corner-right { /* theme */
|
||||
margin-right: 0; /* back to normal */
|
||||
}
|
||||
|
||||
/* button layering (for border precedence) */
|
||||
|
||||
.fc-header .fc-state-hover,
|
||||
.fc-header .ui-state-hover {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-down {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-active,
|
||||
.fc-header .ui-state-active {
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Content
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-content {
|
||||
position: relative;
|
||||
z-index: 1; /* scopes all other z-index's to be inside this container */
|
||||
clear: both;
|
||||
zoom: 1; /* for IE7, gives accurate coordinates for [un]freezeContentHeight */
|
||||
}
|
||||
|
||||
.fc-view {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Cell Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-widget-header, /* <th>, usually */
|
||||
.fc-widget-content { /* <td>, usually */
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
|
||||
background: #fcf8e3;
|
||||
}
|
||||
|
||||
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
|
||||
background: #bce8f1;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Buttons
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-button {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding: 0 .6em;
|
||||
overflow: hidden;
|
||||
height: 1.9em;
|
||||
line-height: 1.9em;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-state-default { /* non-theme */
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.fc-state-default.fc-corner-left { /* non-theme */
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.fc-state-default.fc-corner-right { /* non-theme */
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
/*
|
||||
Our default prev/next buttons use HTML entities like ‹ › « »
|
||||
and we'll try to make them look good cross-browser.
|
||||
*/
|
||||
|
||||
.fc-button .fc-icon {
|
||||
margin: 0 .1em;
|
||||
font-size: 2em;
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
vertical-align: baseline; /* for IE7 */
|
||||
}
|
||||
|
||||
.fc-icon-left-single-arrow:after {
|
||||
content: "\02039";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fc-icon-right-single-arrow:after {
|
||||
content: "\0203A";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fc-icon-left-double-arrow:after {
|
||||
content: "\000AB";
|
||||
}
|
||||
|
||||
.fc-icon-right-double-arrow:after {
|
||||
content: "\000BB";
|
||||
}
|
||||
|
||||
/* icon (for jquery ui) */
|
||||
|
||||
.fc-button .ui-icon {
|
||||
position: relative;
|
||||
top: 50%;
|
||||
float: left;
|
||||
margin-top: -8px; /* we know jqui icons are always 16px tall */
|
||||
}
|
||||
|
||||
/*
|
||||
button states
|
||||
borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
|
||||
*/
|
||||
|
||||
.fc-state-default {
|
||||
background-color: #f5f5f5;
|
||||
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
color: #333;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-hover,
|
||||
.fc-state-down,
|
||||
.fc-state-active,
|
||||
.fc-state-disabled {
|
||||
color: #333333;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.fc-state-hover {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
background-position: 0 -15px;
|
||||
-webkit-transition: background-position 0.1s linear;
|
||||
-moz-transition: background-position 0.1s linear;
|
||||
-o-transition: background-position 0.1s linear;
|
||||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-active {
|
||||
background-color: #cccccc;
|
||||
background-image: none;
|
||||
outline: 0;
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-disabled {
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
opacity: 0.65;
|
||||
filter: alpha(opacity=65);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Global Event Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-container > * {
|
||||
z-index: 8;
|
||||
}
|
||||
|
||||
.fc-event-container > .ui-draggable-dragging,
|
||||
.fc-event-container > .ui-resizable-resizing {
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.fc-event {
|
||||
border: 1px solid #3a87ad; /* default BORDER color */
|
||||
background-color: #3a87ad; /* default BACKGROUND color */
|
||||
color: #fff; /* default TEXT color */
|
||||
font-size: .85em;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
a.fc-event {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.fc-event,
|
||||
.fc-event-draggable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-event {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-event-inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-time,
|
||||
.fc-event-title {
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.fc .ui-resizable-handle {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
overflow: hidden; /* hacky spaces (IE6/7) */
|
||||
font-size: 300%; /* */
|
||||
line-height: 50%; /* */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Horizontal Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-hori {
|
||||
border-width: 1px 0;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-event-hori.fc-event-start,
|
||||
.fc-rtl .fc-event-hori.fc-event-end {
|
||||
border-left-width: 1px;
|
||||
border-top-left-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-event-hori.fc-event-end,
|
||||
.fc-rtl .fc-event-hori.fc-event-start {
|
||||
border-right-width: 1px;
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-hori .ui-resizable-e {
|
||||
top: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
right: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-w {
|
||||
top: 0 !important;
|
||||
left: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: w-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-handle {
|
||||
_padding-bottom: 14px; /* IE6 had 0 height */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Reusable Separate-border Table
|
||||
------------------------------------------------------------*/
|
||||
|
||||
table.fc-border-separate {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-border-separate th,
|
||||
.fc-border-separate td {
|
||||
border-width: 1px 0 0 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate th.fc-last,
|
||||
.fc-border-separate td.fc-last {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tr.fc-last th,
|
||||
.fc-border-separate tr.fc-last td {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tbody tr.fc-first td,
|
||||
.fc-border-separate tbody tr.fc-first th {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Month View, Basic Week View, Basic Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-grid th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc .fc-week-number {
|
||||
width: 22px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc .fc-week-number div {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-number {
|
||||
float: right;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-other-month .fc-day-number {
|
||||
opacity: 0.3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
/* opacity with small font can sometimes look too faded
|
||||
might want to set the 'color' property instead
|
||||
making day-numbers bold also fixes the problem */
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-content {
|
||||
clear: both;
|
||||
padding: 2px 2px 1px; /* distance between events and day edges */
|
||||
}
|
||||
|
||||
/* event styles */
|
||||
|
||||
.fc-grid .fc-event-time {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* right-to-left */
|
||||
|
||||
.fc-rtl .fc-grid .fc-day-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-grid .fc-event-time {
|
||||
float: right;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Agenda Week View, Agenda Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-agenda table {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-agenda-days th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-agenda-axis {
|
||||
width: 50px;
|
||||
padding: 0 4px;
|
||||
vertical-align: middle;
|
||||
text-align: right;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.fc-agenda-slots .fc-agenda-axis {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-week-number {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-day-content {
|
||||
padding: 2px 2px 1px;
|
||||
}
|
||||
|
||||
/* make axis border take precedence */
|
||||
|
||||
.fc-agenda-days .fc-agenda-axis {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-days .fc-col0 {
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
/* all-day area */
|
||||
|
||||
.fc-agenda-allday th {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-allday .fc-day-content {
|
||||
min-height: 34px; /* TODO: doesnt work well in quirksmode */
|
||||
_height: 34px;
|
||||
}
|
||||
|
||||
/* divider (between all-day and slots) */
|
||||
|
||||
.fc-agenda-divider-inner {
|
||||
height: 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-widget-header .fc-agenda-divider-inner {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
/* slot rows */
|
||||
|
||||
.fc-agenda-slots th {
|
||||
border-width: 1px 1px 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td {
|
||||
border-width: 1px 0 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td div {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-slot0 th,
|
||||
.fc-agenda-slots tr.fc-slot0 td {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th,
|
||||
.fc-agenda-slots tr.fc-minor td {
|
||||
border-top-style: dotted;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th.ui-widget-header {
|
||||
*border-top-style: solid; /* doesn't work with background in IE6/7 */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Vertical Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-vert {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-event-start {
|
||||
border-top-width: 1px;
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-event-end {
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-time {
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-inner {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
opacity: .25;
|
||||
filter: alpha(opacity=25);
|
||||
}
|
||||
|
||||
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
|
||||
.fc-select-helper .fc-event-bg {
|
||||
display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-vert .ui-resizable-s {
|
||||
bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
width: 100% !important;
|
||||
height: 8px !important;
|
||||
overflow: hidden !important;
|
||||
line-height: 8px !important;
|
||||
font-size: 11px !important;
|
||||
font-family: monospace;
|
||||
text-align: center;
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
.fc-agenda .ui-resizable-resizing { /* TODO: better selector */
|
||||
_overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*!
|
||||
* FullCalendar v2.0.2 Print Stylesheet
|
||||
* Docs & License: http://arshaw.com/fullcalendar/
|
||||
* (c) 2013 Adam Shaw
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include this stylesheet on your page to get a more printer-friendly calendar.
|
||||
* When including this stylesheet, use the media='print' attribute of the <link> tag.
|
||||
* Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.
|
||||
*/
|
||||
|
||||
|
||||
/* Events
|
||||
-----------------------------------------------------*/
|
||||
|
||||
.fc-event {
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
/* for vertical events */
|
||||
|
||||
.fc-event-bg {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.fc-event .ui-resizable-handle {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
/*!
|
||||
* FullCalendar v2.0.2 Google Calendar Plugin
|
||||
* Docs & License: http://arshaw.com/fullcalendar/
|
||||
* (c) 2013 Adam Shaw
|
||||
*/
|
||||
|
||||
(function(factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define([ 'jquery' ], factory);
|
||||
}
|
||||
else {
|
||||
factory(jQuery);
|
||||
}
|
||||
})(function($) {
|
||||
|
||||
|
||||
var fc = $.fullCalendar;
|
||||
var applyAll = fc.applyAll;
|
||||
|
||||
|
||||
fc.sourceNormalizers.push(function(sourceOptions) {
|
||||
if (sourceOptions.dataType == 'gcal' ||
|
||||
sourceOptions.dataType === undefined &&
|
||||
(sourceOptions.url || '').match(/^(http|https):\/\/www.google.com\/calendar\/feeds\//)) {
|
||||
sourceOptions.dataType = 'gcal';
|
||||
if (sourceOptions.editable === undefined) {
|
||||
sourceOptions.editable = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
fc.sourceFetchers.push(function(sourceOptions, start, end, timezone) {
|
||||
if (sourceOptions.dataType == 'gcal') {
|
||||
return transformOptions(sourceOptions, start, end, timezone);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function transformOptions(sourceOptions, start, end, timezone) {
|
||||
|
||||
var success = sourceOptions.success;
|
||||
var data = $.extend({}, sourceOptions.data || {}, {
|
||||
singleevents: true,
|
||||
'max-results': 9999
|
||||
});
|
||||
|
||||
return $.extend({}, sourceOptions, {
|
||||
url: sourceOptions.url.replace(/\/basic$/, '/full') + '?alt=json-in-script&callback=?',
|
||||
dataType: 'jsonp',
|
||||
data: data,
|
||||
timezoneParam: 'ctz',
|
||||
startParam: 'start-min',
|
||||
endParam: 'start-max',
|
||||
success: function(data) {
|
||||
var events = [];
|
||||
if (data.feed.entry) {
|
||||
$.each(data.feed.entry, function(i, entry) {
|
||||
|
||||
var url;
|
||||
$.each(entry.link, function(i, link) {
|
||||
if (link.type == 'text/html') {
|
||||
url = link.href;
|
||||
if (timezone && timezone != 'local') {
|
||||
url += (url.indexOf('?') == -1 ? '?' : '&') + 'ctz=' + encodeURIComponent(timezone);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
events.push({
|
||||
id: entry.gCal$uid.value,
|
||||
title: entry.title.$t,
|
||||
start: entry.gd$when[0].startTime,
|
||||
end: entry.gd$when[0].endTime,
|
||||
url: url,
|
||||
location: entry.gd$where[0].valueString,
|
||||
description: entry.content.$t
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
var args = [events].concat(Array.prototype.slice.call(arguments, 1));
|
||||
var res = applyAll(success, this, args);
|
||||
if ($.isArray(res)) {
|
||||
return res;
|
||||
}
|
||||
return events;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
// legacy
|
||||
fc.gcalFeed = function(url, sourceOptions) {
|
||||
return $.extend({}, sourceOptions, { url: url, dataType: 'gcal' });
|
||||
};
|
||||
|
||||
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}}),e.fullCalendar.datepickerLang("ar-ma","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("ar-ma",{defaultButtonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},r={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};t.lang("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(e){return 12>e?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return r[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return n[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),e.fullCalendar.datepickerLang("ar-sa","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("ar-sa",{defaultButtonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},r={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};t.lang("ar",{months:"يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),monthsShort:"يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiem:function(e){return 12>e?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return r[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return n[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),e.fullCalendar.datepickerLang("ar","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("ar",{defaultButtonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&20>n?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("bg","bg",{closeText:"затвори",prevText:"<назад",nextText:"напред>",nextBigText:">>",currentText:"днес",monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек"],dayNames:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],dayNamesShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("bg",{defaultButtonText:{month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("ca","ca",{closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("ca",{defaultButtonText:{month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},allDayText:"Tot el dia"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e){return e>1&&5>e&&1!==~~(e/10)}function a(e,t,a,r){var o=e+" ";switch(a){case"s":return t||r?"pár sekund":"pár sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?o+(n(e)?"minuty":"minut"):o+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?o+(n(e)?"hodiny":"hodin"):o+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?o+(n(e)?"dny":"dní"):o+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?o+(n(e)?"měsíce":"měsíců"):o+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?o+(n(e)?"roky":"let"):o+"lety"}}var r="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),o="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");t.lang("cs",{months:r,monthsShort:o,monthsParse:function(e,t){var n,a=[];for(n=0;12>n;n++)a[n]=RegExp("^"+e[n]+"$|^"+t[n]+"$","i");return a}(r,o),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H.mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("cs","cs",{closeText:"Zavřít",prevText:"<Dříve",nextText:"Později>",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("cs",{defaultButtonText:{month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("da","da",{closeText:"Luk",prevText:"<Forrige",nextText:"Næste>",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("da",{defaultButtonText:{month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}t.lang("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:n,mm:"%d Minuten",h:n,hh:"%d Stunden",d:n,dd:n,M:n,MM:n,y:n,yy:n},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("de-at","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("de-at",{defaultButtonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}t.lang("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:n,mm:"%d Minuten",h:n,hh:"%d Stunden",d:n,dd:n,M:n,MM:n,y:n,yy:n},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("de","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("de",{defaultButtonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n=this._calendarEl[e],a=t&&t.hours();return"function"==typeof n&&(n=n.apply(t)),n.replace("{}",1===a%12?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinal:function(e){return e+"η"},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("el","el",{closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Τρέχων Μήνας",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("el",{defaultButtonText:{month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},allDayText:"Ολοήμερο"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("en-au","en-AU",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("en-au")});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),e.fullCalendar.lang("en-ca")});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("en-gb","en-GB",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("en-gb",{columnFormat:{week:"ddd D/M"}})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");t.lang("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return/-MMM-/.test(t)?a[e.month()]:n[e.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [del] YYYY",LLL:"D [de] MMMM [del] YYYY LT",LLLL:"dddd, D [de] MMMM [del] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:"%dº",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("es","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ogo","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","juv","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("es",{defaultButtonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayText:"Todo el día"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},a={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};t.lang("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},meridiem:function(e){return 12>e?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return a[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return n[e]}).replace(/,/g,"،")},ordinal:"%dم",week:{dow:6,doy:12}}),e.fullCalendar.datepickerLang("fa","fa",{closeText:"بستن",prevText:"<قبلی",nextText:"بعدی>",currentText:"امروز",monthNames:["فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دی","بهمن","اسفند"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ی","د","س","چ","پ","ج","ش"],dayNamesMin:["ی","د","س","چ","پ","ج","ش"],weekHeader:"هف",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("fa",{defaultButtonText:{month:"ماه",week:"هفته",day:"روز",list:"برنامه"},allDayText:"تمام روز"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n,r){var o="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"m":return r?"minuutin":"minuutti";case"mm":o=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":o=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":o=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":o=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":o=r?"vuoden":"vuotta"}return o=a(e,r)+" "+o}function a(e,t){return 10>e?t?o[e]:r[e]:e}var r="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),o=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",r[7],r[8],r[9]];t.lang("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("fi","fi",{closeText:"Sulje",prevText:"«Edellinen",nextText:"Seuraava»",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("fi",{defaultButtonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(e){return e+(1===e?"er":"")}}),e.fullCalendar.datepickerLang("fr-ca","fr-CA",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("fr-ca",{defaultButtonText:{month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHTML:"Toute la journée"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(e){return e+(1===e?"er":"")},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("fr",{defaultButtonText:{month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHTML:"Toute la journée"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.lang("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return a[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return n[e]})},meridiem:function(e){return 4>e?"रात":10>e?"सुबह":17>e?"दोपहर":20>e?"शाम":"रात"},week:{dow:0,doy:6}}),e.fullCalendar.datepickerLang("hi","hi",{closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मार्च","अप्रेल","मई","जून","जूलाई","अगस्त ","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthNamesShort:["जन","फर","मार्च","अप्रेल","मई","जून","जूलाई","अग","सित","अक्ट","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],dayNamesMin:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],weekHeader:"हफ्ता",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("hi",{defaultButtonText:{month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},allDayText:"सभी दिन"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n){var a=e+" ";switch(n){case"m":return t?"jedna minuta":"jedne minute";case"mm":return a+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return a+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return a+=1===e?"dan":"dana";case"MM":return a+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return a+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}t.lang("hr",{months:"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),monthsShort:"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:n,mm:n,h:n,hh:n,d:"dan",dd:n,M:"mjesec",MM:n,y:"godinu",yy:n},ordinal:"%d.",week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("hr","hr",{closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("hr",{defaultButtonText:{month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n,a){var r=e;switch(n){case"s":return a||t?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(a||t?" perc":" perce");case"mm":return r+(a||t?" perc":" perce");case"h":return"egy"+(a||t?" óra":" órája");case"hh":return r+(a||t?" óra":" órája");case"d":return"egy"+(a||t?" nap":" napja");case"dd":return r+(a||t?" nap":" napja");case"M":return"egy"+(a||t?" hónap":" hónapja");case"MM":return r+(a||t?" hónap":" hónapja");case"y":return"egy"+(a||t?" év":" éve");case"yy":return r+(a||t?" év":" éve")}return""}function a(e){return(e?"":"[múlt] ")+"["+r[this.day()]+"] LT[-kor]"}var r="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");t.lang("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiem:function(e,t,n){return 12>e?n===!0?"de":"DE":n===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return a.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return a.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},ordinal:"%d.",week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),e.fullCalendar.lang("hu",{defaultButtonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(e){return 11>e?"pagi":15>e?"siang":19>e?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("id","id",{closeText:"Tutup",prevText:"<mundur",nextText:"maju>",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("id",{defaultButtonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sehari penuh"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e){return 11===e%100?!0:1===e%10?!1:!0}function a(e,t,a,r){var o=e+" ";switch(a){case"s":return t||r?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return t?"mínúta":"mínútu";case"mm":return n(e)?o+(t||r?"mínútur":"mínútum"):t?o+"mínúta":o+"mínútu";case"hh":return n(e)?o+(t||r?"klukkustundir":"klukkustundum"):o+"klukkustund";case"d":return t?"dagur":r?"dag":"degi";case"dd":return n(e)?t?o+"dagar":o+(r?"daga":"dögum"):t?o+"dagur":o+(r?"dag":"degi");case"M":return t?"mánuður":r?"mánuð":"mánuði";case"MM":return n(e)?t?o+"mánuðir":o+(r?"mánuði":"mánuðum"):t?o+"mánuður":o+(r?"mánuð":"mánuði");case"y":return t||r?"ár":"ári";case"yy":return n(e)?o+(t||r?"ár":"árum"):o+(t||r?"ár":"ári")}}t.lang("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:a,m:a,mm:a,h:"klukkustund",hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("is","is",{closeText:"Loka",prevText:"< Fyrri",nextText:"Næsti >",currentText:"Í dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd.mm.yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("is",{defaultButtonText:{month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},allDayText:"Allan daginn"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:"[lo scorso] dddd [alle] LT",sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:"%dº",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("it","it",{closeText:"Chiudi",prevText:"<Prec",nextText:"Succ>",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("it",{defaultButtonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayText:"Tutto il giorno"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiem:function(e){return 12>e?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),e.fullCalendar.datepickerLang("ja","ja",{closeText:"閉じる",prevText:"<前",nextText:"次>",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),e.fullCalendar.lang("ja",{defaultButtonText:{month:"月",week:"週",day:"日",list:"予定リスト"},allDayText:"終日"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 mm분",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 LT",LLLL:"YYYY년 MMMM D일 dddd LT"},meridiem:function(e){return 12>e?"오전":"오후"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinal:"%d일",meridiemParse:/(오전|오후)/,isPM:function(e){return"오후"===e}}),e.fullCalendar.datepickerLang("ko","ko",{closeText:"닫기",prevText:"이전달",nextText:"다음달",currentText:"오늘",monthNames:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthNamesShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],dayNamesShort:["일","월","화","수","목","금","토"],dayNamesMin:["일","월","화","수","목","금","토"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"년"}),e.fullCalendar.lang("ko",{defaultButtonText:{month:"월",week:"주",day:"일",list:"일정목록"},allDayText:"종일"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n,a){return t?"kelios sekundės":a?"kelių sekundžių":"kelias sekundes"}function a(e,t,n,a){return t?i(n)[0]:a?i(n)[1]:i(n)[2]}function r(e){return 0===e%10||e>10&&20>e}function i(e){return d[e].split("_")}function o(e,t,n,o){var s=e+" ";return 1===e?s+a(e,t,n[0],o):t?s+(r(e)?i(n)[1]:i(n)[0]):o?s+i(n)[1]:s+(r(e)?i(n)[1]:i(n)[2])}function s(e,t){var n=-1===t.indexOf("dddd HH:mm"),a=u[e.day()];return n?a:a.substring(0,a.length-2)+"į"}var d={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"},u="sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_");t.lang("lt",{months:"sausio_vasario_kovo_balandžio_gegužės_biržėlio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:s,weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], LT [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, LT [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], LT [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, LT [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:n,m:a,mm:o,h:a,hh:o,d:a,dd:o,M:a,MM:o,y:a,yy:o},ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("lt","lt",{closeText:"Uždaryti",prevText:"<Atgal",nextText:"Pirmyn>",currentText:"Šiandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","šeš"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Še"],weekHeader:"SAV",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),e.fullCalendar.lang("lt",{defaultButtonText:{month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},allDayText:"Visą dieną"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n){var a=e.split("_");return n?1===t%10&&11!==t?a[2]:a[3]:1===t%10&&11!==t?a[0]:a[1]}function a(e,t,a){return e+" "+n(r[a],e,t)}var r={mm:"minūti_minūtes_minūte_minūtes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mēnesi_mēnešus_mēnesis_mēneši",yy:"gadu_gadus_gads_gadi"};t.lang("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:a,h:"stundu",hh:a,d:"dienu",dd:a,M:"mēnesi",MM:a,y:"gadu",yy:a},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("lv","lv",{closeText:"Aizvērt",prevText:"Iepr.",nextText:"Nāk.",currentText:"Šodien",monthNames:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],dayNames:["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Ned.",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("lv",{defaultButtonText:{month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},allDayText:"Visu dienu"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),a="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");t.lang("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return/-MMM-/.test(t)?a[e.month()]:n[e.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("nl","nl",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("nl",{defaultButtonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e){return 5>e%10&&e%10>1&&1!==~~(e/10)%10}function a(e,t,a){var r=e+" ";switch(a){case"m":return t?"minuta":"minutę";case"mm":return r+(n(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(n(e)?"godziny":"godzin");case"MM":return r+(n(e)?"miesiące":"miesięcy");case"yy":return r+(n(e)?"lata":"lat")}}var r="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),i="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");t.lang("pl",{months:function(e,t){return/D MMMM/.test(t)?i[e.month()]:r[e.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:a,mm:a,h:a,hh:a,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:a,y:"rok",yy:a},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("pl","pl",{closeText:"Zamknij",prevText:"<Poprzedni",nextText:"Następny>",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("pl",{defaultButtonText:{month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},allDayText:"Cały dzień"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº"}),e.fullCalendar.datepickerLang("pt-br","pt-BR",{closeText:"Fechar",prevText:"<Anterior",nextText:"Próximo>",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("pt-br",{defaultButtonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("pt",{defaultButtonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n){var a={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},r=" ";return(e%100>=20||e>=100&&0===e%100)&&(r=" de "),e+r+a[n]}t.lang("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:n,h:"o oră",hh:n,d:"o zi",dd:n,M:"o lună",MM:n,y:"un an",yy:n},week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("ro","ro",{closeText:"Închide",prevText:"« Luna precedentă",nextText:"Luna următoare »",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("ro",{defaultButtonText:{prev:"precedentă",next:"următoare",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},allDayText:"Toată ziua"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t){var n=e.split("_");return 1===t%10&&11!==t%100?n[0]:t%10>=2&&4>=t%10&&(10>t%100||t%100>=20)?n[1]:n[2]}function a(e,t,a){var r={mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===a?t?"минута":"минуту":e+" "+n(r[a],+e)}function r(e,t){var n={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},a=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(t)?"accusative":"nominative";return n[a][e.month()]}function i(e,t){var n={nominative:"янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},a=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(t)?"accusative":"nominative";return n[a][e.month()]}function o(e,t){var n={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},a=/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/.test(t)?"accusative":"nominative";return n[a][e.day()]}t.lang("ru",{months:r,monthsShort:i,weekdays:o,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(){switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:a,mm:a,h:"час",hh:a,d:"день",dd:a,M:"месяц",MM:a,y:"год",yy:a},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e){return 4>e?"ночи":12>e?"утра":17>e?"дня":"вечера"},ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("ru","ru",{closeText:"Закрыть",prevText:"<Пред",nextText:"След>",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("ru",{defaultButtonText:{month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},allDayText:"Весь день"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e){return e>1&&5>e}function a(e,t,a,r){var i=e+" ";switch(a){case"s":return t||r?"pár sekúnd":"pár sekundami";case"m":return t?"minúta":r?"minútu":"minútou";case"mm":return t||r?i+(n(e)?"minúty":"minút"):i+"minútami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?i+(n(e)?"hodiny":"hodín"):i+"hodinami";case"d":return t||r?"deň":"dňom";case"dd":return t||r?i+(n(e)?"dni":"dní"):i+"dňami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?i+(n(e)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?i+(n(e)?"roky":"rokov"):i+"rokmi"}}var r="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),i="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");t.lang("sk",{months:r,monthsShort:i,monthsParse:function(e,t){var n,a=[];for(n=0;12>n;n++)a[n]=RegExp("^"+e[n]+"$|^"+t[n]+"$","i");return a}(r,i),weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinal:"%d.",week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("sk","sk",{closeText:"Zavrieť",prevText:"<Predchádzajúci",nextText:"Nasledujúci>",currentText:"Dnes",monthNames:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Št","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("sk",{defaultButtonText:{month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},allDayText:"Celý deň"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function n(e,t,n){var a=e+" ";switch(n){case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?"minuta":2===e?"minuti":3===e||4===e?"minute":"minut";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?"ura":2===e?"uri":3===e||4===e?"ure":"ur";case"dd":return a+=1===e?"dan":"dni";case"MM":return a+=1===e?"mesec":2===e?"meseca":3===e||4===e?"mesece":"mesecev";case"yy":return a+=1===e?"leto":2===e?"leti":3===e||4===e?"leta":"let"}}t.lang("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"%s nazaj",s:"nekaj sekund",m:n,mm:n,h:n,hh:n,d:"en dan",dd:n,M:"en mesec",MM:n,y:"eno leto",yy:n},ordinal:"%d.",week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("sl","sl",{closeText:"Zapri",prevText:"<Prejšnji",nextText:"Naslednji>",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","Če","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("sl",{defaultButtonText:{month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},allDayText:"Ves dan"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var n={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&4>=e?t[1]:t[2]},translate:function(e,t,a){var r=n.words[a];return 1===a.length?t?r[0]:r[1]:e+" "+n.correctGrammaticalCase(e,r)}};t.lang("sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var e=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:n.translate,mm:n.translate,h:n.translate,hh:n.translate,d:"дан",dd:n.translate,M:"месец",MM:n.translate,y:"годину",yy:n.translate},ordinal:"%d.",week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("sr-cyrl","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("sr-cyrl",{defaultButtonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var a={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&4>=e?t[1]:t[2]},translate:function(e,t,n){var r=a.words[n];return 1===n.length?t?r[0]:r[1]:e+" "+a.correctGrammaticalCase(e,r)}};t.lang("sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var e=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:a.translate,mm:a.translate,h:a.translate,hh:a.translate,d:"dan",dd:a.translate,M:"mesec",MM:a.translate,y:"godinu",yy:a.translate},ordinal:"%d.",week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("sr","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("sr",{defaultButtonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:function(e){var t=e%10,a=1===~~(e%100/10)?"e":1===t?"a":2===t?"a":3===t?"e":"e";return e+a},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("sv","sv",{closeText:"Stäng",prevText:"«Förra",nextText:"Nästa»",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("sv",{defaultButtonText:{month:"Månad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiem:function(e){return 12>e?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),e.fullCalendar.datepickerLang("th","th",{closeText:"ปิด",prevText:"« ย้อน",nextText:"ถัดไป »",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("th",{defaultButtonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){var a={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};t.lang("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e){if(0===e)return e+"'ıncı";var t=e%10,n=e%100-t,r=e>=100?100:null;return e+(a[t]||a[n]||a[r])},week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("tr","tr",{closeText:"kapat",prevText:"<geri",nextText:"ileri>",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("tr",{defaultButtonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){function a(e,t){var a=e.split("_");return 1===t%10&&11!==t%100?a[0]:t%10>=2&&4>=t%10&&(10>t%100||t%100>=20)?a[1]:a[2]}function n(e,t,n){var r={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+a(r[n],+e)}function r(e,t){var a={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},n=/D[oD]? *MMMM?/.test(t)?"accusative":"nominative";return a[n][e.month()]}function i(e,t){var a={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},n=/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative";return a[n][e.day()]}function o(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}t.lang("uk",{months:r,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:i,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:o("[Сьогодні "),nextDay:o("[Завтра "),lastDay:o("[Вчора "),nextWeek:o("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return o("[Минулої] dddd [").call(this);case 1:case 2:case 4:return o("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiem:function(e){return 4>e?"ночі":12>e?"ранку":17>e?"дня":"вечора"},ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}}),e.fullCalendar.datepickerLang("uk","uk",{closeText:"Закрити",prevText:"<",nextText:">",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],dayNames:["неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота"],dayNamesShort:["нед","пнд","вів","срд","чтв","птн","сбт"],dayNamesMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("uk",{defaultButtonText:{month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},allDayText:"Увесь день"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY LT",LLLL:"dddd, D MMMM [năm] YYYY LT",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinal:function(e){return e},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("vi","vi",{closeText:"Đóng",prevText:"<Trước",nextText:"Tiếp>",currentText:"Hôm nay",monthNames:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.lang("vi",{defaultButtonText:{month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},allDayText:"Cả ngày"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(e,t){var a=100*e+t;return 600>a?"凌晨":900>a?"早上":1130>a?"上午":1230>a?"中午":1800>a?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var e,a;return e=t().startOf("week"),a=this.unix()-e.unix()>=604800?"[下]":"[本]",0===this.minutes()?a+"dddAh点整":a+"dddAh点mm"},lastWeek:function(){var e,a;return e=t().startOf("week"),a=this.unix()<e.unix()?"[上]":"[本]",0===this.minutes()?a+"dddAh点整":a+"dddAh点mm"},sameElse:"LL"},ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}}),e.fullCalendar.datepickerLang("zh-cn","zh-CN",{closeText:"关闭",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),e.fullCalendar.lang("zh-cn",{defaultButtonText:{month:"月",week:"周",day:"日",list:"日程"},allDayText:"全天"})});
|
||||
@@ -0,0 +1 @@
|
||||
(function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):e(jQuery,moment)})(function(e,t){t.lang("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah點mm",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiem:function(e,t){var a=100*e+t;return 900>a?"早上":1130>a?"上午":1230>a?"中午":1800>a?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}}),e.fullCalendar.datepickerLang("zh-tw","zh-TW",{closeText:"關閉",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),e.fullCalendar.lang("zh-tw",{defaultButtonText:{month:"月",week:"週",day:"天",list:"待辦事項"},allDayText:"全天"})});
|
||||