Update patch against fullcalendar 1.5.2
This commit is contained in:
parent
ddd0f2c703
commit
644e5e2645
1 changed files with 117 additions and 16 deletions
|
@ -1,5 +1,5 @@
|
||||||
--- js/fullcalendar-1.5.2.js 2011-08-21 22:07:18.000000000 +0200
|
--- js/fullcalendar-1.5.2.js 2011-08-21 22:07:18.000000000 +0200
|
||||||
+++ js/fullcalendar.js 2011-10-18 23:01:09.000000000 +0200
|
+++ js/fullcalendar.js 2011-11-14 23:44:05.000000000 +0100
|
||||||
@@ -29,6 +29,7 @@
|
@@ -29,6 +29,7 @@
|
||||||
right: 'today prev,next'
|
right: 'today prev,next'
|
||||||
},
|
},
|
||||||
|
@ -84,17 +84,20 @@
|
||||||
currentView.renderEvents(events, modifiedEventID);
|
currentView.renderEvents(events, modifiedEventID);
|
||||||
currentView.eventsDirty = false;
|
currentView.eventsDirty = false;
|
||||||
}
|
}
|
||||||
@@ -632,6 +659,9 @@
|
@@ -632,6 +659,12 @@
|
||||||
if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {
|
if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {
|
||||||
options[name] = value;
|
options[name] = value;
|
||||||
updateSize();
|
updateSize();
|
||||||
+ } else if (name.indexOf('list') == 0 || name == 'tableCols') {
|
+ } else if (name.indexOf('list') == 0 || name == 'tableCols') {
|
||||||
+ options[name] = value;
|
+ options[name] = value;
|
||||||
+ currentView.start = null; // force re-render
|
+ currentView.start = null; // force re-render
|
||||||
|
+ }
|
||||||
|
+ else if (name == 'maxHeight') {
|
||||||
|
+ options[name] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -897,15 +927,16 @@
|
@@ -897,15 +930,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -115,7 +118,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1092,8 +1123,9 @@
|
@@ -1092,8 +1126,9 @@
|
||||||
stickySource.events.push(event);
|
stickySource.events.push(event);
|
||||||
event.source = stickySource;
|
event.source = stickySource;
|
||||||
}
|
}
|
||||||
|
@ -126,7 +129,7 @@
|
||||||
reportEvents(cache);
|
reportEvents(cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1581,10 +1613,23 @@
|
@@ -1581,10 +1616,23 @@
|
||||||
return 'th';
|
return 'th';
|
||||||
}
|
}
|
||||||
return ['st', 'nd', 'rd'][date%10-1] || 'th';
|
return ['st', 'nd', 'rd'][date%10-1] || 'th';
|
||||||
|
@ -151,7 +154,7 @@
|
||||||
|
|
||||||
fc.applyAll = applyAll;
|
fc.applyAll = applyAll;
|
||||||
|
|
||||||
@@ -3536,10 +3581,10 @@
|
@@ -3536,10 +3584,10 @@
|
||||||
function slotSelectionMousedown(ev) {
|
function slotSelectionMousedown(ev) {
|
||||||
if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button
|
if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button
|
||||||
unselect(ev);
|
unselect(ev);
|
||||||
|
@ -164,7 +167,7 @@
|
||||||
var d1 = cellDate(origCell);
|
var d1 = cellDate(origCell);
|
||||||
var d2 = cellDate(cell);
|
var d2 = cellDate(cell);
|
||||||
dates = [
|
dates = [
|
||||||
@@ -3651,7 +3696,7 @@
|
@@ -3651,7 +3699,7 @@
|
||||||
var calendar = t.calendar;
|
var calendar = t.calendar;
|
||||||
var formatDate = calendar.formatDate;
|
var formatDate = calendar.formatDate;
|
||||||
var formatDates = calendar.formatDates;
|
var formatDates = calendar.formatDates;
|
||||||
|
@ -173,7 +176,7 @@
|
||||||
|
|
||||||
|
|
||||||
/* Rendering
|
/* Rendering
|
||||||
@@ -3675,6 +3720,12 @@
|
@@ -3675,6 +3723,12 @@
|
||||||
setHeight(); // no params means set to viewHeight
|
setHeight(); // no params means set to viewHeight
|
||||||
}
|
}
|
||||||
renderSlotSegs(compileSlotSegs(slotEvents), modifiedEventId);
|
renderSlotSegs(compileSlotSegs(slotEvents), modifiedEventId);
|
||||||
|
@ -186,7 +189,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -3764,7 +3815,8 @@
|
@@ -3764,7 +3818,8 @@
|
||||||
height,
|
height,
|
||||||
slotSegmentContainer = getSlotSegmentContainer(),
|
slotSegmentContainer = getSlotSegmentContainer(),
|
||||||
rtl, dis, dit,
|
rtl, dis, dit,
|
||||||
|
@ -196,7 +199,7 @@
|
||||||
|
|
||||||
if (rtl = opt('isRTL')) {
|
if (rtl = opt('isRTL')) {
|
||||||
dis = -1;
|
dis = -1;
|
||||||
@@ -3791,8 +3843,11 @@
|
@@ -3791,8 +3846,11 @@
|
||||||
outerWidth = availWidth / (levelI + forward + 1);
|
outerWidth = availWidth / (levelI + forward + 1);
|
||||||
}else{
|
}else{
|
||||||
if (forward) {
|
if (forward) {
|
||||||
|
@ -210,7 +213,7 @@
|
||||||
}else{
|
}else{
|
||||||
// can be entire width, aligned left
|
// can be entire width, aligned left
|
||||||
outerWidth = availWidth;
|
outerWidth = availWidth;
|
||||||
@@ -3803,7 +3858,7 @@
|
@@ -3803,7 +3861,7 @@
|
||||||
* dis + (rtl ? availWidth - outerWidth : 0); // rtl
|
* dis + (rtl ? availWidth - outerWidth : 0); // rtl
|
||||||
seg.top = top;
|
seg.top = top;
|
||||||
seg.left = left;
|
seg.left = left;
|
||||||
|
@ -219,7 +222,7 @@
|
||||||
seg.outerHeight = bottom - top;
|
seg.outerHeight = bottom - top;
|
||||||
html += slotSegHtml(event, seg);
|
html += slotSegHtml(event, seg);
|
||||||
}
|
}
|
||||||
@@ -3953,6 +4008,37 @@
|
@@ -3953,6 +4011,37 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -257,7 +260,7 @@
|
||||||
|
|
||||||
/* Dragging
|
/* Dragging
|
||||||
-----------------------------------------------------------------------------------*/
|
-----------------------------------------------------------------------------------*/
|
||||||
@@ -4262,7 +4348,7 @@
|
@@ -4262,7 +4351,7 @@
|
||||||
|
|
||||||
function opt(name, viewNameOverride) {
|
function opt(name, viewNameOverride) {
|
||||||
var v = options[name];
|
var v = options[name];
|
||||||
|
@ -266,7 +269,90 @@
|
||||||
return smartProperty(v, viewNameOverride || viewName);
|
return smartProperty(v, viewNameOverride || viewName);
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
@@ -4806,6 +4892,8 @@
|
@@ -4528,6 +4617,9 @@
|
||||||
|
var seg;
|
||||||
|
var top;
|
||||||
|
var k;
|
||||||
|
+ var overflows;
|
||||||
|
+ var overflowLinks;
|
||||||
|
+ var maxHeight = opt('maxHeight');
|
||||||
|
segmentContainer[0].innerHTML = daySegHTML(segs); // faster than .html()
|
||||||
|
daySegElementResolve(segs, segmentContainer.children());
|
||||||
|
daySegElementReport(segs);
|
||||||
|
@@ -4539,26 +4631,69 @@
|
||||||
|
// set row heights, calculate event tops (in relation to row top)
|
||||||
|
for (rowI=0; rowI<rowCnt; rowI++) {
|
||||||
|
levelI = 0;
|
||||||
|
+ overflows = [];
|
||||||
|
+ overflowLinks = {};
|
||||||
|
colHeights = [];
|
||||||
|
for (j=0; j<colCnt; j++) {
|
||||||
|
+ overflows[j] = 0;
|
||||||
|
colHeights[j] = 0;
|
||||||
|
}
|
||||||
|
while (i<segCnt && (seg = segs[i]).row == rowI) {
|
||||||
|
// loop through segs in a row
|
||||||
|
top = arrayMax(colHeights.slice(seg.startCol, seg.endCol));
|
||||||
|
- seg.top = top;
|
||||||
|
- top += seg.outerHeight;
|
||||||
|
+ if (maxHeight && top + seg.outerHeight > maxHeight) {
|
||||||
|
+ seg.overflow = true;
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ seg.top = top;
|
||||||
|
+ top += seg.outerHeight;
|
||||||
|
+ }
|
||||||
|
for (k=seg.startCol; k<seg.endCol; k++) {
|
||||||
|
- colHeights[k] = top;
|
||||||
|
+ if (overflows[k])
|
||||||
|
+ seg.overflow = true;
|
||||||
|
+ if (seg.overflow) {
|
||||||
|
+ if (seg.isStart && !overflowLinks[k])
|
||||||
|
+ overflowLinks[k] = { seg:seg, top:top, date:cloneDate(seg.start, true), count:0 };
|
||||||
|
+ if (overflowLinks[k])
|
||||||
|
+ overflowLinks[k].count++;
|
||||||
|
+ overflows[k]++;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ colHeights[k] = top;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
rowDivs[rowI].height(arrayMax(colHeights));
|
||||||
|
+ renderOverflowLinks(overflowLinks, rowDivs[rowI]);
|
||||||
|
}
|
||||||
|
daySegSetTops(segs, getRowTops(rowDivs));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+ function renderOverflowLinks(overflowLinks, rowDiv) {
|
||||||
|
+ var container = getDaySegmentContainer();
|
||||||
|
+ var colCnt = getColCnt();
|
||||||
|
+ var element, triggerRes, link;
|
||||||
|
+ for (var j=0; j<colCnt; j++) {
|
||||||
|
+ if ((link = overflowLinks[j])) {
|
||||||
|
+ if (link.count > 1) {
|
||||||
|
+ element = $('<a>').addClass('fc-more-link').html('+'+link.count).appendTo(container);
|
||||||
|
+ element[0].style.position = 'absolute';
|
||||||
|
+ element[0].style.left = link.seg.left + 'px';
|
||||||
|
+ element[0].style.top = (link.top + rowDiv[0].offsetTop) + 'px';
|
||||||
|
+ triggerRes = trigger('overflowRender', link, { count:link.count, date:link.date }, element);
|
||||||
|
+ if (triggerRes === false)
|
||||||
|
+ element.remove();
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ link.seg.top = link.top;
|
||||||
|
+ link.seg.overflow = false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+
|
||||||
|
function renderTempDaySegs(segs, adjustRow, adjustTop) {
|
||||||
|
var tempContainer = $("<div/>");
|
||||||
|
var elements;
|
||||||
|
@@ -4806,6 +4941,8 @@
|
||||||
}
|
}
|
||||||
seg.outerHeight = element[0].offsetHeight + val;
|
seg.outerHeight = element[0].offsetHeight + val;
|
||||||
}
|
}
|
||||||
|
@ -275,11 +361,26 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5206,5 +5294,561 @@
|
@@ -4842,11 +4979,13 @@
|
||||||
|
for (i=0; i<segCnt; i++) {
|
||||||
|
seg = segs[i];
|
||||||
|
element = seg.element;
|
||||||
|
- if (element) {
|
||||||
|
+ if (element && !seg.overflow) {
|
||||||
|
element[0].style.top = rowTops[seg.row] + (seg.top||0) + 'px';
|
||||||
|
event = seg.event;
|
||||||
|
trigger('eventAfterRender', event, event, element);
|
||||||
|
}
|
||||||
|
+ else if (element)
|
||||||
|
+ element.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -5206,5 +5345,561 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
-})(jQuery);
|
-})(jQuery);
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
|
|
Loading…
Add table
Reference in a new issue