From 6f975a06b6aeebca8692dc043874ee89dbcb79e5 Mon Sep 17 00:00:00 2001 From: liamcottle Date: Sun, 5 May 2024 01:46:20 +1200 Subject: [PATCH] add button to delete messages that failed to send --- public/index.html | 22 +++++++++++++++++++++- web.py | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index ae7bfdc..9315aeb 100644 --- a/public/index.html +++ b/public/index.html @@ -208,7 +208,6 @@ - @@ -218,6 +217,7 @@
+ delete? {{ chatItem.lxmf_message.state }} {{ chatItem.lxmf_message.progress }}%
@@ -744,6 +744,26 @@ // do nothing if failed to load messages } }, + async deleteChatItem(chatItem) { + try { + + // make sure it's an lxmf message + if(chatItem.type !== "lxmf_message"){ + return; + } + + // delete lxmf message from server + await window.axios.delete(`/api/v1/lxmf-messages/${chatItem.lxmf_message.id}`); + + // remove lxmf message from chat items + this.chatItems = this.chatItems.filter((item) => { + return item.lxmf_message?.id !== chatItem.lxmf_message.id; + }); + + } catch(e) { + // do nothing if failed to delete message + } + }, addNewLine: function() { this.newMessageText += "\n"; }, diff --git a/web.py b/web.py index bb92c57..0144c86 100644 --- a/web.py +++ b/web.py @@ -188,6 +188,26 @@ class ReticulumWebChat: "lxmf_messages": lxmf_messages, }) + # serve lxmf messages + @routes.delete("/api/v1/lxmf-messages/{id}") + async def index(request): + + # get path params + id = request.match_info.get("id", None) + + # source_hash is required + if id is None: + return web.json_response({ + "message": "id is required", + }, status=422) + + # delete lxmf messages from db where id matches + database.LxmfMessage.delete_by_id(id) + + return web.json_response({ + "message": "ok", + }) + asyncio.get_event_loop().add_signal_handler(signal.SIGINT, lambda: exit(-1)) asyncio.get_event_loop().add_signal_handler(signal.SIGTERM, lambda: exit(-1))