diff --git a/UI/WebServerResources/JavascriptAPIExtensions.js b/UI/WebServerResources/JavascriptAPIExtensions.js index 0ee1b6b1e..245078268 100644 --- a/UI/WebServerResources/JavascriptAPIExtensions.js +++ b/UI/WebServerResources/JavascriptAPIExtensions.js @@ -119,7 +119,7 @@ Date.prototype.clone = function() { newDate.setTime(this.getTime()); return newDate; -} +}; Date.prototype.deltaDays = function(otherDate) { var day1 = this.getTime(); @@ -131,7 +131,7 @@ Date.prototype.deltaDays = function(otherDate) { } return Math.round((day2 - day1) / 86400000); -} +}; Date.prototype.daysUpTo = function(otherDate) { var days = new Array(); @@ -248,7 +248,7 @@ Date.prototype.beginOfDay = function() { beginOfDay.setMilliseconds(0); return beginOfDay; -} +}; Date.prototype.beginOfWeek = function() { var offset = firstDayOfWeek - this.getDay(); diff --git a/UI/WebServerResources/UIxAttendeesEditor.js b/UI/WebServerResources/UIxAttendeesEditor.js index be7a854bd..16d297425 100644 --- a/UI/WebServerResources/UIxAttendeesEditor.js +++ b/UI/WebServerResources/UIxAttendeesEditor.js @@ -905,7 +905,7 @@ _freeBusyCacheEntry.prototype = { var adjustedEd = ed.beginOfDay(); var nbrDays = adjustedSd.deltaDays(adjustedEd) + 1; var offsetEnd = offset + (nbrDays * 96); - if (Math.round(this.entries.length/96) >= nbrDays) { + if (Math.round((this.entries.length - offset)/96) >= nbrDays) { entries = this.entries.slice(offset, offsetEnd); } } @@ -942,7 +942,6 @@ _freeBusyCacheEntry.prototype = { // Period extends to after current end if (start.getTime() <= nextDate.getTime()) { start = nextDate.beginOfDay(); - start.addDays(1); } fetchDates.push({ start: start, end: end }); } @@ -960,7 +959,7 @@ _freeBusyCacheEntry.prototype = { if (this.startDate) { if (start.getTime() < this.startDate) { days = start.deltaDays(this.startDate); - if (entries.length == (days * 96)) { + if (Math.round(entries.length/96) == days) { // New period is just before previous period this.startDate = start; this.entries = entries.concat(this.entries); @@ -1131,7 +1130,7 @@ function displayFreeBusyForNode(input) { var rowIndex = input.parentNode.parentNode.sectionRowIndex; var row = $("freeBusyData").tBodies[0].rows[rowIndex]; var nodes = row.cells; - //log ("displayFreeBusyForNode index " + rowIndex + " (" + nodes.length + " cells)"); + //log ("displayFreeBusyForNode index " + rowIndex + " uid " + input.uid + " (" + nodes.length + " cells)"); if (input.uid) { if (!input.hasfreebusy) { // log("forcing draw of nodes"); @@ -1459,10 +1458,11 @@ function onTimeDateWidgetChange() { function prepareTableHeaders() { var startTimeDate = $("startTime_date"); var startDate = startTimeDate.inputAsDate(); + startDate.setHours(0, 0); var endTimeDate = $("endTime_date"); var endDate = endTimeDate.inputAsDate(); - endDate.setTime(endDate.getTime()); + endDate.setHours(0, 0); var rows = $("freeBusyHeader").rows; var days = startDate.daysUpTo(endDate);