diff --git a/dashboard/src/components/NewApiTokenDialog.vue b/dashboard/src/components/NewApiTokenDialog.vue
new file mode 100644
index 000000000..bbcab7fea
--- /dev/null
+++ b/dashboard/src/components/NewApiTokenDialog.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
diff --git a/dashboard/src/components/ProfileView.vue b/dashboard/src/components/ProfileView.vue
index c0845fec0..b1af28ce3 100644
--- a/dashboard/src/components/ProfileView.vue
+++ b/dashboard/src/components/ProfileView.vue
@@ -2,6 +2,8 @@
+
+
{{ $t('profile.title') }}
@@ -43,7 +45,7 @@
-
+
@@ -56,8 +58,43 @@
-
{{ $t('profile.apiTokens.title') }}
+
+
+
+
+
+ | {{ $t('profile.apiTokens.name') }} |
+ {{ $t('profile.apiTokens.lastUsed') }} |
+ {{ $t('profile.apiTokens.scope') }} |
+ {{ $t('main.actions') }} |
+
+
+
+
+ | {{ $t('profile.apiTokens.noTokensPlaceholder') }} |
+
+
+ |
+ {{ token.name || 'unnamed' }}
+ |
+
+ {{ prettyLongDate(token.lastUsedTime) }}
+ {{ $t('profile.apiTokens.neverUsed') }}
+ |
+
+ {{ $t('profile.apiTokens.readwrite') }}
+ {{ $t('profile.apiTokens.readonly') }}
+ |
+
+
+ |
+
+
+
{{ $t('profile.loginTokens.title') }}
@@ -70,19 +107,22 @@