Complete governed reporting execution and publication

This commit is contained in:
2026-08-04 02:23:24 +02:00
parent a81151391b
commit 8337aec19a
29 changed files with 3611 additions and 81 deletions
+43 -3
View File
@@ -1,10 +1,46 @@
import { createElement, lazy } from "react";
import type { PlatformWebModule } from "@govoplan/core-webui";
import type { DashboardWidgetsUiCapability, PlatformWebModule } from "@govoplan/core-webui";
import ReportingReportsWidget from "./features/reporting/ReportingReportsWidget";
import "./styles/reporting.css";
const ReportingPage = lazy(() => import("./features/reporting/ReportingPage"));
const reportingDashboardWidgets: DashboardWidgetsUiCapability = {
widgets: [
{
id: "reporting.reports",
surfaceId: "reporting.widget.reports",
title: "Reports",
description: "Active governed reports available in the current scope.",
moduleId: "reporting",
category: "Analysis",
order: 75,
defaultVisible: false,
defaultSize: "medium",
supportedSizes: ["medium", "wide"],
anyOf: ["reporting:definition:read"],
refreshIntervalMs: 60_000,
defaultConfiguration: { maxItems: 5 },
configurationFields: [
{
id: "maxItems",
label: "Maximum reports",
kind: "number",
min: 1,
max: 12,
step: 1,
required: true
}
],
render: ({ settings, refreshKey, configuration }) => createElement(
ReportingReportsWidget,
{ settings, refreshKey, configuration }
)
}
]
};
export const reportingModule: PlatformWebModule = {
id: "reporting",
label: "Reporting",
@@ -52,8 +88,12 @@ export const reportingModule: PlatformWebModule = {
{ id: "reporting.navigation", moduleId: "reporting", kind: "navigation", label: "Reporting navigation", order: 10 },
{ id: "reporting.workspace", moduleId: "reporting", kind: "route", label: "Reporting workspace", order: 20 },
{ id: "reporting.parameters", moduleId: "reporting", kind: "section", label: "Report parameters and filters", parentId: "reporting.workspace", order: 30 },
{ id: "reporting.results", moduleId: "reporting", kind: "section", label: "Authorized report results", parentId: "reporting.workspace", order: 40 }
]
{ id: "reporting.results", moduleId: "reporting", kind: "section", label: "Authorized report results", parentId: "reporting.workspace", order: 40 },
{ id: "reporting.widget.reports", moduleId: "reporting", kind: "section", label: "Reports dashboard widget", order: 75 }
],
uiCapabilities: {
"dashboard.widgets": reportingDashboardWidgets
}
};
export default reportingModule;