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 @@ + + + + +