dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_AttendanceModule cluster_AttendanceModule_providers AttendanceDatatype AttendanceDatatype AttendanceModule AttendanceModule AttendanceDatatype->AttendanceModule EventAttendanceMapDatatype EventAttendanceMapDatatype EventAttendanceMapDatatype->AttendanceModule

File

src/app/features/attendance/attendance.module.ts

import { NgModule, inject } from "@angular/core";
import { ComponentRegistry } from "#src/app/dynamic-components";
import { attendanceComponents } from "./attendance-components";
import { attendanceRoutes } from "./attendance.routing";
import { RecurringActivity } from "./model/recurring-activity";
import { EventNote } from "./model/event-note";
import { DefaultDatatype } from "#src/app/core/entity/default-datatype/default.datatype";
import { EventAttendanceMapDatatype } from "./deprecated/event-attendance-map.datatype";
import { AttendanceDatatype } from "./model/attendance.datatype";
import { DashboardWidgetRegistryService } from "#src/app/core/dashboard/dashboard-widget-registry.service";

@NgModule({
  providers: [
    {
      provide: DefaultDatatype,
      useClass: EventAttendanceMapDatatype,
      multi: true,
    },
    {
      provide: DefaultDatatype,
      useClass: AttendanceDatatype,
      multi: true,
    },
  ],
})
export class AttendanceModule {
  static databaseEntities = [RecurringActivity, EventNote];
  static routes = attendanceRoutes;

  private readonly widgetRegistry = inject(DashboardWidgetRegistryService);

  constructor() {
    this.widgetRegistry.register({
      component: "AttendanceWeekDashboard",
      label: $localize`Attendance (recent absences)`,
      settingsComponent: "AttendanceWeekDashboardSettings",
      defaultConfig: { daysOffset: 7, periodLabel: $localize`this week` },
    });

    const components = inject(ComponentRegistry);

    components.addAll(attendanceComponents);
  }
}

results matching ""

    No results matching ""