Can remove clients
This commit is contained in:
parent
2c14281ae3
commit
9a46cbd819
30
assets/script.js
Normal file
30
assets/script.js
Normal file
@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Delete a client referenced by its ID
|
||||
*
|
||||
* @param clientID The ID of the client to delete
|
||||
*/
|
||||
async function deleteClient(clientID) {
|
||||
if(!confirm("Do you really want to remove client " + clientID + "? The operation cannot be reverted!"))
|
||||
return;
|
||||
|
||||
try {
|
||||
const res = await fetch("/", {
|
||||
method: "POST",
|
||||
headers:{
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: new URLSearchParams({
|
||||
"delete_client_id": clientID
|
||||
}),
|
||||
});
|
||||
|
||||
if(res.status !== 200)
|
||||
throw new Error(`Invalid status code: ${res.status}`);
|
||||
|
||||
alert("The client was successfully deleted!");
|
||||
location.reload();
|
||||
} catch (e) {
|
||||
console.error(`Failed to delete client: ${e}`);
|
||||
alert("Failed to delete client!");
|
||||
}
|
||||
}
|
@ -50,6 +50,9 @@ pub struct FormRequest {
|
||||
|
||||
/// Restrict new client to a given network
|
||||
ip_network: Option<String>,
|
||||
|
||||
/// Delete a specified client id
|
||||
delete_client_id: Option<uuid::Uuid>,
|
||||
}
|
||||
|
||||
/// Main route
|
||||
@ -114,6 +117,14 @@ pub async fn home(session: Session, form_req: Option<web::Form<FormRequest>>) ->
|
||||
config.save().await?;
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a client
|
||||
if let Some(delete_client_id) = form_req.0.delete_client_id {
|
||||
config.clients.retain(|c| c.id != delete_client_id);
|
||||
config.save().await?;
|
||||
success_message = Some("The client was successfully deleted!".to_string());
|
||||
// TODO : close connections with given id
|
||||
}
|
||||
}
|
||||
|
||||
// Render page
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
<link rel="stylesheet" href="/assets/bootstrap.css"/>
|
||||
<link rel="stylesheet" href="/assets/style.css"/>
|
||||
<script src="/assets/script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@ -77,7 +78,7 @@
|
||||
<td>{{ client.fmt_created() }}</td>
|
||||
<td>{{ client.fmt_used() }}</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-danger btn-sm">Delete</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" onclick="deleteClient('{{ client.id }}');">Delete</button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
Loading…
x
Reference in New Issue
Block a user