(js) Fix computation of week number

Fixes #3973, 3976
pull/232/head
Francis Lachapelle 2017-01-05 12:00:55 -05:00
parent e7e1283fb3
commit 02a1ad48fc
2 changed files with 19 additions and 2 deletions

1
NEWS
View File

@ -34,6 +34,7 @@ Bug fixes
- [web] append ics file extension when importing events (#2308)
- [web] handle URI in vCard photos (#2683)
- [web] handle semicolon in values during LDIF import (#1760)
- [web] fixed computation of week number (#3973, #3976)
- [eas] properly skip folders we don't want to synchronize (#3943)
- [eas] fixed 30 mins freebusy offset with S Planner
- [eas] now correctly handles reminders on tasks (#3964)

View File

@ -325,6 +325,22 @@ Date.prototype.beginOfDay = function() {
return beginOfDay;
};
/**
* See [SOGoUser dayOfWeekForDate:]
*/
Date.prototype.dayOfWeek = function(localeProvider) {
var offset, baseDayOfWeek, dayOfWeek;
offset = localeProvider.firstDayOfWeek;
baseDayOfWeek = this.getDay();
if (offset > baseDayOfWeek)
baseDayOfWeek += 7;
dayOfWeek = baseDayOfWeek - offset;
return dayOfWeek;
};
/**
* See [SOGoUser firstWeekOfYearForDate:]
*/
@ -336,10 +352,10 @@ Date.prototype.firstWeekOfYearForDate = function(localeProvider) {
januaryFirst = new Date(this.getTime());
januaryFirst.setMonth(0);
januaryFirst.setDate(1);
dayOfWeek = januaryFirst.getDay();
dayOfWeek = januaryFirst.dayOfWeek(localeProvider);
if (firstWeekRule == 'First4DayWeek') {
if ((dayOfWeek + localeProvider.firstDayOfWeek) % 7 < 4)
if (dayOfWeek < 4)
firstWeek = januaryFirst.beginOfWeek(localeProvider.firstDayOfWeek);
else
firstWeek = januaryFirst.addDays(7).beginOfWeek(localeProvider.firstDayOfWeek);