wwip
This commit is contained in:
parent
a9d6d14c93
commit
420036d939
4 changed files with 17 additions and 11 deletions
|
|
@ -333,7 +333,7 @@ export class SwpAllDayEventElement extends BaseSwpEventElement {
|
||||||
element.dataset.start = dateService.toUTC(event.start);
|
element.dataset.start = dateService.toUTC(event.start);
|
||||||
element.dataset.end = dateService.toUTC(event.end);
|
element.dataset.end = dateService.toUTC(event.end);
|
||||||
element.dataset.type = event.type;
|
element.dataset.type = event.type;
|
||||||
element.dataset.allDay = 'true';
|
element.dataset.allday = 'true';
|
||||||
element.textContent = event.title;
|
element.textContent = event.title;
|
||||||
|
|
||||||
return element;
|
return element;
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { AllDayEventRenderer } from '../renderers/AllDayEventRenderer';
|
||||||
import { AllDayLayoutEngine, EventLayout } from '../utils/AllDayLayoutEngine';
|
import { AllDayLayoutEngine, EventLayout } from '../utils/AllDayLayoutEngine';
|
||||||
import { ColumnBounds, ColumnDetectionUtils } from '../utils/ColumnDetectionUtils';
|
import { ColumnBounds, ColumnDetectionUtils } from '../utils/ColumnDetectionUtils';
|
||||||
import { CalendarEvent } from '../types/CalendarTypes';
|
import { CalendarEvent } from '../types/CalendarTypes';
|
||||||
|
import { SwpAllDayEventElement } from '../elements/SwpEventElement';
|
||||||
import {
|
import {
|
||||||
DragMouseEnterHeaderEventPayload,
|
DragMouseEnterHeaderEventPayload,
|
||||||
DragStartEventPayload,
|
DragStartEventPayload,
|
||||||
|
|
@ -312,20 +313,19 @@ export class AllDayManager {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle conversion of timed event to all-day event - SIMPLIFIED
|
|
||||||
* During drag: Place in row 1 only, calculate column from targetDate
|
|
||||||
*/
|
|
||||||
private handleConvertToAllDay(payload: DragMouseEnterHeaderEventPayload): void {
|
private handleConvertToAllDay(payload: DragMouseEnterHeaderEventPayload): void {
|
||||||
|
|
||||||
let allDayContainer = this.getAllDayContainer();
|
let allDayContainer = this.getAllDayContainer();
|
||||||
|
if (!allDayContainer) return;
|
||||||
|
|
||||||
payload.draggedClone.removeAttribute('style');
|
const allDayElement = SwpAllDayEventElement.fromCalendarEvent(payload.calendarEvent);
|
||||||
payload.draggedClone.style.gridRow = '1';
|
|
||||||
payload.draggedClone.style.gridColumn = payload.targetColumn.index.toString();
|
|
||||||
payload.draggedClone.dataset.allday = 'true';
|
|
||||||
|
|
||||||
allDayContainer?.appendChild(payload.draggedClone);
|
// Apply grid positioning
|
||||||
|
allDayElement.style.gridRow = '1';
|
||||||
|
allDayElement.style.gridColumn = payload.targetColumn.index.toString();
|
||||||
|
|
||||||
|
payload.draggedClone.remove();
|
||||||
|
allDayContainer.appendChild(allDayElement);
|
||||||
|
|
||||||
ColumnDetectionUtils.updateColumnBoundsCache();
|
ColumnDetectionUtils.updateColumnBoundsCache();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -495,11 +495,15 @@ export class DragDropManager {
|
||||||
if (targetColumn) {
|
if (targetColumn) {
|
||||||
console.log('🎯 DragDropManager: Emitting drag:mouseenter-header', { targetDate: targetColumn });
|
console.log('🎯 DragDropManager: Emitting drag:mouseenter-header', { targetDate: targetColumn });
|
||||||
|
|
||||||
|
// Extract CalendarEvent from the dragged clone
|
||||||
|
const calendarEvent = SwpEventElement.extractCalendarEventFromElement(this.draggedClone!!);
|
||||||
|
|
||||||
const dragMouseEnterPayload: DragMouseEnterHeaderEventPayload = {
|
const dragMouseEnterPayload: DragMouseEnterHeaderEventPayload = {
|
||||||
targetColumn: targetColumn,
|
targetColumn: targetColumn,
|
||||||
mousePosition: { x: event.clientX, y: event.clientY },
|
mousePosition: { x: event.clientX, y: event.clientY },
|
||||||
originalElement: this.draggedElement,
|
originalElement: this.draggedElement,
|
||||||
draggedClone: this.draggedClone!!
|
draggedClone: this.draggedClone!!,
|
||||||
|
calendarEvent: calendarEvent
|
||||||
};
|
};
|
||||||
this.eventBus.emit('drag:mouseenter-header', dragMouseEnterPayload);
|
this.eventBus.emit('drag:mouseenter-header', dragMouseEnterPayload);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ColumnBounds } from "../utils/ColumnDetectionUtils";
|
import { ColumnBounds } from "../utils/ColumnDetectionUtils";
|
||||||
|
import { CalendarEvent } from "./CalendarTypes";
|
||||||
|
|
||||||
export interface AllDayEvent {
|
export interface AllDayEvent {
|
||||||
id: string;
|
id: string;
|
||||||
|
|
@ -82,6 +83,7 @@ export interface DragMouseEnterHeaderEventPayload {
|
||||||
mousePosition: MousePosition;
|
mousePosition: MousePosition;
|
||||||
originalElement: HTMLElement | null;
|
originalElement: HTMLElement | null;
|
||||||
draggedClone: HTMLElement;
|
draggedClone: HTMLElement;
|
||||||
|
calendarEvent: CalendarEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Drag mouse leave header event payload
|
// Drag mouse leave header event payload
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue