From 2235c2a0d793686e4c9f7738a41aabc6d925a443 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Tue, 18 Jul 2023 16:05:06 +0200 Subject: [PATCH] stats display, expiry date field --- frontend/src/components/PeerEditModal.vue | 16 +++- frontend/src/components/PeerViewModal.vue | 52 +++++++++--- frontend/src/helpers/models.js | 13 +++ frontend/src/stores/peers.js | 39 ++++++++- frontend/src/views/InterfaceView.vue | 14 +++- internal/adapters/database.go | 15 ++++ .../app/api/v0/handlers/endpoint_peers.go | 32 ++++++++ internal/app/api/v0/model/models_peer.go | 80 ++++++++++++++++++- internal/app/repos.go | 1 + internal/app/wireguard/repos.go | 1 + internal/app/wireguard/statistics.go | 15 ++-- internal/app/wireguard/statistics_test.go | 10 +++ internal/app/wireguard/wireguard.go | 16 +++- internal/domain/peer.go | 4 +- internal/domain/statistics.go | 11 +++ 15 files changed, 289 insertions(+), 30 deletions(-) diff --git a/frontend/src/components/PeerEditModal.vue b/frontend/src/components/PeerEditModal.vue index b787eca..b683d30 100644 --- a/frontend/src/components/PeerEditModal.vue +++ b/frontend/src/components/PeerEditModal.vue @@ -172,7 +172,7 @@ function handleChangeAllowedIPs(tags) { } }) if(validInput) { - formData.value.AllowedIPs = tags + formData.value.AllowedIPs.Value = tags } } @@ -340,9 +340,17 @@ async function del() {
State -
- - +
+
+
+ + +
+
+
+ + +
diff --git a/frontend/src/components/PeerViewModal.vue b/frontend/src/components/PeerViewModal.vue index 94cb240..9727d63 100644 --- a/frontend/src/components/PeerViewModal.vue +++ b/frontend/src/components/PeerViewModal.vue @@ -4,7 +4,7 @@ import {peerStore} from "@/stores/peers"; import {interfaceStore} from "@/stores/interfaces"; import {computed, ref, watch} from "vue"; import {useI18n} from "vue-i18n"; -import { freshInterface, freshPeer } from '@/helpers/models'; +import {freshInterface, freshPeer, freshStats} from '@/helpers/models'; import Prism from "vue-prism-component"; import {notify} from "@kyvg/vue3-notification"; @@ -36,6 +36,16 @@ const selectedPeer = computed(() => { return p }) +const selectedStats = computed(() => { + let s = peers.Statistics(props.peerId) + + if (!s) { + s = freshStats() // dummy peer to avoid 'undefined' exceptions + } + + return s +}) + const selectedInterface = computed(() => { let i = interfaces.GetSelected; @@ -105,14 +115,14 @@ function email() {