fix: timetable dates cannot be removed

This commit is contained in:
Thea Schöbl
2022-05-03 11:06:06 +00:00
committed by Rainer Killinger
parent 29585faff6
commit 9242438132
7 changed files with 134 additions and 19 deletions

View File

@@ -35,6 +35,8 @@ import {ThingTranslatePipe} from '../../../translation/thing-translate.pipe';
import {groupBy, groupByProperty} from '../../../_helpers/collections/group-by';
import {mapValues} from '../../../_helpers/collections/map-values';
import {stringSortBy} from '../../../_helpers/collections/string-sort';
import {uniqBy} from '../../../_helpers/collections/uniq';
import {differenceBy} from '../../../_helpers/collections/difference';
enum Selection {
ON = 2,
@@ -267,13 +269,16 @@ export class AddEventPopoverComponent implements OnInit, OnDestroy {
async onCommit(save: boolean) {
if (save) {
const {selected, unselected} = this.getSelection();
console.log(selected, unselected);
this.scheduleProvider.partialEvents$.next([
...new Set([
...this.partialDateSeries.filter(it => !unselected.includes(it)),
...selected,
]),
]);
this.scheduleProvider.partialEvents$.next(
uniqBy(
[
...differenceBy(this.partialDateSeries, unselected, it => it.uid),
...selected,
],
it => it.uid,
),
);
}
await this.popoverController.dismiss();

View File

@@ -1,16 +1,16 @@
/*
* Copyright (C) 2021 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
* Copyright (C) 2022 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {Component, Input} from '@angular/core';
import moment from 'moment';
@@ -40,7 +40,10 @@ export class ScheduleDayComponent {
dateSeriesGroups?: ScheduleEvent[][];
@Input() set dateSeries(value: Record<string, ScheduleEvent>) {
if (!value) return;
if (!value) {
delete this.dateSeriesGroups;
return;
}
this.dateSeriesGroups = groupRangeOverlaps(
Object.values(value),