diff --git a/frontend/src/components/InterfaceViewModal.vue b/frontend/src/components/InterfaceViewModal.vue index 2fd8b94..378e0ed 100644 --- a/frontend/src/components/InterfaceViewModal.vue +++ b/frontend/src/components/InterfaceViewModal.vue @@ -36,7 +36,7 @@ const title = computed(() => { watch(() => props.visible, async (newValue, oldValue) => { if (oldValue === false && newValue === true) { // if modal is shown console.log(selectedInterface.value) - await interfaces.InterfaceConfig(selectedInterface.value.Identifier) + await interfaces.LoadInterfaceConfig(selectedInterface.value.Identifier) configString.value = interfaces.configuration } } diff --git a/frontend/src/components/PeerEditModal.vue b/frontend/src/components/PeerEditModal.vue index 04b8d13..b787eca 100644 --- a/frontend/src/components/PeerEditModal.vue +++ b/frontend/src/components/PeerEditModal.vue @@ -9,7 +9,7 @@ import Vue3TagsInput from "vue3-tags-input"; import { validateCIDR, validateIP, validateDomain } from '@/helpers/validators'; import isCidr from "is-cidr"; import {isIP} from 'is-ip'; -import { freshPeer } from '@/helpers/models'; +import { freshPeer, freshInterface } from '@/helpers/models'; const { t } = useI18n() @@ -31,10 +31,7 @@ const selectedInterface = computed(() => { let i = interfaces.GetSelected; if (!i) { - i = { // dummy interface to avoid 'undefined' exceptions - Identifier: "none", - Mode: "server" - } + i = freshInterface() // dummy interface to avoid 'undefined' exceptions } return i diff --git a/frontend/src/components/PeerViewModal.vue b/frontend/src/components/PeerViewModal.vue index 1b6139d..905df4c 100644 --- a/frontend/src/components/PeerViewModal.vue +++ b/frontend/src/components/PeerViewModal.vue @@ -2,7 +2,12 @@ import Modal from "./Modal.vue"; import {peerStore} from "@/stores/peers"; import {interfaceStore} from "@/stores/interfaces"; -import {computed} from "vue"; +import {computed, ref, watch} from "vue"; +import {useI18n} from "vue-i18n"; +import { freshInterface, freshPeer } from '@/helpers/models'; +import Prism from "vue-prism-component"; + +const { t } = useI18n() const peers = peerStore() const interfaces = interfaceStore() @@ -18,30 +23,49 @@ function close() { emit('close') } +const configString = ref("") + const selectedPeer = computed(() => { - return peers.Find(props.peerId) + let p = peers.Find(props.peerId) + + if (!p) { + p = freshPeer() // dummy peer to avoid 'undefined' exceptions + } + + return p }) const selectedInterface = computed(() => { let i = interfaces.GetSelected; if (!i) { - i = { // dummy interface to avoid 'undefined' exceptions - Identifier: "none", - Mode: "server" - } + i = freshInterface() // dummy interface to avoid 'undefined' exceptions } return i }) const title = computed(() => { - if (selectedPeer.value) { - return "Peer: " + selectedPeer.value.Name + if (!props.visible) { + return "" // otherwise interfaces.GetSelected will die... + } + if (selectedInterface.value.Mode === "server") { + return t("interfaces.peer.view") + ": " + selectedPeer.value.DisplayName + } else { + return t("interfaces.endpoint.view") + ": " + selectedPeer.value.DisplayName } - return "" }) +watch(() => props.visible, async (newValue, oldValue) => { + if (oldValue === false && newValue === true) { // if modal is shown + console.log(selectedInterface.value) + console.log(selectedPeer.value) + await peers.LoadPeerConfig(selectedPeer.value.Identifier) + configString.value = peers.configuration + } + } +) +