From b19ee171ebb90e3fa375c115b8f4c50ac29c976c Mon Sep 17 00:00:00 2001 From: liamcottle Date: Thu, 2 Jan 2025 00:05:51 +1300 Subject: [PATCH] add button to export single interface --- meshchat.py | 18 +++++++++- .../components/interfaces/Interface.vue | 14 ++++++++ .../components/interfaces/InterfacesPage.vue | 33 ++++++++++++++++--- 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/meshchat.py b/meshchat.py index b4834af..85f9433 100644 --- a/meshchat.py +++ b/meshchat.py @@ -590,13 +590,29 @@ class ReticulumMeshChat: }) # export interfaces - @routes.get("/api/v1/reticulum/interfaces/export") + @routes.post("/api/v1/reticulum/interfaces/export") async def export_interfaces(request): try: + # get request data + selected_interface_names = None + try: + data = await request.json() + selected_interface_names = data.get('selected_interface_names') + except: + # request data was not json, but we don't care + pass + # format interfaces for export output = [] for interface_name, interface in self.reticulum.config["interfaces"].items(): + + # skip interface if not selected + if selected_interface_names is not None and selected_interface_names != "": + if interface_name not in selected_interface_names: + continue + + # add interface to output output.append(f"[[{interface_name}]]") for key, value in interface.items(): output.append(f" {key} = {value}") diff --git a/src/frontend/components/interfaces/Interface.vue b/src/frontend/components/interfaces/Interface.vue index ade4350..ec1fd4a 100644 --- a/src/frontend/components/interfaces/Interface.vue +++ b/src/frontend/components/interfaces/Interface.vue @@ -115,6 +115,17 @@ + +
+ +
+