Fix issues with freebusy (Web, busyOffHours)
parent
beb57707e8
commit
1d5ae27c99
2
NEWS
2
NEWS
|
@ -14,6 +14,8 @@ Bug fixes
|
||||||
- use correct mail attachment elements for EAS 2.5 clients
|
- use correct mail attachment elements for EAS 2.5 clients
|
||||||
- fixed contacts lookup by UID in freebusy
|
- fixed contacts lookup by UID in freebusy
|
||||||
- reduced telephone number to a single value in JSON response of contacts list
|
- reduced telephone number to a single value in JSON response of contacts list
|
||||||
|
- fixed freebusy data when 'busy off hours' is enabled and period starts during the weekend
|
||||||
|
- fixed fetching of freebusy data from the Web interface
|
||||||
|
|
||||||
2.2.16 (2015-02-12)
|
2.2.16 (2015-02-12)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
|
@ -381,8 +381,7 @@
|
||||||
([currentStartDate compare: startDate] == NSOrderedAscending)? startDate : currentStartDate, @"startDate",
|
([currentStartDate compare: startDate] == NSOrderedAscending)? startDate : currentStartDate, @"startDate",
|
||||||
currentEndDate, @"endDate", nil]];
|
currentEndDate, @"endDate", nil]];
|
||||||
|
|
||||||
if (!firstRange
|
if (currentEndDate != endDate
|
||||||
&& currentEndDate != endDate
|
|
||||||
&& ([currentEndDate dayOfWeek] == 6 || [currentEndDate dayOfWeek] == 0))
|
&& ([currentEndDate dayOfWeek] == 6 || [currentEndDate dayOfWeek] == 0))
|
||||||
{
|
{
|
||||||
// Fill weekend days
|
// Fill weekend days
|
||||||
|
|
|
@ -917,6 +917,7 @@ _freeBusyCacheEntry.prototype = {
|
||||||
fetchDates = [];
|
fetchDates = [];
|
||||||
|
|
||||||
if (adjustedSd.getTime() < this.startDate.getTime()) {
|
if (adjustedSd.getTime() < this.startDate.getTime()) {
|
||||||
|
// Period extends to before current start
|
||||||
var start = adjustedSd.clone();
|
var start = adjustedSd.clone();
|
||||||
start.addDays(-7);
|
start.addDays(-7);
|
||||||
var end = this.startDate.beginOfDay();
|
var end = this.startDate.beginOfDay();
|
||||||
|
@ -928,35 +929,45 @@ _freeBusyCacheEntry.prototype = {
|
||||||
var nextDate = this.startDate.clone();
|
var nextDate = this.startDate.clone();
|
||||||
nextDate.addDays(currentNbrDays);
|
nextDate.addDays(currentNbrDays);
|
||||||
if (adjustedEd.getTime() >= nextDate.getTime()) {
|
if (adjustedEd.getTime() >= nextDate.getTime()) {
|
||||||
var end = nextDate.clone();
|
// Period extends to after current end
|
||||||
|
var end = adjustedEd.clone();
|
||||||
end.addDays(7);
|
end.addDays(7);
|
||||||
fetchDates.push({ start: nextDate, end: end });
|
fetchDates.push({ start: nextDate, end: end });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// Initial range
|
||||||
var start = adjustedSd.clone();
|
var start = adjustedSd.clone();
|
||||||
start.addDays(-7);
|
start.addDays(-7);
|
||||||
var end = adjustedEd.clone();
|
var end = adjustedEd.clone();
|
||||||
end.addDays(7);
|
end.addDays(7);
|
||||||
fetchDates = [ { start: start, end: end } ];
|
fetchDates = [ { start: start, end: end } ];
|
||||||
}
|
}
|
||||||
|
|
||||||
return fetchDates;
|
return fetchDates;
|
||||||
},
|
},
|
||||||
|
|
||||||
integrateEntries: function fBCE_integrateEntries(entries, start, end) {
|
integrateEntries: function fBCE_integrateEntries(entries, start, end) {
|
||||||
|
var days, merged = false;
|
||||||
if (this.startDate) {
|
if (this.startDate) {
|
||||||
if (start.getTime() < this.startDate) {
|
if (start.getTime() < this.startDate) {
|
||||||
var days = start.deltaDays(this.startDate);
|
days = start.deltaDays(this.startDate);
|
||||||
if (entries.length == (days * 96)) {
|
if (entries.length == (days * 96)) {
|
||||||
|
// New period is just before previous period
|
||||||
this.startDate = start;
|
this.startDate = start;
|
||||||
this.entries = entries.concat(this.entries);
|
this.entries = entries.concat(this.entries);
|
||||||
|
merged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.entries = this.entries.concat(entries);
|
days = this.startDate.deltaDays(start);
|
||||||
|
if (this.entries.length == (days * 96)) {
|
||||||
|
// New period is just after previous period
|
||||||
|
this.entries = this.entries.concat(entries);
|
||||||
|
merged = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
if (!merged) {
|
||||||
this.startDate = start;
|
this.startDate = start;
|
||||||
this.entries = entries;
|
this.entries = entries;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue