diff --git a/pkgs/clan-cli/clan_cli/emulate_fastapi.py b/pkgs/clan-cli/clan_cli/emulate_fastapi.py
index ae50081..ba3da48 100644
--- a/pkgs/clan-cli/clan_cli/emulate_fastapi.py
+++ b/pkgs/clan-cli/clan_cli/emulate_fastapi.py
@@ -106,11 +106,13 @@ async def consume_service_from_other_entity_c1() -> HTMLResponse:
@app_c1.get("/v1/print_daemon1/register", response_class=JSONResponse)
async def register_c1() -> JSONResponse:
+ time.sleep(2)
return JSONResponse(content={"status": "registered"}, status_code=200)
@app_c1.get("/v1/print_daemon1/deregister", response_class=JSONResponse)
async def deregister_c1() -> JSONResponse:
+ time.sleep(2)
return JSONResponse(content={"status": "deregistered"}, status_code=200)
@@ -130,11 +132,13 @@ async def consume_service_from_other_entity_c2() -> HTMLResponse:
@app_c2.get("/v1/print_daemon2/register", response_class=JSONResponse)
async def register_c2() -> JSONResponse:
+ time.sleep(2)
return JSONResponse(content={"status": "registered"}, status_code=200)
@app_c2.get("/v1/print_daemon2/deregister", response_class=JSONResponse)
async def deregister_c2() -> JSONResponse:
+ time.sleep(2)
return JSONResponse(content={"status": "deregistered"}, status_code=200)
diff --git a/pkgs/ui/src/app/client/client.tsx b/pkgs/ui/src/app/client/client.tsx
index 57e9a97..a3f2d9c 100644
--- a/pkgs/ui/src/app/client/client.tsx
+++ b/pkgs/ui/src/app/client/client.tsx
@@ -190,7 +190,7 @@ export default function Client() {
],
}}
/>
-
+
Service Consumer View
);
}
-
-const ClientTable = () => {
- return (
-
- {/*
Client View
- */}
-
- );
-};
diff --git a/pkgs/ui/src/components/entity_actions/index.tsx b/pkgs/ui/src/components/entity_actions/index.tsx
index 719da6f..c7bfeb7 100644
--- a/pkgs/ui/src/components/entity_actions/index.tsx
+++ b/pkgs/ui/src/components/entity_actions/index.tsx
@@ -5,6 +5,11 @@ import {
Alert,
AlertColor,
CircularProgress,
+ Dialog,
+ DialogTitle,
+ DialogContent,
+ DialogContentText,
+ DialogActions,
} from "@mui/material";
import { useState } from "react";
import { deleteEntity } from "@/api/entities/entities";
@@ -37,6 +42,7 @@ const EntityActions = ({ endpointData, rowData }: Props) => {
const [loadingDeRegister, setLoadingDeRegister] = useState(false);
const [loadingDelete, setLoadingDelete] = useState(false);
+ const [confirmDelete, setConfirmDelete] = useState(false);
if (registerData) console.log("Register Data in state", registerData);
if (registerError) console.error("Register Error in state", registerError);
@@ -66,6 +72,7 @@ const EntityActions = ({ endpointData, rowData }: Props) => {
});
} finally {
setLoadingDelete(false);
+ closeDeleteConfirmation();
}
};
@@ -89,10 +96,20 @@ const EntityActions = ({ endpointData, rowData }: Props) => {
.then((response) => {
setRegisterData(response.data);
console.log("I got the data from register: ", response.data);
+ setSnackbar({
+ open: true,
+ message: "Registered successfully!",
+ severity: "success",
+ });
})
.catch((error) => {
console.error("Error happened during register: ", error);
setRegisterError(error);
+ setSnackbar({
+ open: true,
+ message: error,
+ severity: "error",
+ });
})
.finally(() => {
setLoadingRegister(false);
@@ -114,10 +131,20 @@ const EntityActions = ({ endpointData, rowData }: Props) => {
.then((response) => {
setDeRegisterData(response.data);
console.log("I got the data from deregister: ", response.data);
+ setSnackbar({
+ open: true,
+ message: "De-Registered successfully!",
+ severity: "success",
+ });
})
.catch((error) => {
console.error("Error happened during deregister: ", error);
setDeRegisterError(error);
+ setSnackbar({
+ open: true,
+ message: error,
+ severity: "error",
+ });
})
.finally(() => {
setLoadingDeRegister(false);
@@ -128,6 +155,14 @@ const EntityActions = ({ endpointData, rowData }: Props) => {
setSnackbar(SNACKBAR_DEFAULT);
};
+ const openDeleteConfirmation = () => {
+ setConfirmDelete(true);
+ };
+
+ const closeDeleteConfirmation = () => {
+ setConfirmDelete(false);
+ };
+
return (
<>
@@ -154,13 +189,27 @@ const EntityActions = ({ endpointData, rowData }: Props) => {
)}
+