mirror of
https://github.com/wassname/fullcalendar.git
synced 2026-07-23 12:50:32 +08:00
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:
+5
-2
@@ -195,7 +195,7 @@ function Agenda(element, options, methods) {
|
||||
"<table style='width:100%;height:100%'><tr class='fc-first'>";
|
||||
for (i=0; i<colCnt; i++) {
|
||||
s += "<td class='fc-" +
|
||||
dayIDs[i] + ' ' + // needs to be first
|
||||
dayIDs[d.getDay()] + ' ' + // needs to be first
|
||||
tm + '-state-default ' +
|
||||
(i==0 ? 'fc-leftmost ' : '') +
|
||||
(+d == +today ? tm + '-state-highlight fc-today' : 'fc-not-today') +
|
||||
@@ -461,6 +461,7 @@ function Agenda(element, options, methods) {
|
||||
}
|
||||
}
|
||||
view.reportEventElement(event, eventElement);
|
||||
view.trigger('eventAfterRender', event, event, eventElement);
|
||||
levelHeight = Math.max(levelHeight, eventElement.outerHeight(true));
|
||||
}
|
||||
}
|
||||
@@ -500,6 +501,7 @@ function Agenda(element, options, methods) {
|
||||
bottom = timePosition(seg.start, seg.end);
|
||||
tdInner = bg.find('td:eq(' + (colI*dis + dit) + ') div div');
|
||||
availWidth = tdInner.width();
|
||||
availWidth = Math.min(availWidth-6, availWidth*.95); // TODO: move this to CSS
|
||||
if (levelI) {
|
||||
// indented and thin
|
||||
width = availWidth / (levelI + forward + 1);
|
||||
@@ -509,7 +511,7 @@ function Agenda(element, options, methods) {
|
||||
width = ((availWidth / (forward + 1)) - (12/2)) * 2; // 12 is the predicted width of resizer =
|
||||
}else{
|
||||
// can be entire width, aligned left
|
||||
width = availWidth * .96;
|
||||
width = availWidth;
|
||||
}
|
||||
}
|
||||
left = axisWidth + tdInner.position().left + // leftmost possible
|
||||
@@ -560,6 +562,7 @@ function Agenda(element, options, methods) {
|
||||
}
|
||||
}
|
||||
view.reportEventElement(event, eventElement);
|
||||
view.trigger('eventAfterRender', event, event, eventElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -152,4 +152,4 @@
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -478,6 +478,7 @@ function Grid(element, options, methods) {
|
||||
}
|
||||
}
|
||||
view.reportEventElement(event, eventElement);
|
||||
view.trigger('eventAfterRender', event, event, eventElement);
|
||||
levelHeight = Math.max(levelHeight, eventElement.outerHeight(true));
|
||||
}
|
||||
}
|
||||
|
||||
+30
-18
@@ -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
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ var parseDate = fc.parseDate = function(s) {
|
||||
|
||||
var parseISO8601 = fc.parseISO8601 = function(s, ignoreTimezone) {
|
||||
// derived from http://delete.me.uk/2005/03/iso8601.html
|
||||
var d = s.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?$/);
|
||||
var d = s.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?$/);
|
||||
if (!d) return null;
|
||||
var offset = 0;
|
||||
var date = new Date(d[1], 0, 1);
|
||||
|
||||
Reference in New Issue
Block a user