bugfixes and minor enhancements for 1.4.2

- eventAfterRender
- getView
- displaying in iframe (also added tests)
- render method now adjusts calendar's size too
- day-of-week classnames fixed when firstDay=1
- leave more space on side event events in agenda views
- "T" optional in ISO8601 events
This commit is contained in:
Adam Shaw
2009-11-28 20:43:02 -08:00
parent 559928cec8
commit dbdbafd35d
33 changed files with 1029 additions and 34 deletions
+30 -18
View File
@@ -210,7 +210,7 @@ $.fn.fullCalendar = function(options) {
}
}
function render(inc) {
function render(inc, updateSize) {
if (_element.offsetWidth !== 0) { // visible on the screen
if (inc || !view.date || +view.date != +date) { // !view.date means it hasn't been rendered yet
fixContentSize();
@@ -225,7 +225,7 @@ $.fn.fullCalendar = function(options) {
unfixContentSize();
view.date = cloneDate(date);
}
else if (view.sizeDirty) {
else if (view.sizeDirty || updateSize) {
view.updateSize();
view.rerenderEvents();
}
@@ -366,9 +366,16 @@ $.fn.fullCalendar = function(options) {
var publicMethods = {
render: render,
render: function() {
render(0, true); // true forces size to updated
},
changeView: changeView,
getView: function() {
return view;
},
//
// Navigation
//
@@ -688,22 +695,27 @@ $.fn.fullCalendar = function(options) {
}
$(window).resize(function() {
if (!contentSizeFixed && view.date) { // view.date means the view has been rendered
var rcnt = ++resizeCnt; // add a delay
setTimeout(function() {
if (rcnt == resizeCnt && !contentSizeFixed) {
var newWidth = element.width();
if (newWidth != elementWidth) {
elementWidth = newWidth;
fixContentSize();
view.updateSize();
unfixContentSize();
view.rerenderEvents(true);
sizesDirtyExcept(view);
view.trigger('windowResize', _element);
if (!contentSizeFixed) {
if (view.date) { // view has already been rendered
var rcnt = ++resizeCnt; // add a delay
setTimeout(function() {
if (rcnt == resizeCnt && !contentSizeFixed) {
var newWidth = element.width();
if (newWidth != elementWidth) {
elementWidth = newWidth;
fixContentSize();
view.updateSize();
unfixContentSize();
view.rerenderEvents(true);
sizesDirtyExcept(view);
view.trigger('windowResize', _element);
}
}
}
}, 200);
}, 200);
}else{
render(); // render for first time
// was probably in a 0x0 iframe that has just been resized
}
}
});