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]