diff --git a/Gruntfile.js b/Gruntfile.js index 47a649d..ae2c643 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -11,7 +11,9 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-compress'); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-jscs-checker'); + grunt.loadNpmTasks('grunt-shell'); grunt.loadNpmTasks('grunt-karma'); grunt.loadNpmTasks('grunt-bump'); grunt.loadNpmTasks('lumbar'); @@ -21,8 +23,10 @@ module.exports = function(grunt) { var config = { concat: {}, uglify: {}, + cssmin: {}, copy: {}, compress: {}, + shell: {}, clean: { temp: 'build/temp' } @@ -46,6 +50,7 @@ module.exports = function(grunt) { // Bare minimum for debugging grunt.registerTask('dev', [ + 'shell:assume-unchanged', 'lumbar:build', 'languages' ]); @@ -61,7 +66,8 @@ module.exports = function(grunt) { 'lumbar:build', 'concat:moduleVariables', 'jshint:builtModules', - 'uglify:modules' + 'uglify:modules', + 'cssmin:modules' ]); // assemble modules @@ -90,7 +96,7 @@ module.exports = function(grunt) { dest: 'dist/' }; - // create minified versions (*.min.js) + // create minified versions of JS config.uglify.modules = { options: { preserveComments: 'some' // keep comments starting with /*! @@ -100,6 +106,13 @@ module.exports = function(grunt) { ext: '.min.js' }; + // create minified versions of CSS + config.cssmin.modules = { + expand: true, + src: 'dist/fullcalendar.css', // only do it for fullcalendar.css + ext: '.min.css' + }; + config.clean.modules = [ 'dist/*.{js,css,map}', // maps created by lumbar sourceMap 'dist/src' // created by lumbar sourceMap @@ -218,11 +231,10 @@ module.exports = function(grunt) { config.concat.archiveJQueryUI = { src: [ - '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' + 'lib/jquery-ui/ui/minified/core.min.js', + 'lib/jquery-ui/ui/minified/widget.min.js', + 'lib/jquery-ui/ui/minified/mouse.min.js', + 'lib/jquery-ui/ui/minified/draggable.min.js' ], dest: 'build/temp/archive/lib/jquery-ui.custom.min.js' }; @@ -253,7 +265,7 @@ module.exports = function(grunt) { function transformDemoPath(path) { 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/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'); @@ -374,6 +386,24 @@ module.exports = function(grunt) { + /* 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); diff --git a/bower.json b/bower.json index a3b955d..6278156 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,14 @@ { "name": "fullcalendar", - "version": "2.0.2", - - "description": "Full-sized drag & drop event calendar", - "keywords": [ "calendar", "event", "full-sized" ], + "version": "2.1.1", + "description": "Full-sized drag & drop event calendar with resources", + "keywords": [ + "calendar", + "event", + "full-sized", + "Resources" + ], "homepage": "http://arshaw.com/fullcalendar/", - "dependencies": { "jquery": ">=1.7.1", "moment": ">=2.5.0" @@ -13,14 +16,15 @@ "devDependencies": { "jquery-ui": ">=1.11.1", "jquery-simulate-ext": "~1.3.0", - "jquery-mockjax": "~1.5.3", + "jquery-mockjax": "~1.5.4", "jasmine-jquery": "~2.0.3", "jasmine-fixture": "~1.2.0", - "moment-timezone": "~0.2.1" + "moment-timezone": "~0.2.1", + "bootstrap": "~3.2.0" }, "main": [ - "/dist/fullcalendar.js", - "/dist/fullcalendar.css" + "dist/fullcalendar.js", + "dist/fullcalendar.css" ], "ignore": [ "*", diff --git a/build/cdnjs-commit.sh b/build/cdnjs-commit.sh index d23b076..ed09fb8 100644 --- a/build/cdnjs-commit.sh +++ b/build/cdnjs-commit.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash cd "`dirname $0`/.." +proj_dir="$PWD" echo echo "This script assumes the following:" @@ -26,16 +27,23 @@ read cdnjs_dir_override if [[ "$cdnjs_dir_override" ]] then cdnjs_dir="$cdnjs_dir_override" -fi +fi -cp -r -f dist/cdnjs/* "$cdnjs_dir/ajax/libs/fullcalendar" && \ -cd $cdnjs_dir && \ +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 && \ -git add "ajax/libs/fullcalendar" && \ +\ +echo "Building commit..." && \ +git add "ajax/libs/fullcalendar/" && \ git commit -e -m "fullcalendar v$version" && \ echo && \ -echo 'Pulling from upstream...' && \ -git pull --rebase upstream master && \ -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 \ No newline at end of file diff --git a/build/karma.conf.js b/build/karma.conf.js index d76bfe0..01d2b08 100644 --- a/build/karma.conf.js +++ b/build/karma.conf.js @@ -16,9 +16,13 @@ module.exports = function(config) { // 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', + '../lib/jquery-ui/jquery-ui.js', // for jquery simulate '../lib/jquery-simulate-ext/libs/bililiteRange.js', @@ -39,13 +43,8 @@ module.exports = function(config) { '../dist/lang-all.js', '../dist/fullcalendar.css', '../tests/base.css', - '../tests/automated/*.js' - // For IE8 testing. Because it can't handle running all the tests at once. - // Comment the above line and run karma with each of the below lines uncommented. - //'../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 diff --git a/build/release.sh b/build/release.sh index 590db6d..0537983 100644 --- a/build/release.sh +++ b/build/release.sh @@ -6,15 +6,25 @@ read -p "Enter the new version number with no 'v' (for example '1.0.1'): " versi if [[ ! "$version" ]] then - exit; + exit fi grunt bump --setversion=$version && \ grunt dist && \ -git add *.json && \ +grunt shell:no-assume-unchanged && \ git add -f dist/*.js dist/*.css dist/lang/*.js && \ -git commit -e -m "version $version" && \ -git tag -a v$version -m "version $version" && \ -echo && \ -echo 'DONE. It is now up to you to run `'"git push origin master && git push origin v$version"'`' && \ -echo \ No newline at end of file +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 \ No newline at end of file diff --git a/build/tasks/generateLanguages.js b/build/tasks/generateLanguages.js index 9337361..dee8510 100644 --- a/build/tasks/generateLanguages.js +++ b/build/tasks/generateLanguages.js @@ -151,7 +151,7 @@ module.exports = function(grunt) { return '-' + m1.toUpperCase(); }); - var path = config.datepicker + '/datepicker-' + datepickerLangCode + '.js'; + var path = pathLib.join(config.datepicker, 'datepicker-' + datepickerLangCode + '.js'); var js; try { diff --git a/build/watch.sh b/build/watch.sh index ab08321..56eb656 100644 --- a/build/watch.sh +++ b/build/watch.sh @@ -2,4 +2,5 @@ cd "`dirname $0`/.." +grunt shell:assume-unchanged grunt lumbar:watch \ No newline at end of file diff --git a/changelog.md b/changelog.md index e96f5bd..cc2241a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,126 @@ +v2.1.1 (2014-08-29) +------------------- + +- removeEventSource not working with array ([2203]) +- mouseout not triggered after mouseover+updateEvent ([829]) +- agenda event's render with no href, not clickable ([2263]) + +[2203]: https://code.google.com/p/fullcalendar/issues/detail?id=2203 +[829]: https://code.google.com/p/fullcalendar/issues/detail?id=829 +[2263]: https://code.google.com/p/fullcalendar/issues/detail?id=2263 + + +v2.1.0 (2014-08-25) +------------------- + +Large code refactor with better OOP, better code reuse, and more comments. +**No more reliance on jQuery UI** for event dragging, resizing, or anything else. + +Significant changes to HTML/CSS skeleton: +- Leverages tables for liquid rendering of days and events. No costly manual repositioning ([809]) +- **Backwards-incompatibilities**: + - **Many classNames have changed. Custom CSS will likely need to be adjusted.** + - IE7 definitely not supported anymore + - In `eventRender` callback, `element` will not be attached to DOM yet + - Events are styled to be one line by default ([1992]). Can be undone through custom CSS, + but not recommended (might get gaps [like this][111] in certain situations). + +A "more..." link when there are too many events on a day ([304]). Works with month and basic views +as well as the all-day section of the agenda views. New options: +- `eventLimit`. a number or `true` +- `eventLimitClick`. the `"popover`" value will reveal all events in a raised panel (the default) +- `eventLimitText` +- `dayPopoverFormat` + +Changes related to height and scrollbars: +- `aspectRatio`/`height`/`contentHeight` values will be honored *no matter what* + - If too many events causing too much vertical space, scrollbars will be used ([728]). + This is default behavior for month view (**backwards-incompatibility**) + - If too few slots in agenda view, view will stretch to be the correct height ([2196]) +- `'auto'` value for `height`/`contentHeight` options. If content is too tall, the view will + vertically stretch to accomodate and no scrollbars will be used ([521]). +- Tall weeks in month view will borrow height from other weeks ([243]) +- Automatically scroll the view then dragging/resizing an event ([1025], [2078]) +- New `fixedWeekCount` option to determines the number of weeks in month view + - Supersedes `weekMode` (**deprecated**). Instead, use a combination of `fixedWeekCount` and + one of the height options, possibly with an `'auto'` value + +Much nicer, glitch-free rendering of calendar *for printers* ([35]). Things you might not expect: +- Buttons will become hidden +- Agenda views display a flat list of events where the time slots would be + +Other issues resolved along the way: +- Space on right side of agenda events configurable through CSS ([204]) +- Problem with window resize ([259]) +- Events sorting stays consistent across weeks ([510]) +- Agenda's columns misaligned on wide screens ([511]) +- Run `selectHelper` through `eventRender` callbacks ([629]) +- Keyboard access, tabbing ([637]) +- Run resizing events through `eventRender` ([714]) +- Resize an event to a different day in agenda views ([736]) +- Allow selection across days in agenda views ([778]) +- Mouseenter delegated event not working on event elements ([936]) +- Agenda event dragging, snapping to different columns is erratic ([1101]) +- Android browser cuts off Day view at 8 PM with no scroll bar ([1203]) +- Don't fire `eventMouseover`/`eventMouseout` while dragging/resizing ([1297]) +- Customize the resize handle text ("=") ([1326]) +- If agenda event is too short, don't overwrite `.fc-event-time` ([1700]) +- Zooming calendar causes events to misalign ([1996]) +- Event destroy callback on event removal ([2017]) +- Agenda views, when RTL, should have axis on right ([2132]) +- Make header buttons more accessibile ([2151]) +- daySelectionMousedown should interpret OSX ctrl+click as a right mouse click ([2169]) +- Best way to display time text on multi-day events *with times* ([2172]) +- Eliminate table use for header layout ([2186]) +- Event delegation used for event-related callbacks (like `eventClick`). Speedier. + +[35]: https://code.google.com/p/fullcalendar/issues/detail?id=35 +[204]: https://code.google.com/p/fullcalendar/issues/detail?id=204 +[243]: https://code.google.com/p/fullcalendar/issues/detail?id=243 +[259]: https://code.google.com/p/fullcalendar/issues/detail?id=259 +[304]: https://code.google.com/p/fullcalendar/issues/detail?id=304 +[510]: https://code.google.com/p/fullcalendar/issues/detail?id=510 +[511]: https://code.google.com/p/fullcalendar/issues/detail?id=511 +[521]: https://code.google.com/p/fullcalendar/issues/detail?id=521 +[629]: https://code.google.com/p/fullcalendar/issues/detail?id=629 +[637]: https://code.google.com/p/fullcalendar/issues/detail?id=637 +[714]: https://code.google.com/p/fullcalendar/issues/detail?id=714 +[728]: https://code.google.com/p/fullcalendar/issues/detail?id=728 +[736]: https://code.google.com/p/fullcalendar/issues/detail?id=736 +[778]: https://code.google.com/p/fullcalendar/issues/detail?id=778 +[809]: https://code.google.com/p/fullcalendar/issues/detail?id=809 +[936]: https://code.google.com/p/fullcalendar/issues/detail?id=936 +[1025]: https://code.google.com/p/fullcalendar/issues/detail?id=1025 +[1101]: https://code.google.com/p/fullcalendar/issues/detail?id=1101 +[1203]: https://code.google.com/p/fullcalendar/issues/detail?id=1203 +[1297]: https://code.google.com/p/fullcalendar/issues/detail?id=1297 +[1326]: https://code.google.com/p/fullcalendar/issues/detail?id=1326 +[1700]: https://code.google.com/p/fullcalendar/issues/detail?id=1700 +[1992]: https://code.google.com/p/fullcalendar/issues/detail?id=1992 +[1996]: https://code.google.com/p/fullcalendar/issues/detail?id=1996 +[2017]: https://code.google.com/p/fullcalendar/issues/detail?id=2017 +[2078]: https://code.google.com/p/fullcalendar/issues/detail?id=2078 +[2132]: https://code.google.com/p/fullcalendar/issues/detail?id=2132 +[2151]: https://code.google.com/p/fullcalendar/issues/detail?id=2151 +[2169]: https://code.google.com/p/fullcalendar/issues/detail?id=2169 +[2172]: https://code.google.com/p/fullcalendar/issues/detail?id=2172 +[2186]: https://code.google.com/p/fullcalendar/issues/detail?id=2186 +[2196]: https://code.google.com/p/fullcalendar/issues/detail?id=2196 +[111]: https://code.google.com/p/fullcalendar/issues/detail?id=111 + + +v2.0.3 (2014-08-15) +------------------- + +- moment-2.8.1 compatibility ([2221]) +- relative path in bower.json ([PR 117]) +- upgraded jquery-ui and misc dev dependencies + +[2221]: https://code.google.com/p/fullcalendar/issues/detail?id=2221 +[PR 117]: https://github.com/arshaw/fullcalendar/pull/177 + + v2.0.2 (2014-06-24) ------------------- diff --git a/demos/agenda-views.html b/demos/agenda-views.html index df4e6b7..4a41578 100644 --- a/demos/agenda-views.html +++ b/demos/agenda-views.html @@ -6,7 +6,6 @@ - - - - + - - - - - - - - - - - - diff --git a/tests/hiddenDays.html b/tests/hiddenDays.html index d3bd45a..97bd90b 100644 --- a/tests/hiddenDays.html +++ b/tests/hiddenDays.html @@ -4,7 +4,6 @@ - - - - - - - diff --git a/tests/issue_230_height_json_events.html b/tests/issue_230_height_json_events.html index 6e1d0b9..9878dea 100644 --- a/tests/issue_230_height_json_events.html +++ b/tests/issue_230_height_json_events.html @@ -4,7 +4,6 @@ - - - - - diff --git a/tests/issue_429_gotoDate.html b/tests/issue_429_gotoDate.html index afca176..1b021b0 100644 --- a/tests/issue_429_gotoDate.html +++ b/tests/issue_429_gotoDate.html @@ -4,7 +4,6 @@ - - - - diff --git a/tests/issue_586_refetchEvents.html b/tests/issue_586_refetchEvents.html index 988104b..ba399a9 100644 --- a/tests/issue_586_refetchEvents.html +++ b/tests/issue_586_refetchEvents.html @@ -4,7 +4,6 @@ - diff --git a/tests/issue_616.html b/tests/issue_616.html index cf9ed88..57cef76 100644 --- a/tests/issue_616.html +++ b/tests/issue_616.html @@ -4,7 +4,6 @@ - diff --git a/tests/issue_679.html b/tests/issue_679.html index 9130670..b61f9cf 100644 --- a/tests/issue_679.html +++ b/tests/issue_679.html @@ -4,7 +4,6 @@ - diff --git a/tests/issue_688_parseInt.html b/tests/issue_688_parseInt.html index cbced33..108cc59 100644 --- a/tests/issue_688_parseInt.html +++ b/tests/issue_688_parseInt.html @@ -4,7 +4,6 @@ - - - - - diff --git a/tests/lib/jasmine-ext.js b/tests/lib/jasmine-ext.js index 785ec94..ac2ef45 100644 --- a/tests/lib/jasmine-ext.js +++ b/tests/lib/jasmine-ext.js @@ -1,27 +1,170 @@ beforeEach(function() { + + // don't show warnings about deprecated methods like `moment.lang`, etc. + // at some point we'll require moment version above 2.8. + // until then, it's too annoying to support two versions. + // (not the best place for this) + moment.suppressDeprecationWarnings = true; + jasmine.addMatchers({ + + // Moment and Duration + toEqualMoment: function() { return { compare: function(actual, expected) { - return { - pass: $.fullCalendar.moment.parseZone(actual).format() === - $.fullCalendar.moment.parseZone(expected).format() + var actualStr = $.fullCalendar.moment.parseZone(actual).format(); + var expectedStr = $.fullCalendar.moment.parseZone(expected).format(); + var result = { + pass: actualStr === expectedStr }; + if (!result.pass) { + result.message = 'Moment ' + actualStr + ' does not equal ' + expectedStr; + } + return result; } }; }, toEqualNow: function() { return { compare: function(actual) { - return { - pass: Math.abs( - $.fullCalendar.moment.parseZone(actual) - - new Date() - ) < 1000 // within a second of current datetime + var actualMoment = $.fullCalendar.moment.parseZone(actual); + var result = { + pass: Math.abs(actualMoment - new Date()) < 1000 // within a second of current datetime }; + if (!result.pass) { + result.message = 'Moment ' + actualMoment.format() + ' is not close enough to now'; + } + return result; + } + }; + }, + toEqualDuration: function() { + return { + compare: function(actual, expected) { + var actualStr = serializeDuration(moment.duration(actual)); + var expectedStr = serializeDuration(moment.duration(expected)); + var result = { + pass: actualStr === expectedStr + }; + if (!result.pass) { + result.message = 'Duration ' + actualStr + ' does not equal ' + expectedStr; + } + return result; + } + }; + }, + + + // DOM + + toHaveScrollbars: function() { + return { + compare: function(actual) { + var elm = $(actual); + var result = { + pass: elm[0].scrollWidth - 1 > elm[0].clientWidth || // -1 !!! + elm[0].scrollHeight - 1 > elm[0].clientHeight // -1 !!! + }; + // !!! - IE was reporting a scrollWidth/scrollHeight 1 pixel taller than what it was :( + return result; + } + }; + }, + + + // Geometry + + toBeBoundedBy: function() { + return { + compare: function(actual, expected) { + var outer = getBounds(expected); + var inner = getBounds(actual); + var result = { + pass: outer && inner && + inner.left >= outer.left && + inner.right <= outer.right && + inner.top >= outer.top && + inner.bottom <= outer.bottom + }; + if (!result.pass) { + result.message = 'Element does not bound other element'; + } + return result; + } + }; + }, + toBeLeftOf: function() { + return { + compare: function(actual, expected) { + var subjectBounds = getBounds(actual); + var otherBounds = getBounds(expected); + var result = { + pass: subjectBounds && otherBounds && + Math.round(subjectBounds.right) <= Math.round(otherBounds.left) + // need to round because IE was giving weird fractions + }; + if (!result.pass) { + result.message = 'Element is not to the left of the other element'; + } + return result; + } + }; + }, + toBeRightOf: function() { + return { + compare: function(actual, expected) { + var subjectBounds = getBounds(actual); + var otherBounds = getBounds(expected); + var result = { + pass: subjectBounds && otherBounds && + Math.round(subjectBounds.left) >= Math.round(otherBounds.right) + // need to round because IE was giving weird fractions + }; + if (!result.pass) { + result.message = 'Element is not to the right of the other element'; + } + return result; } }; } + }); -}); \ No newline at end of file + + function serializeDuration(duration) { + return Math.floor(duration.asDays()) + '.' + + pad(duration.hours(), 2) + ':' + + pad(duration.minutes(), 2) + ':' + + pad(duration.seconds(), 2) + '.' + + pad(duration.milliseconds(), 3); + } + + function pad(n, width) { + n = n + ''; + return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n; + } + + function getBounds(node) { + var el = $(node); + var offset = el.offset(); + + if (!offset) { + return false; + } + + return { + top: offset.top, + left: offset.left, + right: offset.left + el.outerWidth(), + bottom: offset.top + el.outerHeight() + }; + } + +}); + +// Destroy the calendar afterwards, to prevent memory leaks +// (not the best place for this) +afterEach(function() { + $('#calendar,#cal').fullCalendar('destroy'); // common id's for calendars in tests +}); diff --git a/tests/lib/jquery-simulate-hacks.js b/tests/lib/jquery-simulate-hacks.js index c006874..fa529f3 100644 --- a/tests/lib/jquery-simulate-hacks.js +++ b/tests/lib/jquery-simulate-hacks.js @@ -28,4 +28,27 @@ }; } + + /* + Give jquery-simulate-ext drag-n-drop a default interpolation. + */ + + var originalSimulate = $.fn.simulate; + + $.fn.simulate = function(eventName, options) { + + if (eventName == 'drag' || eventName == 'drop' || eventName == 'drag-n-drop') { + options = options || {}; + if (options.interpolation === undefined) { + options.interpolation = { + stepCount: 10, + duration: 100 + }; + } + return originalSimulate.call(this, eventName, options); + } + + return originalSimulate.apply(this, arguments); + }; + })(jQuery); \ No newline at end of file diff --git a/tests/liquidwidth.html b/tests/liquidwidth.html index a6e8fcf..8bc2aab 100644 --- a/tests/liquidwidth.html +++ b/tests/liquidwidth.html @@ -4,7 +4,6 @@ - - - - - - - - diff --git a/tests/no_event_titles.html b/tests/no_event_titles.html index 2edd1e4..2363842 100644 --- a/tests/no_event_titles.html +++ b/tests/no_event_titles.html @@ -4,7 +4,6 @@ - - - - - - - - - - - diff --git a/tests/sources_new.html b/tests/sources_new.html index f53fb2c..a1026f7 100644 --- a/tests/sources_new.html +++ b/tests/sources_new.html @@ -4,7 +4,6 @@ - diff --git a/tests/stacking.html b/tests/stacking.html index 4b99f5a..2e838b3 100644 --- a/tests/stacking.html +++ b/tests/stacking.html @@ -4,7 +4,6 @@ - - - @@ -12,91 +11,74 @@ function initCalendar() { - var date = new Date(); - var d = date.getDate(); - var m = date.getMonth(); - var y = date.getFullYear(); - $('#calendar').fullCalendar({ - theme: true, + header: { + left: 'prev,next today', + center: 'title', + right: 'month,agendaWeek,agendaDay' + }, + defaultDate: '2014-08-12', + weekNumbers: true, editable: true, - //weekends: false, - - header: { - left: 'prev,next today', //'prevYear,prev,next,nextYear today', - center: 'title', - right: 'month,agendaWeek,agendaDay' //'month,agendaWeek,basicWeek,agendaDay,basicDay' - }, - - /* - buttonIcons: { - prev: 'triangle-1-w', - next: 'triangle-1-e', - today: 'home' - }, - */ - - /* - isRTL: true, - header: { - left: 'nextYear,next,prev,prevYear today', - center: 'title', - right: 'month,agendaWeek,basicWeek,agendaDay,basicDay' - }, - */ - + eventLimit: true, // allow "more" link when too many events events: [ { title: 'All Day Event', - start: new Date(y, m, 1) + start: '2014-08-01' }, { title: 'Long Event', - start: new Date(y, m, d-5), - end: new Date(y, m, d-2) + start: '2014-08-07', + end: '2014-08-10' }, { id: 999, title: 'Repeating Event', - start: new Date(y, m, d-3, 16, 0), - allDay: false + start: '2014-08-09T16:00:00' }, { id: 999, title: 'Repeating Event', - start: new Date(y, m, d+4, 16, 0), - allDay: false + start: '2014-08-16T16:00:00' + }, + { + title: 'Conference', + start: '2014-08-11', + end: '2014-08-13' }, { title: 'Meeting', - start: new Date(y, m, d, 10, 30), - allDay: false + start: '2014-08-12' }, { - id: 777, title: 'Lunch', - start: new Date(y, m, d, 12, 0), - end: new Date(y, m, d, 14, 0), - allDay: false, - //className: 'yellow-event black-text-event', - className: ['yellow-event', 'black-text-event'] + start: '2014-08-12' + }, + { + title: 'Meeting', + start: '2014-08-12' + }, + { + title: 'Happy Hour', + start: '2014-08-12' + }, + { + title: 'Dinner', + start: '2014-08-12' }, { 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-08-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-08-28' } ] }); - + } diff --git a/tests/triggers.html b/tests/triggers.html index b3116de..0c6f07d 100644 --- a/tests/triggers.html +++ b/tests/triggers.html @@ -4,7 +4,6 @@ - diff --git a/tests/triggers_view.html b/tests/triggers_view.html index 4792621..5258876 100644 --- a/tests/triggers_view.html +++ b/tests/triggers_view.html @@ -4,7 +4,6 @@ - diff --git a/tests/week_numbers.html b/tests/week_numbers.html index 3cea089..b0cc678 100644 --- a/tests/week_numbers.html +++ b/tests/week_numbers.html @@ -5,7 +5,6 @@ -