diff --git a/src/App.vue b/src/App.vue
index 32e08c5..1e2df4e 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -20,7 +20,9 @@ const route = useRoute();
const routeName = computed(() => route.name);
const isDataView = computed(() => {
return (
- routeName.value != "title.settings" && routeName.value != "title.login"
+ routeName.value != "title.settings" &&
+ routeName.value != "title.login" &&
+ routeName.value != "title.token"
);
});
diff --git a/src/components/icons/clipboard-copy-icon.vue b/src/components/icons/clipboard-copy-icon.vue
new file mode 100644
index 0000000..1c52c13
--- /dev/null
+++ b/src/components/icons/clipboard-copy-icon.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/src/router/index.js b/src/router/index.js
index 647b89d..f461e1d 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -5,6 +5,7 @@ import SubstitutionView from "../views/SubstitutionView.vue";
import HistoryView from "../views/HistoryView.vue";
import SettingsView from "../views/SettingsView.vue";
import LoginView from "../views/LoginView.vue";
+import TokenView from "../views/TokenView.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@@ -38,6 +39,11 @@ const router = createRouter({
name: "title.login",
component: LoginView,
},
+ {
+ path: "/token",
+ name: "title.token",
+ component: TokenView,
+ },
],
});
diff --git a/src/strings.js b/src/strings.js
index afad8ab..53a4c8d 100644
--- a/src/strings.js
+++ b/src/strings.js
@@ -6,6 +6,7 @@ export const strings = {
history: "History",
settings: "Settings",
login: "Login",
+ token: "Token",
},
settings: {
heading: {
@@ -88,6 +89,9 @@ export const strings = {
noHistory: "No substitutions for this day have changed yet",
},
},
+ token: {
+ header: "Generate API-Token",
+ },
},
de: {
title: {
diff --git a/src/views/TokenView.vue b/src/views/TokenView.vue
new file mode 100644
index 0000000..9a30a24
--- /dev/null
+++ b/src/views/TokenView.vue
@@ -0,0 +1,138 @@
+
+
+
+
+
{{ $t("token.header") }}
+
+
+
+
+
+
+
+
+
+
+
+