From b4321218a247aa7b97a0be6c5898ad773e561b14 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Sat, 1 Mar 2025 09:53:21 -0300 Subject: [PATCH] feat: add refresh functionality for peer invite expiration --- templates/wireguard/wireguard_peer_list.html | 37 ++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/templates/wireguard/wireguard_peer_list.html b/templates/wireguard/wireguard_peer_list.html index 4848dec..a5c0097 100644 --- a/templates/wireguard/wireguard_peer_list.html +++ b/templates/wireguard/wireguard_peer_list.html @@ -118,7 +118,7 @@

Throughput: --

Transfer: --

-

Latest Handshake: --

+

Latest Handshake: --

Endpoints: --

Allowed IPs: --

@@ -165,7 +165,10 @@

-

Expires on:

+

+ Expires on: + +

@@ -745,6 +748,36 @@ } }); + // Handler for refreshing the invite (update expiration and content) + $("#refreshInviteButton").on("click", function(e) { + e.preventDefault(); + if(inviteData && inviteData.uuid) { + $.ajax({ + url: '/api/peer_invite/', + data: { invite: inviteData.uuid, action: 'refresh' }, + type: 'GET', + dataType: 'json', + success: function(response) { + if(response.status === "success") { + // Update the invite details + inviteData = response.invite_data; + $("#inviteText").text(inviteData.text_body); + $("#invitePassword").html("Access Password: " + inviteData.password + " (Share this password via a separate secure channel)"); + $("#inviteExpiration").text(new Date(inviteData.expiration).toLocaleString()); + $("#inviteMessage").html("
Invite refreshed successfully.
"); + } else { + $("#inviteMessage").html("
" + response.message + "
"); + } + }, + error: function(xhr, status, error) { + $("#inviteMessage").html("
Error refreshing invite: " + error + "
"); + } + }); + } else { + $("#inviteMessage").html("
No invite data available to refresh.
"); + } + }); + // Handler for Close Invite button (which deletes the invite) $("#closeInviteButton").on("click", function(e) { e.preventDefault();