+
+
@@ -26,9 +26,7 @@ import ClientInfo from '@/components/ClientInfo.vue';
import ClientAvatar from '@/components/ClientAvatar.vue';
import ClientControls from '@/components/ClientControls.vue';
-
defineProps({
client: {},
});
-
diff --git a/webui/src/components/ClientAddress.vue b/webui/src/components/ClientAddress.vue
index 61e19c35..6827eb74 100644
--- a/webui/src/components/ClientAddress.vue
+++ b/webui/src/components/ClientAddress.vue
@@ -1,24 +1,21 @@
-
+
- {{
- client.address
- }}
+ {{ client.address }}
diff --git a/webui/src/components/ClientAvatar.vue b/webui/src/components/ClientAvatar.vue
index e70cf521..d44fe849 100644
--- a/webui/src/components/ClientAvatar.vue
+++ b/webui/src/components/ClientAvatar.vue
@@ -1,33 +1,25 @@
-
-
-
![]()
+
+
+
diff --git a/webui/src/components/ClientControls.vue b/webui/src/components/ClientControls.vue
index 8ee3ffbb..929e162b 100644
--- a/webui/src/components/ClientControls.vue
+++ b/webui/src/components/ClientControls.vue
@@ -3,15 +3,16 @@
+
@@ -19,9 +20,15 @@
+
diff --git a/webui/src/components/ClientTrafficStat.vue b/webui/src/components/ClientTrafficStat.vue
new file mode 100644
index 00000000..315ce38e
--- /dev/null
+++ b/webui/src/components/ClientTrafficStat.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+ {{ bytes(transferDataCurrent) }}/s
+
+
{{ bytes(transferData) }}
+
+
+
+
+
+
+
diff --git a/webui/src/components/Footer.vue b/webui/src/components/Footer.vue
index c9670bd6..575e13f2 100644
--- a/webui/src/components/Footer.vue
+++ b/webui/src/components/Footer.vue
@@ -1,11 +1,12 @@
- Made by
- Emile Nijssen
- ·
- Donate
- ·
- GitHub
+ WireGuard Easy © 2021-2024
+ by Emile Nijssen is
+ licensed under
+ CC BY-NC-SA 4.0
+ · {{ $t('donate') }}
diff --git a/webui/src/components/Header.vue b/webui/src/components/Header.vue
index 27d69cc9..d10ac1e2 100644
--- a/webui/src/components/Header.vue
+++ b/webui/src/components/Header.vue
@@ -1,5 +1,5 @@
-
+
WireGuard
-
-
-
There is an update available!
+
{{ $t('updateAvailable') }}
{{ latestRelease.changelog }}
@@ -21,8 +15,23 @@ export default {
target="_blank"
class="p-3 rounded-md bg-white dark:bg-red-100 float-right font-sm font-semibold text-red-800 dark:text-red-600 flex-shrink-0 border-2 border-red-800 dark:border-red-600 hover:border-white dark:hover:border-red-600 hover:text-white dark:hover:text-red-100 hover:bg-red-800 dark:hover:bg-red-600 transition-all"
>
- Update →
+ {{ $t('update') }} →
+
+
diff --git a/webui/src/components/icons/IconDelete.vue b/webui/src/components/icons/IconDelete.vue
index e09dee76..985951bc 100644
--- a/webui/src/components/icons/IconDelete.vue
+++ b/webui/src/components/icons/IconDelete.vue
@@ -1,10 +1,5 @@
-
+
+
diff --git a/webui/src/components/icons/IconTX.vue b/webui/src/components/icons/IconTX.vue
new file mode 100644
index 00000000..09e81c2c
--- /dev/null
+++ b/webui/src/components/icons/IconTX.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/webui/src/services/api.js b/webui/src/services/api.js
index 8fc4f5a2..d938e819 100644
--- a/webui/src/services/api.js
+++ b/webui/src/services/api.js
@@ -40,7 +40,7 @@ export default class API {
return res.slice(0, 2);
}
- async getuiTrafficStats() {
+ async getUiTrafficStats() {
return this.call({
method: 'get',
path: '/ui-traffic-stats',
diff --git a/webui/src/store/store.js b/webui/src/store/store.js
index 5e57db87..2e69f2f6 100644
--- a/webui/src/store/store.js
+++ b/webui/src/store/store.js
@@ -24,6 +24,7 @@ export const useStore = defineStore('store', () => {
const uiChartType = ref(0);
const uiShowCharts = ref(localStorage.getItem('uiShowCharts') === '1');
+ const uiTrafficStats = ref(false);
function login(e) {
e.preventDefault();
@@ -180,6 +181,7 @@ export const useStore = defineStore('store', () => {
prefersDarkScheme,
uiChartType,
uiShowCharts,
+ uiTrafficStats,
login,
logout,
createClient,