Skip to content

Commit 45f6ba5

Browse files
author
Rudy
committed
[BUGFIX] Fix calendar event sorting
Resolves: #271
1 parent 957801f commit 45f6ba5

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/card.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,12 @@ export class WeekPlannerCard extends LitElement {
754754
name: this.hass.formatEntityAttributeValue(this.hass.states[calendar.entity], 'friendly_name')
755755
}
756756
}
757-
let calendarSorting = calendarNumber;
757+
if (!calendar.sorting) {
758+
calendar = {
759+
...calendar,
760+
sorting: calendarNumber
761+
}
762+
}
758763
this._loading++;
759764
this.hass.callApi(
760765
'get',
@@ -778,9 +783,9 @@ export class WeekPlannerCard extends LitElement {
778783
let fullDay = this._isFullDay(startDate, endDate);
779784

780785
if (!fullDay && !this._isSameDay(startDate, endDate)) {
781-
this._handleMultiDayEvent(event, startDate, endDate, calendar, calendarSorting);
786+
this._handleMultiDayEvent(event, startDate, endDate, calendar);
782787
} else {
783-
this._addEvent(event, startDate, endDate, fullDay, calendar, calendarSorting);
788+
this._addEvent(event, startDate, endDate, fullDay, calendar);
784789
}
785790
});
786791

@@ -826,7 +831,7 @@ export class WeekPlannerCard extends LitElement {
826831
|| calendarFilter && event.summary.match(calendarFilter);
827832
}
828833

829-
_addEvent(event, startDate, endDate, fullDay, calendar, calendarSorting) {
834+
_addEvent(event, startDate, endDate, fullDay, calendar) {
830835
if (this._hideWeekend && startDate.weekday >= 6) {
831836
return;
832837
}
@@ -849,8 +854,8 @@ export class WeekPlannerCard extends LitElement {
849854
if (calendar.name && this._calendarEvents[eventKey].calendarNames.indexOf(calendar.name) === -1) {
850855
this._calendarEvents[eventKey].calendarNames.push(calendar.name);
851856
}
852-
if (calendarSorting < this._calendarEvents[eventKey].calendarSorting) {
853-
this._calendarEvents[eventKey].calendarSorting = calendarSorting;
857+
if (calendar.sorting < this._calendarEvents[eventKey].calendarSorting) {
858+
this._calendarEvents[eventKey].calendarSorting = calendar.sorting;
854859
}
855860
} else {
856861
this._calendarEvents[eventKey] = {
@@ -865,7 +870,7 @@ export class WeekPlannerCard extends LitElement {
865870
colors: [calendar.color ?? 'inherit'],
866871
icon: calendar.icon ?? null,
867872
calendars: [calendar.entity],
868-
calendarSorting: calendarSorting,
873+
calendarSorting: calendar.sorting,
869874
calendarNames: [calendar.name],
870875
class: this._getEventClass(startDate, endDate, fullDay)
871876
}
@@ -952,13 +957,13 @@ export class WeekPlannerCard extends LitElement {
952957
return classes.join(' ');
953958
}
954959

955-
_handleMultiDayEvent(event, startDate, endDate, calendar, calendarSorting) {
960+
_handleMultiDayEvent(event, startDate, endDate, calendar) {
956961
while (startDate < endDate) {
957962
let eventStartDate = startDate;
958963
startDate = startDate.plus({ days: 1 }).startOf('day');
959964
let eventEndDate = startDate < endDate ? startDate : endDate;
960965

961-
this._addEvent(event, eventStartDate, eventEndDate, this._isFullDay(eventStartDate, eventEndDate), calendar, calendarSorting);
966+
this._addEvent(event, eventStartDate, eventEndDate, this._isFullDay(eventStartDate, eventEndDate), calendar);
962967
}
963968
}
964969

0 commit comments

Comments
 (0)