From 92d38429586ec47706d2a1da1fddb87f56aac31e Mon Sep 17 00:00:00 2001
From: Bernd Storath <999999bst@gmail.com>
Date: Thu, 13 Feb 2025 16:05:37 +0100
Subject: [PATCH] improve useSubmit, i18n
---
src/app/components/Clients/CreateDialog.vue | 14 ++-
src/app/components/Clients/DeleteDialog.vue | 16 +--
src/app/components/Clients/QRCodeDialog.vue | 2 +-
src/app/components/admin/CidrDialog.vue | 6 +-
src/app/composables/useSubmit.ts | 9 +-
src/app/pages/admin/config.vue | 15 +--
src/app/pages/admin/hooks.vue | 34 ++----
src/app/pages/admin/index.vue | 7 +-
src/app/pages/admin/interface.vue | 31 +++---
src/app/pages/clients/[id].vue | 101 ++++++++----------
src/app/pages/me.vue | 109 ++++++++------------
src/i18n/locales/en.json | 53 ++++++----
12 files changed, 189 insertions(+), 208 deletions(-)
diff --git a/src/app/components/Clients/CreateDialog.vue b/src/app/components/Clients/CreateDialog.vue
index c5d2aa0e..7b737a7d 100644
--- a/src/app/components/Clients/CreateDialog.vue
+++ b/src/app/components/Clients/CreateDialog.vue
@@ -4,20 +4,24 @@
- {{ $t('newClient') }}
+ {{ $t('client.new') }}
-
-
+
+
- {{ $t('cancel') }}
+ {{ $t('dialog.cancel') }}
- {{ $t('create') }}
+ {{ $t('client.create') }}
diff --git a/src/app/components/Clients/DeleteDialog.vue b/src/app/components/Clients/DeleteDialog.vue
index 21fec0b6..974eb7c4 100644
--- a/src/app/components/Clients/DeleteDialog.vue
+++ b/src/app/components/Clients/DeleteDialog.vue
@@ -1,19 +1,19 @@
-
+
- {{ $t('deleteClient') }}
+ {{ $t('client.deleteClient') }}
- {{ $t('deleteDialog1') }}
- {{ 'test' }}? {{ $t('deleteDialog2') }}
+ {{ $t('client.deleteDialog1') }}
+ {{ clientName }}? {{ $t('client.deleteDialog2') }}
- {{ $t('cancel') }}
+ {{ $t('dialog.cancel') }}
{{
- $t('deleteClient')
+ $t('client.deleteClient')
}}
@@ -22,5 +22,5 @@
diff --git a/src/app/components/Clients/QRCodeDialog.vue b/src/app/components/Clients/QRCodeDialog.vue
index 8623abbe..7a3e7183 100644
--- a/src/app/components/Clients/QRCodeDialog.vue
+++ b/src/app/components/Clients/QRCodeDialog.vue
@@ -8,7 +8,7 @@
- {{ $t('cancel') }}
+ {{ $t('dialog.cancel') }}
diff --git a/src/app/components/admin/CidrDialog.vue b/src/app/components/admin/CidrDialog.vue
index 73f26e7c..d9635009 100644
--- a/src/app/components/admin/CidrDialog.vue
+++ b/src/app/components/admin/CidrDialog.vue
@@ -1,7 +1,7 @@
- Change CIDR
+ {{ $t('admin.interface.changeCidr') }}
@@ -10,11 +10,11 @@
- {{ $t('cancel') }}
+ {{ $t('dialog.cancel') }}
- Change
+ {{ $t('dialog.change') }}
diff --git a/src/app/composables/useSubmit.ts b/src/app/composables/useSubmit.ts
index f47add95..a5fd76c9 100644
--- a/src/app/composables/useSubmit.ts
+++ b/src/app/composables/useSubmit.ts
@@ -5,14 +5,17 @@ type RevertFn = () => Promise;
export function useSubmit<
R extends NitroFetchRequest,
- O extends NitroFetchOptions,
+ O extends NitroFetchOptions & { body?: never },
>(url: R, options: O, revert: RevertFn, success?: string, error?: string) {
const toast = useToast();
const { t: $t } = useI18n();
- return async () => {
+ return async (data: unknown) => {
try {
- const res = await $fetch(url, options);
+ const res = await $fetch(url, {
+ ...options,
+ body: data,
+ });
// eslint-disable-next-line @typescript-eslint/no-explicit-any
if (!(res as any).success) {
throw new Error(error || $t('toast.errored'));
diff --git a/src/app/pages/admin/config.vue b/src/app/pages/admin/config.vue
index 03c6302f..c29d87c4 100644
--- a/src/app/pages/admin/config.vue
+++ b/src/app/pages/admin/config.vue
@@ -18,7 +18,7 @@
{{
- $t('admin.config.allowedIps')
+ $t('general.allowedIps')
}}
- {{ $t('admin.config.advanced') }}
+ {{ $t('form.sectionAdvanced') }}
@@ -62,15 +62,18 @@ const { data: _data, refresh } = await useFetch(`/api/admin/userconfig`, {
const data = toRef(_data.value);
-const submit = useSubmit(
+const _submit = useSubmit(
`/api/admin/userconfig`,
{
method: 'post',
- body: data.value,
},
revert
);
+function submit() {
+ return _submit(data.value);
+}
+
async function revert() {
await refresh();
data.value = toRef(_data.value).value;
diff --git a/src/app/pages/admin/hooks.vue b/src/app/pages/admin/hooks.vue
index 59ade21f..cd1d1292 100644
--- a/src/app/pages/admin/hooks.vue
+++ b/src/app/pages/admin/hooks.vue
@@ -17,38 +17,22 @@
diff --git a/src/app/pages/clients/[id].vue b/src/app/pages/clients/[id].vue
index fdb63a68..cd27c987 100644
--- a/src/app/pages/clients/[id].vue
+++ b/src/app/pages/clients/[id].vue
@@ -8,22 +8,26 @@
- {{ $t('me.sectionGeneral') }}
+ {{ $t('form.sectionGeneral') }}
-
+
- Address
+ {{ $t('client.address') }}
- Allowed IPs
+ {{ $t('general.allowedIps') }}
- Server Allowed IPs
+ {{ $t('client.serverAllowedIps') }}
- Advanced
-
+ {{ $t('form.sectionAdvanced') }}
+
- Actions
-
-
+ {{ $t('form.actions') }}
+
+
@@ -76,9 +85,10 @@
diff --git a/src/app/pages/me.vue b/src/app/pages/me.vue
index b1de45a1..e7009917 100644
--- a/src/app/pages/me.vue
+++ b/src/app/pages/me.vue
@@ -7,38 +7,45 @@
- {{ $t('me.sectionGeneral') }}
-
+ {{ $t('form.sectionGeneral') }}
+
-
+
- {{ $t('me.sectionPassword') }}
+ {{ $t('general.password') }}
+
-
@@ -47,75 +54,47 @@
diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index acab2bd9..3658727f 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -10,15 +10,22 @@
"hooks": "Hooks"
}
},
+ "user": {
+ "email": "E-Mail"
+ },
"me": {
- "sectionGeneral": "General",
- "sectionPassword": "Password"
+ "currentPassword": "Current Password",
+ "confirmPassword": "Confirm Password"
+ },
+ "general": {
+ "name": "Name",
+ "password": "Password",
+ "newPassword": "New Password",
+ "updatePassword": "Update Password",
+ "mtu": "MTU",
+ "allowedIps": "Allowed IPs",
+ "persistentKeepalive": "Persistent Keepalive"
},
- "email": "E-Mail",
- "save": "Save",
- "updatePassword": "Update Password",
- "currentPassword": "Current Password",
- "confirmPassword": "Confirm Password",
"setup": {
"welcome": "Welcome to your first setup of wg-easy !",
"messageWelcome": {
@@ -33,7 +40,6 @@
"messageSetupValidation": "Welcome to wg-easy ! The easiest way to run WireGuard VPN and Web-based Admin UI.",
"emptyFields": "The fields are required",
"chooseLang": "Select a language...",
- "newPassword": "New Password",
"accept": "I accept the condition",
"submitBtn": "Create admin account",
"usernamePlaceholder": "Administrator",
@@ -52,11 +58,6 @@
"updateAvailable": "There is an update available!",
"update": "Update",
"new": "New",
- "deleteClient": "Delete Client",
- "deleteDialog1": "Are you sure you want to delete",
- "deleteDialog2": "This action cannot be undone.",
- "cancel": "Cancel",
- "create": "Create",
"createdOn": "Created on ",
"lastSeen": "Last seen on ",
"totalDownload": "Total Download: ",
@@ -79,7 +80,6 @@
"rememberMe": "Remember me",
"titleRememberMe": "Stay logged after closing the browser",
"sort": "Sort",
- "ExpireDate": "Expire Date",
"Permanent": "Permanent",
"OneTimeLink": "Generate short one time link",
"errorInit": "Initialization failed.",
@@ -87,6 +87,23 @@
"clear": "Clear",
"login": "Log in error"
},
+ "client": {
+ "create": "Create Client",
+ "new": "New Client",
+ "name": "Name",
+ "expireDate": "Expire Date",
+ "deleteClient": "Delete Client",
+ "deleteDialog1": "Are you sure you want to delete",
+ "deleteDialog2": "This action cannot be undone.",
+ "enabled": "Enabled",
+ "address": "Address",
+ "serverAllowedIps": "Server Allowed IPs"
+ },
+ "dialog": {
+ "change": "Change",
+ "cancel": "Cancel",
+ "create": "Create"
+ },
"toast": {
"success": "Success",
"saved": "Saved",
@@ -96,7 +113,9 @@
"form": {
"actions": "Actions",
"save": "Save",
- "revert": "Revert"
+ "revert": "Revert",
+ "sectionGeneral": "General",
+ "sectionAdvanced": "Advanced"
},
"password": "Password",
"admin": {
@@ -116,13 +135,10 @@
"host": "Host",
"hostDesc": "Public hostname clients will connect to (invalidates config)",
"portDesc": "Public UDP port clients will connect to (invalidates config)",
- "allowedIps": "Allowed IPs",
"allowedIpsDesc": "Allowed IPs clients will use (invalidates config)",
"dns": "DNS",
"dnsDesc": "DNS server clients will use (invalidates config)",
- "advanced": "Advanced",
"mtuDesc": "MTU clients will use (invalidates config)",
- "persistentKeepalive": "Persistent Keepalive",
"persistentKeepaliveDesc": "Interval in seconds to send keepalives to the server. 0 = disabled (invalidates config)"
},
"interface": {
@@ -135,7 +151,6 @@
"changeCidr": "Change CIDR"
},
"generic": {
- "mtu": "MTU",
"port": "Port"
}
},