Adds header manager to calendar
Adds a header manager to handle header related functionality within the calendar. Removes unused methods from CalendarManager.
This commit is contained in:
parent
4bd94d3be2
commit
020d5c3efc
3 changed files with 10 additions and 73 deletions
|
|
@ -12,6 +12,7 @@ import { ResizeHandleManager } from '../managers/ResizeHandleManager';
|
||||||
import { EdgeScrollManager } from '../managers/EdgeScrollManager';
|
import { EdgeScrollManager } from '../managers/EdgeScrollManager';
|
||||||
import { DragHoverManager } from '../managers/DragHoverManager';
|
import { DragHoverManager } from '../managers/DragHoverManager';
|
||||||
import { CalendarManagers } from '../types/ManagerTypes';
|
import { CalendarManagers } from '../types/ManagerTypes';
|
||||||
|
import { HeaderManager } from '../managers/HeaderManager';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory for creating and managing calendar managers with proper dependency injection
|
* Factory for creating and managing calendar managers with proper dependency injection
|
||||||
|
|
@ -45,6 +46,7 @@ export class ManagerFactory {
|
||||||
const resizeHandleManager = new ResizeHandleManager();
|
const resizeHandleManager = new ResizeHandleManager();
|
||||||
const edgeScrollManager = new EdgeScrollManager(eventBus);
|
const edgeScrollManager = new EdgeScrollManager(eventBus);
|
||||||
const dragHoverManager = new DragHoverManager(eventBus);
|
const dragHoverManager = new DragHoverManager(eventBus);
|
||||||
|
const headerManager = new HeaderManager();
|
||||||
|
|
||||||
// CalendarManager depends on all other managers
|
// CalendarManager depends on all other managers
|
||||||
const calendarManager = new CalendarManager(
|
const calendarManager = new CalendarManager(
|
||||||
|
|
@ -68,7 +70,8 @@ export class ManagerFactory {
|
||||||
allDayManager,
|
allDayManager,
|
||||||
resizeHandleManager,
|
resizeHandleManager,
|
||||||
edgeScrollManager,
|
edgeScrollManager,
|
||||||
dragHoverManager
|
dragHoverManager,
|
||||||
|
headerManager
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -79,9 +82,8 @@ export class ManagerFactory {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await managers.calendarManager.initialize?.();
|
await managers.calendarManager.initialize?.();
|
||||||
if (managers.resizeHandleManager && managers.resizeHandleManager.initialize) {
|
await managers.resizeHandleManager.initialize?.();
|
||||||
managers.resizeHandleManager.initialize();
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,31 +113,7 @@ export class CalendarManager {
|
||||||
view: this.currentView
|
view: this.currentView
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Genindlæs calendar data
|
|
||||||
*/
|
|
||||||
public refresh(): void {
|
|
||||||
|
|
||||||
this.eventBus.emit(CoreEvents.REFRESH_REQUESTED, {
|
|
||||||
view: this.currentView,
|
|
||||||
date: this.currentDate
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ryd calendar og nulstil til standard tilstand
|
|
||||||
*/
|
|
||||||
public reset(): void {
|
|
||||||
|
|
||||||
this.currentView = 'week';
|
|
||||||
this.currentDate = new Date();
|
|
||||||
|
|
||||||
this.eventBus.emit(CoreEvents.REFRESH_REQUESTED, {
|
|
||||||
view: this.currentView,
|
|
||||||
date: this.currentDate
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setup event listeners for at håndtere events fra andre managers
|
* Setup event listeners for at håndtere events fra andre managers
|
||||||
|
|
@ -147,54 +123,12 @@ export class CalendarManager {
|
||||||
this.eventBus.on(CoreEvents.WORKWEEK_CHANGED, (event: Event) => {
|
this.eventBus.on(CoreEvents.WORKWEEK_CHANGED, (event: Event) => {
|
||||||
|
|
||||||
const customEvent = event as CustomEvent;
|
const customEvent = event as CustomEvent;
|
||||||
this.handleWorkweekChange();
|
// this.handleWorkweekChange();
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Beregn næste dato baseret på aktuel view
|
|
||||||
*/
|
|
||||||
private calculateNextDate(): Date {
|
|
||||||
const nextDate = new Date(this.currentDate);
|
|
||||||
|
|
||||||
switch (this.currentView) {
|
|
||||||
case 'day':
|
|
||||||
nextDate.setDate(nextDate.getDate() + 1);
|
|
||||||
break;
|
|
||||||
case 'week':
|
|
||||||
const workWeekSettings = calendarConfig.getWorkWeekSettings();
|
|
||||||
nextDate.setDate(nextDate.getDate() + 7); // Move to next calendar week regardless of work days
|
|
||||||
break;
|
|
||||||
case 'month':
|
|
||||||
nextDate.setMonth(nextDate.getMonth() + 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nextDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Beregn forrige dato baseret på aktuel view
|
|
||||||
*/
|
|
||||||
private calculatePreviousDate(): Date {
|
|
||||||
const previousDate = new Date(this.currentDate);
|
|
||||||
|
|
||||||
switch (this.currentView) {
|
|
||||||
case 'day':
|
|
||||||
previousDate.setDate(previousDate.getDate() - 1);
|
|
||||||
break;
|
|
||||||
case 'week':
|
|
||||||
const workWeekSettings = calendarConfig.getWorkWeekSettings();
|
|
||||||
previousDate.setDate(previousDate.getDate() - 7); // Move to previous calendar week regardless of work days
|
|
||||||
break;
|
|
||||||
case 'month':
|
|
||||||
previousDate.setMonth(previousDate.getMonth() - 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return previousDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate the current period based on view and date
|
* Calculate the current period based on view and date
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ export interface CalendarManagers {
|
||||||
resizeHandleManager: ResizeHandleManager;
|
resizeHandleManager: ResizeHandleManager;
|
||||||
edgeScrollManager: unknown; // Avoid interface conflicts
|
edgeScrollManager: unknown; // Avoid interface conflicts
|
||||||
dragHoverManager: unknown; // Avoid interface conflicts
|
dragHoverManager: unknown; // Avoid interface conflicts
|
||||||
|
headerManager: unknown; // Avoid interface conflicts
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue