add SecretAllowedModelEdit

This commit is contained in:
mike cullerton 2022-10-05 18:07:15 -04:00
parent 87f640e3a3
commit 4a81b2a101
3 changed files with 86 additions and 2 deletions

View File

@ -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={<SecretAllowedModelNew />}
/>
<Route
path="secrets/allowed_model/edit/:id"
element={<SecretAllowedModelEdit />}
/>
</Routes>
);
}

View File

@ -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<SecretAllowedProcessModel | null>(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 (
<main style={{ padding: '1rem 0' }}>
<h2>Edit Allowed Model: {params.id}</h2>
<Form onSubmit={updateAllowedModel}>
<Form.Group className="mb-3" controlId="formEditAllowedModel">
<Form.Label>Relative Path to Model:</Form.Label>
<Form.Control
type="text"
value={
allowedRelativePath || secretAllowedModel.allowed_relative_path
}
onChange={(e) => setPath(e.target.value)}
/>
</Form.Group>
<Button variant="primary" type="submit">
Submit
</Button>
<Button variant="danger" type="button" onClick={navigateToSecrets}>
Cancel
</Button>
</Form>
</main>
);
}
return null;
}

View File

@ -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 (
<tr key={secretToUse.key}>
<td>{(row as SecretAllowedProcessModel).id}</td>
<td>
<Link to={`/admin/secrets/allowed_model/edit/${(row as any).id}`}>
{(row as SecretAllowedProcessModel).id}
</Link>
</td>
<td>{(row as SecretAllowedProcessModel).allowed_relative_path}</td>
<td>
<MdDelete