1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-25 22:37:27 -04:00

Fixed: Calendar Items Show on Correct Day

This commit is contained in:
Qstick
2019-07-27 00:56:07 -04:00
parent 582402d45e
commit 6288936fe2
10 changed files with 43 additions and 81 deletions
+1 -12
View File
@@ -4,7 +4,6 @@ import React from 'react';
import classNames from 'classnames';
import * as calendarViews from 'Calendar/calendarViews';
import CalendarEventConnector from 'Calendar/Events/CalendarEventConnector';
import CalendarEventGroupConnector from 'Calendar/Events/CalendarEventGroupConnector';
import styles from './CalendarDay.css';
function CalendarDay(props) {
@@ -37,20 +36,10 @@ function CalendarDay(props) {
<div>
{
events.map((event) => {
if (event.isGroup) {
return (
<CalendarEventGroupConnector
key={event.seriesId}
{...event}
onEventModalOpenToggle={onEventModalOpenToggle}
/>
);
}
return (
<CalendarEventConnector
key={event.id}
episodeId={event.id}
movieId={event.id}
{...event}
onEventModalOpenToggle={onEventModalOpenToggle}
/>
@@ -9,10 +9,10 @@ import CalendarDay from './CalendarDay';
function sort(items) {
return _.sortBy(items, (item) => {
if (item.isGroup) {
return moment(item.events[0].airDateUtc).unix();
return moment(item.events[0].inCinemas).unix();
}
return moment(item.airDateUtc).unix();
return moment(item.inCinemas).unix();
});
}
@@ -20,38 +20,12 @@ function createCalendarEventsConnector() {
return createSelector(
(state, { date }) => date,
(state) => state.calendar.items,
(state) => state.calendar.options.collapseMultipleEpisodes,
(date, items, collapseMultipleEpisodes) => {
(date, items) => {
const filtered = _.filter(items, (item) => {
return moment(date).isSame(moment(item.airDateUtc), 'day');
return moment(date).isSame(moment(item.inCinemas), 'day');
});
if (!collapseMultipleEpisodes) {
return sort(filtered);
}
const groupedObject = _.groupBy(filtered, (item) => `${item.seriesId}-${item.seasonNumber}`);
const grouped = [];
Object.keys(groupedObject).forEach((key) => {
const events = groupedObject[key];
if (events.length === 1) {
grouped.push(events[0]);
} else {
grouped.push({
isGroup: true,
seriesId: events[0].seriesId,
seasonNumber: events[0].seasonNumber,
episodeIds: events.map((event) => event.id),
events: _.sortBy(events, (item) => moment(item.airDateUtc).unix())
});
}
});
const sorted = sort(grouped);
return sorted;
return sort(filtered);
}
);
}