@@ -55,13 +55,10 @@
diff --git a/src/app/pages/admin.vue b/src/app/pages/admin.vue
index f997b3f7..ba2f4169 100644
--- a/src/app/pages/admin.vue
+++ b/src/app/pages/admin.vue
@@ -42,8 +42,9 @@ const route = useRoute();
const menuItems = [
{ id: '', name: 'General' },
- { id: 'defaults', name: 'Defaults' },
+ { id: 'config', name: 'Config' },
{ id: 'interface', name: 'Interface' },
+ { id: 'hooks', name: 'Hooks' },
{ id: 'metrics', name: 'Metrics' },
];
diff --git a/src/app/pages/admin/config.vue b/src/app/pages/admin/config.vue
new file mode 100644
index 00000000..ca399d77
--- /dev/null
+++ b/src/app/pages/admin/config.vue
@@ -0,0 +1,108 @@
+
+
+
+
+ Connection
+
+
+
+
+ Allowed IPs
+
+
+
+ DNS
+
+
+
+ Advanced
+
+
+
+
+ Actions
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/pages/admin/defaults.vue b/src/app/pages/admin/defaults.vue
deleted file mode 100644
index 1baa87a6..00000000
--- a/src/app/pages/admin/defaults.vue
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- Connection
-
-
-
-
- Allowed IPs
-
-
-
- DNS
-
-
-
- Advanced
-
-
-
-
-
-
-
diff --git a/src/app/pages/admin/hooks.vue b/src/app/pages/admin/hooks.vue
new file mode 100644
index 00000000..1566e8a6
--- /dev/null
+++ b/src/app/pages/admin/hooks.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+ Actions
+
+
+
+
+
+
+
+
diff --git a/src/app/pages/admin/index.vue b/src/app/pages/admin/index.vue
index 42df6089..a9979e2c 100644
--- a/src/app/pages/admin/index.vue
+++ b/src/app/pages/admin/index.vue
@@ -1,9 +1,59 @@
-
-
-
-
-
+
+
+
+
+
+
+ Actions
+
+
+
+
+
-
+
diff --git a/src/app/pages/admin/interface.vue b/src/app/pages/admin/interface.vue
index 1bdaffe7..def6fc4a 100644
--- a/src/app/pages/admin/interface.vue
+++ b/src/app/pages/admin/interface.vue
@@ -1,19 +1,58 @@
-
-
- Interface Settings
-
-
-
-
-
- Scripts
-
-
-
-
-
-
+
+
+
+ Interface Settings
+
+
+
+
+
+ Actions
+
+
+
+
+
-
+
diff --git a/src/app/pages/clients/[id].vue b/src/app/pages/clients/[id].vue
index edfd76a3..c7935b19 100644
--- a/src/app/pages/clients/[id].vue
+++ b/src/app/pages/clients/[id].vue
@@ -5,45 +5,69 @@
-
-
- {{ $t('me.sectionGeneral') }}
-
-
-
-
-
- Address
-
-
-
-
- Allowed IPs
-
-
-
- Server Allowed IPs
-
-
-
-
- Advanced
-
-
-
-
- Actions
-
-
-
+
+
+
+ {{ $t('me.sectionGeneral') }}
+
+
+
+
+
+
+ Address
+
+
+
+
+ Allowed IPs
+
+
+
+ Server Allowed IPs
+
+
+
+
+ Advanced
+
+
+
+
+ Actions
+
+
+
+
+
+
+
@@ -52,15 +76,69 @@
diff --git a/src/app/pages/index.vue b/src/app/pages/index.vue
index c18a2aff..ae61eb14 100644
--- a/src/app/pages/index.vue
+++ b/src/app/pages/index.vue
@@ -27,7 +27,6 @@
-
@@ -37,6 +36,9 @@ authStore.update();
const globalStore = useGlobalStore();
const clientsStore = useClientsStore();
+// TODO?: use hover card to show more detailed info without leaving the page
+// or do something like a accordion
+
const intervalId = ref
(null);
clientsStore.refresh();
diff --git a/src/app/pages/login.vue b/src/app/pages/login.vue
index 9e6af3ad..0317f165 100644
--- a/src/app/pages/login.vue
+++ b/src/app/pages/login.vue
@@ -74,8 +74,6 @@
:value="$t('signIn')"
/>
-
-
@@ -89,7 +87,7 @@ const remember = ref(false);
const username = ref(null);
const password = ref(null);
const authStore = useAuthStore();
-const toast = useTemplateRef('toast');
+const toast = useToast();
async function login(e: Event) {
e.preventDefault();
@@ -108,7 +106,8 @@ async function login(e: Event) {
}
} catch (error) {
if (error instanceof FetchError) {
- toast.value?.publish({
+ toast.showToast({
+ type: 'error',
title: t('error.login'),
message: error.data.message,
});
diff --git a/src/app/pages/setup/1.vue b/src/app/pages/setup/1.vue
index 14e1a045..decfb2d9 100644
--- a/src/app/pages/setup/1.vue
+++ b/src/app/pages/setup/1.vue
@@ -4,39 +4,23 @@
{{ $t('setup.messageSetupLanguage') }}
-
+
- Continue
+ Continue
diff --git a/src/app/pages/setup/4.vue b/src/app/pages/setup/4.vue
index dddf2cce..44415ea1 100644
--- a/src/app/pages/setup/4.vue
+++ b/src/app/pages/setup/4.vue
@@ -55,10 +55,13 @@ const username = ref