From 4a81b2a10141fd3dd8f30cd6db6b260fb3e39d02 Mon Sep 17 00:00:00 2001 From: mike cullerton Date: Wed, 5 Oct 2022 18:07:15 -0400 Subject: [PATCH] add SecretAllowedModelEdit --- src/routes/AdminRoutes.tsx | 5 ++ src/routes/SecretAllowedModelEdit.tsx | 75 +++++++++++++++++++++++++++ src/routes/SecretShow.tsx | 8 ++- 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/routes/SecretAllowedModelEdit.tsx diff --git a/src/routes/AdminRoutes.tsx b/src/routes/AdminRoutes.tsx index 53be764..b37e102 100644 --- a/src/routes/AdminRoutes.tsx +++ b/src/routes/AdminRoutes.tsx @@ -24,6 +24,7 @@ import SecretList from './SecretList'; import SecretNew from './SecretNew'; import SecretShow from './SecretShow'; import SecretAllowedModelNew from './SecretAllowedModelNew'; +import SecretAllowedModelEdit from './SecretAllowedModelEdit'; export default function AdminRoutes() { const location = useLocation(); @@ -113,6 +114,10 @@ export default function AdminRoutes() { path="secrets/allowed_model/new/:secret" element={} /> + } + /> ); } diff --git a/src/routes/SecretAllowedModelEdit.tsx b/src/routes/SecretAllowedModelEdit.tsx new file mode 100644 index 0000000..08a112b --- /dev/null +++ b/src/routes/SecretAllowedModelEdit.tsx @@ -0,0 +1,75 @@ +import { useEffect, useState } from 'react'; +import { useNavigate, useParams } from 'react-router-dom'; +import { Form } from 'react-bootstrap'; +import Button from 'react-bootstrap/Button'; +import HttpService from '../services/HttpService'; +import { SecretAllowedProcessModel } from '../interfaces'; + +export default function SecretAllowedModelEdit() { + const [secretAllowedModel, setSecretAllowedModel] = + useState(null); + const [allowedRelativePath, setPath] = useState( + secretAllowedModel?.allowed_relative_path + ); + const navigate = useNavigate(); + const params = useParams(); + + const navigateToSecrets = (_result: any) => { + navigate(`/admin/secrets`); + }; + + // const navigateToSecret = (_result: any) => { + // if (secretAllowedModel && secretAllowedModel.secret_id) { + // navigate(`/admin/secrets/${secretAllowedModel.secret_id}`); + // } + // }; + + useEffect(() => { + HttpService.makeCallToBackend({ + path: `/secrets/allowed_process_paths/${params.id}`, + successCallback: setSecretAllowedModel, + }); + }, [params]); + + const updateAllowedModel = (event: any) => { + event.preventDefault(); + if (secretAllowedModel) { + HttpService.makeCallToBackend({ + path: `/secrets/allowed_process_paths/${params.id}`, + successCallback: navigateToSecrets, + httpMethod: 'PUT', + postBody: { + secret_id: secretAllowedModel.secret_id, + allowed_relative_path: allowedRelativePath, + }, + }); + } + }; + + if (secretAllowedModel) { + return ( +
+

Edit Allowed Model: {params.id}

+
+ + Relative Path to Model: + setPath(e.target.value)} + /> + + + +
+
+ ); + } + return null; +} diff --git a/src/routes/SecretShow.tsx b/src/routes/SecretShow.tsx index d7e1494..6468d3c 100644 --- a/src/routes/SecretShow.tsx +++ b/src/routes/SecretShow.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react'; -import { useParams, useNavigate } from 'react-router-dom'; +import { Link, useParams, useNavigate } from 'react-router-dom'; import { Stack, Table, Button } from 'react-bootstrap'; import { MdDelete } from 'react-icons/md'; import HttpService from '../services/HttpService'; @@ -76,7 +76,11 @@ export default function SecretShow() { (row: SecretAllowedProcessModel) => { return ( - {(row as SecretAllowedProcessModel).id} + + + {(row as SecretAllowedProcessModel).id} + + {(row as SecretAllowedProcessModel).allowed_relative_path}