diff --git a/Dashboard/src/Pages/Alerts/View/Description.tsx b/Dashboard/src/Pages/Alerts/View/Description.tsx new file mode 100644 index 0000000000..906ecf39c5 --- /dev/null +++ b/Dashboard/src/Pages/Alerts/View/Description.tsx @@ -0,0 +1,57 @@ +import PageComponentProps from "../../PageComponentProps"; +import ObjectID from "Common/Types/ObjectID"; +import Navigation from "Common/UI/Utils/Navigation"; +import Alert from "Common/Models/DatabaseModels/Alert"; +import React, { FunctionComponent, ReactElement } from "react"; +import CardModelDetail from "Common/UI/Components/ModelDetail/CardModelDetail"; +import FormFieldSchemaType from "Common/UI/Components/Forms/Types/FormFieldSchemaType"; +import FieldType from "Common/UI/Components/Types/FieldType"; + +const AlertDelete: FunctionComponent< + PageComponentProps +> = (): ReactElement => { + const modelId: ObjectID = Navigation.getLastParamAsObjectID(1); + + return ( + + ); +}; + +export default AlertDelete; diff --git a/Dashboard/src/Pages/Alerts/View/Remediation.tsx b/Dashboard/src/Pages/Alerts/View/Remediation.tsx new file mode 100644 index 0000000000..906ecf39c5 --- /dev/null +++ b/Dashboard/src/Pages/Alerts/View/Remediation.tsx @@ -0,0 +1,57 @@ +import PageComponentProps from "../../PageComponentProps"; +import ObjectID from "Common/Types/ObjectID"; +import Navigation from "Common/UI/Utils/Navigation"; +import Alert from "Common/Models/DatabaseModels/Alert"; +import React, { FunctionComponent, ReactElement } from "react"; +import CardModelDetail from "Common/UI/Components/ModelDetail/CardModelDetail"; +import FormFieldSchemaType from "Common/UI/Components/Forms/Types/FormFieldSchemaType"; +import FieldType from "Common/UI/Components/Types/FieldType"; + +const AlertDelete: FunctionComponent< + PageComponentProps +> = (): ReactElement => { + const modelId: ObjectID = Navigation.getLastParamAsObjectID(1); + + return ( + + ); +}; + +export default AlertDelete; diff --git a/Dashboard/src/Pages/Alerts/View/RootCause.tsx b/Dashboard/src/Pages/Alerts/View/RootCause.tsx new file mode 100644 index 0000000000..4d6c8021b6 --- /dev/null +++ b/Dashboard/src/Pages/Alerts/View/RootCause.tsx @@ -0,0 +1,43 @@ +import PageComponentProps from "../../PageComponentProps"; +import ObjectID from "Common/Types/ObjectID"; +import Navigation from "Common/UI/Utils/Navigation"; +import Alert from "Common/Models/DatabaseModels/Alert"; +import React, { FunctionComponent, ReactElement } from "react"; +import CardModelDetail from "Common/UI/Components/ModelDetail/CardModelDetail"; +import FieldType from "Common/UI/Components/Types/FieldType"; + +const AlertDelete: FunctionComponent< + PageComponentProps +> = (): ReactElement => { + const modelId: ObjectID = Navigation.getLastParamAsObjectID(1); + + return ( + + ); +}; + +export default AlertDelete; diff --git a/Dashboard/src/Pages/Alerts/View/SideMenu.tsx b/Dashboard/src/Pages/Alerts/View/SideMenu.tsx index faf41729b6..b042223d67 100644 --- a/Dashboard/src/Pages/Alerts/View/SideMenu.tsx +++ b/Dashboard/src/Pages/Alerts/View/SideMenu.tsx @@ -28,6 +28,41 @@ const DashboardSideMenu: FunctionComponent = ( }} icon={IconProp.Info} /> + + + + + + + + > = return import("../Pages/Alerts/View/Owners"); }); + + + const AlertViewRootCause: LazyExoticComponent< + FunctionComponent +> = lazy(() => { + return import("../Pages/Alerts/View/RootCause"); +}); + +const AlertViewRemediation: LazyExoticComponent< + FunctionComponent +> = lazy(() => { + return import("../Pages/Alerts/View/Remediation"); +} +); + +const AlertDescription: LazyExoticComponent< + FunctionComponent +> = lazy(() => { + return import("../Pages/Alerts/View/Description"); +}); + const AlertsRoutes: FunctionComponent = ( props: ComponentProps, ) => { @@ -112,6 +133,43 @@ const AlertsRoutes: FunctionComponent = ( } /> + + + + } + /> + + + + + } + /> + + + + + } + + /> + | undefined { "View Alert", "Delete Alert", ]), + ...BuildBreadcrumbLinksByTitles(PageMap.ALERT_VIEW_ROOT_CAUSE, [ + "Project", + "Alerts", + "View Alert", + "Root Cause", + ]), + ...BuildBreadcrumbLinksByTitles(PageMap.ALERT_VIEW_REMEDIATION, [ + "Project", + "Alerts", + "View Alert", + "Remediation", + ]), + + ...BuildBreadcrumbLinksByTitles(PageMap.ALERT_VIEW_DESCRIPTION, [ + "Project", + "Alerts", + "Description", + ]), + + + }; return breadcrumpLinksMap[path]; } diff --git a/Dashboard/src/Utils/PageMap.ts b/Dashboard/src/Utils/PageMap.ts index bcbc28fcb9..b491359c69 100644 --- a/Dashboard/src/Utils/PageMap.ts +++ b/Dashboard/src/Utils/PageMap.ts @@ -91,6 +91,9 @@ enum PageMap { ALERT_INTERNAL_NOTE = "ALERT_INTERNAL_NOTE", ALERT_VIEW_CUSTOM_FIELDS = "ALERT_VIEW_CUSTOM_FIELDS", ALERT_VIEW_OWNERS = "ALERT_VIEW_OWNERS", + ALERT_VIEW_DESCRIPTION = "ALERT_VIEW_DESCRIPTION", + ALERT_VIEW_ROOT_CAUSE = "ALERT_VIEW_ROOT_CAUSE", + ALERT_VIEW_REMEDIATION = "ALERT_VIEW_REMEDIATION", SCHEDULED_MAINTENANCE_EVENTS_ROOT = "SCHEDULED_MAINTENANCE_EVENTS_ROOT", SCHEDULED_MAINTENANCE_EVENTS = "SCHEDULED_MAINTENANCE_EVENTS", diff --git a/Dashboard/src/Utils/RouteMap.ts b/Dashboard/src/Utils/RouteMap.ts index 8e0f2f054d..7f4123b854 100644 --- a/Dashboard/src/Utils/RouteMap.ts +++ b/Dashboard/src/Utils/RouteMap.ts @@ -156,6 +156,9 @@ export const AlertsRoutePath: Dictionary = { [PageMap.ALERT_VIEW_STATE_TIMELINE]: `${RouteParams.ModelID}/state-timeline`, [PageMap.ALERT_VIEW_OWNERS]: `${RouteParams.ModelID}/owners`, [PageMap.ALERT_VIEW_DELETE]: `${RouteParams.ModelID}/delete`, + [PageMap.ALERT_VIEW_DESCRIPTION]: `${RouteParams.ModelID}/description`, + [PageMap.ALERT_VIEW_ROOT_CAUSE]: `${RouteParams.ModelID}/root-cause`, + [PageMap.ALERT_VIEW_REMEDIATION]: `${RouteParams.ModelID}/remediation`, [PageMap.ALERT_VIEW_CUSTOM_FIELDS]: `${RouteParams.ModelID}/custom-fields`, [PageMap.ALERT_INTERNAL_NOTE]: `${RouteParams.ModelID}/internal-notes`, }; @@ -429,6 +432,24 @@ const RouteMap: Dictionary = { }`, ), + [PageMap.ALERT_VIEW_DESCRIPTION]: new Route( + `/dashboard/${RouteParams.ProjectID}/alerts/${ + AlertsRoutePath[PageMap.ALERT_VIEW_DESCRIPTION] + }`, + ), + + [PageMap.ALERT_VIEW_ROOT_CAUSE]: new Route( + `/dashboard/${RouteParams.ProjectID}/alerts/${ + AlertsRoutePath[PageMap.ALERT_VIEW_ROOT_CAUSE] + }`, + ), + + [PageMap.ALERT_VIEW_REMEDIATION]: new Route( + `/dashboard/${RouteParams.ProjectID}/alerts/${ + AlertsRoutePath[PageMap.ALERT_VIEW_REMEDIATION] + }`, + ), + [PageMap.ALERT_VIEW_CUSTOM_FIELDS]: new Route( `/dashboard/${RouteParams.ProjectID}/alerts/${ AlertsRoutePath[PageMap.ALERT_VIEW_CUSTOM_FIELDS]