mirror of
https://github.com/liamcottle/reticulum-meshchat.git
synced 2026-04-28 00:20:48 +00:00
add button to drop existing path for destination
This commit is contained in:
parent
907d3809b1
commit
f5cc7fd36f
2 changed files with 41 additions and 3 deletions
17
meshchat.py
17
meshchat.py
|
|
@ -1047,6 +1047,23 @@ class ReticulumMeshChat:
|
|||
},
|
||||
})
|
||||
|
||||
# drop path to destination
|
||||
@routes.post("/api/v1/destination/{destination_hash}/drop-path")
|
||||
async def index(request):
|
||||
|
||||
# get path params
|
||||
destination_hash = request.match_info.get("destination_hash", "")
|
||||
|
||||
# convert destination hash to bytes
|
||||
destination_hash = bytes.fromhex(destination_hash)
|
||||
|
||||
# drop path
|
||||
self.reticulum.drop_path(destination_hash)
|
||||
|
||||
return web.json_response({
|
||||
"message": "Path has been dropped",
|
||||
})
|
||||
|
||||
# get signal metrics for a destination by checking the latest announce or lxmf message received from them
|
||||
@routes.get("/api/v1/destination/{destination_hash}/signal-metrics")
|
||||
async def index(request):
|
||||
|
|
|
|||
|
|
@ -29,15 +29,18 @@
|
|||
</div>
|
||||
|
||||
<div class="p-2 space-x-1">
|
||||
<button v-if="!isRunning" @click.stop="start" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-gray-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-gray-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500 dark:bg-zinc-800 dark:text-white dark:hover:bg-zinc-700 dark:focus-visible:outline-zinc-500">
|
||||
<button v-if="!isRunning" @click="start" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-gray-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-gray-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500 dark:bg-zinc-800 dark:text-white dark:hover:bg-zinc-700 dark:focus-visible:outline-zinc-500">
|
||||
Start
|
||||
</button>
|
||||
<button v-if="isRunning" @click.stop="stop" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-gray-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-gray-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500 dark:bg-zinc-800 dark:text-white dark:hover:bg-zinc-700 dark:focus-visible:outline-zinc-500">
|
||||
<button v-if="isRunning" @click="stop" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-gray-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-gray-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500 dark:bg-zinc-800 dark:text-white dark:hover:bg-zinc-700 dark:focus-visible:outline-zinc-500">
|
||||
Stop
|
||||
</button>
|
||||
<button @click.stop="clear" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-gray-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-gray-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500 dark:bg-zinc-800 dark:text-white dark:hover:bg-zinc-700 dark:focus-visible:outline-zinc-500">
|
||||
<button @click="clear" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-gray-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-gray-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500 dark:bg-zinc-800 dark:text-white dark:hover:bg-zinc-700 dark:focus-visible:outline-zinc-500">
|
||||
Clear Results
|
||||
</button>
|
||||
<button @click="dropPath" type="button" class="my-auto inline-flex items-center gap-x-1 rounded-md bg-red-500 px-2 py-1 text-sm font-semibold text-white shadow-sm hover:bg-red-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-500">
|
||||
Drop Path
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -181,6 +184,24 @@ export default {
|
|||
|
||||
}
|
||||
},
|
||||
async dropPath() {
|
||||
|
||||
// simple check to ensure destination hash is valid
|
||||
if(this.destinationHash == null || this.destinationHash.length !== 32){
|
||||
DialogUtils.alert("Invalid Destination Hash!");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await window.axios.post(`/api/v1/destination/${this.destinationHash}/drop-path`);
|
||||
DialogUtils.alert(response.data.message);
|
||||
} catch(e) {
|
||||
console.log(e);
|
||||
const message = e.response?.data?.message ?? `Failed to drop path: ${e}`;
|
||||
DialogUtils.alert(message);
|
||||
}
|
||||
|
||||
},
|
||||
addPingResult(result) {
|
||||
this.pingResults.push(result);
|
||||
this.scrollPingResultsToBottom();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue