Skip to content

Commit 6aeb550

Browse files
author
Matt Lewis
committed
fix(month-view): expose the day the event was dropped on
Fixes #443
1 parent 669017a commit 6aeb550

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

src/modules/month/calendar-month-view.component.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ export interface CalendarMonthViewBeforeRenderEvent {
3939
period: ViewPeriod;
4040
}
4141

42+
export interface CalendarMonthViewEventTimesChangedEvent
43+
extends CalendarEventTimesChangedEvent {
44+
day: MonthViewDay;
45+
}
46+
4247
/**
4348
* Shows all events on a given month. Example usage:
4449
*
@@ -199,7 +204,9 @@ export class CalendarMonthViewComponent
199204
* Called when an event is dragged and dropped
200205
*/
201206
@Output()
202-
eventTimesChanged = new EventEmitter<CalendarEventTimesChangedEvent>();
207+
eventTimesChanged = new EventEmitter<
208+
CalendarMonthViewEventTimesChangedEvent
209+
>();
203210

204211
/**
205212
* @hidden
@@ -328,7 +335,7 @@ export class CalendarMonthViewComponent
328335
const secondsDiff: number = differenceInSeconds(newStart, event.start);
329336
newEnd = addSeconds(event.end, secondsDiff);
330337
}
331-
this.eventTimesChanged.emit({ event, newStart, newEnd });
338+
this.eventTimesChanged.emit({ event, newStart, newEnd, day });
332339
}
333340

334341
/**

src/modules/month/calendar-month.module.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import { CalendarCommonModule } from '../common/calendar-common.module';
99

1010
export {
1111
CalendarMonthViewComponent,
12-
CalendarMonthViewBeforeRenderEvent
12+
CalendarMonthViewBeforeRenderEvent,
13+
CalendarMonthViewEventTimesChangedEvent
1314
} from './calendar-month-view.component';
1415
export { MonthViewDay as CalendarMonthViewDay } from 'calendar-utils';
1516

test/calendar-month-view.component.spec.ts

+9-11
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
import { Subject } from 'rxjs/Subject';
2626
import { triggerDomEvent } from './util';
2727
import { take } from 'rxjs/operators/take';
28+
import { CalendarMonthViewEventTimesChangedEvent } from '../src/modules/month';
2829

2930
describe('calendarMonthView component', () => {
3031
beforeEach(() => {
@@ -517,7 +518,7 @@ describe('calendarMonthView component', () => {
517518
}
518519
];
519520
fixture.componentInstance.ngOnChanges({ viewDate: {} });
520-
let dragEvent: CalendarEventTimesChangedEvent;
521+
let dragEvent: CalendarMonthViewEventTimesChangedEvent;
521522
fixture.componentInstance.eventTimesChanged.subscribe(e => {
522523
dragEvent = e;
523524
});
@@ -560,11 +561,10 @@ describe('calendarMonthView component', () => {
560561
fixture.detectChanges();
561562
expect(cells[10].classList.contains('cal-drag-over')).to.equal(false);
562563
fixture.destroy();
563-
expect(dragEvent).to.deep.equal({
564-
event: fixture.componentInstance.events[0],
565-
newStart: new Date(2016, 11, 7, 10, 39, 14),
566-
newEnd: new Date(2016, 11, 7, 15, 11, 5)
567-
});
564+
expect(dragEvent.event).to.equal(fixture.componentInstance.events[0]);
565+
expect(dragEvent.newStart).to.deep.equal(new Date(2016, 11, 7, 10, 39, 14));
566+
expect(dragEvent.newEnd).to.deep.equal(new Date(2016, 11, 7, 15, 11, 5));
567+
expect(dragEvent.day.date).to.deep.equal(new Date('2016-12-07'));
568568
});
569569

570570
it('should apply the year, month and date changes in the correct order when dragging and dropping events', () => {
@@ -616,11 +616,9 @@ describe('calendarMonthView component', () => {
616616
});
617617
fixture.detectChanges();
618618
fixture.destroy();
619-
expect(dragEvent).to.deep.equal({
620-
event: fixture.componentInstance.events[0],
621-
newStart: new Date('2017-01-31'),
622-
newEnd: undefined
623-
});
619+
expect(dragEvent.event).to.equal(fixture.componentInstance.events[0]);
620+
expect(dragEvent.newStart).to.deep.equal(new Date('2017-01-31'));
621+
expect(dragEvent.newEnd).to.deep.equal(undefined);
624622
});
625623

626624
it('should update the event title', () => {

0 commit comments

Comments
 (0)