From 8901967ab08fa84eabf1594a2d7e87b8e74e16d0 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:13:41 +0200 Subject: [PATCH 01/42] Add settings view boilerplate --- src/features/settings/views/SettingsView.vue | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/features/settings/views/SettingsView.vue diff --git a/src/features/settings/views/SettingsView.vue b/src/features/settings/views/SettingsView.vue new file mode 100644 index 0000000..ba53413 --- /dev/null +++ b/src/features/settings/views/SettingsView.vue @@ -0,0 +1,2 @@ + \ No newline at end of file -- 2.39.5 From 6d5c7e4270a37c94a8618edd926f8af8bf38faa4 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:17:53 +0200 Subject: [PATCH 02/42] Add translations for 'settings' --- src/locales/de.json | 1 + src/locales/en.json | 1 + src/locales/es.json | 1 + src/locales/fr.json | 1 + src/locales/it.json | 1 + src/locales/pt.json | 1 + 6 files changed, 6 insertions(+) diff --git a/src/locales/de.json b/src/locales/de.json index 2474905..be40a43 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -18,6 +18,7 @@ } }, "preferences": { + "settings": "Einstellungen", "colorScheme": { "switch": { "light": "Zum hellen Modus wechseln", diff --git a/src/locales/en.json b/src/locales/en.json index a55a928..1203149 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -18,6 +18,7 @@ } }, "preferences": { + "settings": "Settings", "colorScheme": { "switch": { "light": "Switch to light mode", diff --git a/src/locales/es.json b/src/locales/es.json index c5775bd..92cb08c 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -18,6 +18,7 @@ } }, "preferences": { + "settings": "Ajustes", "colorScheme": { "switch": { "light": "Cambiar al modo claro", diff --git a/src/locales/fr.json b/src/locales/fr.json index 050eeee..f57d9b1 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -18,6 +18,7 @@ } }, "preferences": { + "settings": "Paramètres", "colorScheme": { "switch": { "light": "Passer en mode clair", diff --git a/src/locales/it.json b/src/locales/it.json index 2b6d8c1..5c1bdb9 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -18,6 +18,7 @@ } }, "preferences": { + "settings": "Impostazioni", "colorScheme": { "switch": { "light": "Passa alla modalità chiara", diff --git a/src/locales/pt.json b/src/locales/pt.json index a5a03d4..1c13356 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -18,6 +18,7 @@ } }, "preferences": { + "settings": "Configurações", "colorScheme": { "switch": { "light": "Mudar para modo claro", -- 2.39.5 From 027ee2d19123b981f48fb61345e429cb12a8ed1d Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:21:37 +0200 Subject: [PATCH 03/42] Add settings route --- src/router/index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/router/index.js b/src/router/index.js index 71763b8..e3caa49 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -15,9 +15,11 @@ limitations under the License. */ import { createRouter, createWebHistory } from 'vue-router'; +import { i18n } from '@/i18n'; import SearchView from '../views/SearchView.vue'; import SearchResultsView from '@/features/search/views/SearchResultsView.vue'; +import SettingsView from '@/features/settings/views/SettingsView.vue'; import NotFound from '../views/NotFound.vue'; const routes = [ @@ -37,6 +39,14 @@ const routes = [ title: (route) => route.query.q } }, + { + path: '/settings', + name: 'settings', + component: SettingsView, + meta: { + title: () => i18n.global.t('preferences.settings') + } + }, { path: '/:pathMatch(.*)*', name: 'notFound', -- 2.39.5 From 6726600c8e95406b1e03d93e618bfd336a0564f2 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:22:40 +0200 Subject: [PATCH 04/42] Add settings view heading --- src/features/settings/views/SettingsView.vue | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/features/settings/views/SettingsView.vue b/src/features/settings/views/SettingsView.vue index ba53413..4331e9e 100644 --- a/src/features/settings/views/SettingsView.vue +++ b/src/features/settings/views/SettingsView.vue @@ -1,2 +1,13 @@ + + \ No newline at end of file -- 2.39.5 From 7bcdf77ca89851e5808f9cf2d2ddd59e38cfc96b Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:25:36 +0200 Subject: [PATCH 05/42] Add link to settings page in the footer --- src/features/footer/components/Footer.vue | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/features/footer/components/Footer.vue b/src/features/footer/components/Footer.vue index d9ff4c4..0de1ddf 100644 --- a/src/features/footer/components/Footer.vue +++ b/src/features/footer/components/Footer.vue @@ -28,8 +28,13 @@ const copyrightPeriod = @@ -37,10 +42,13 @@ const copyrightPeriod = \ No newline at end of file -- 2.39.5 From be96541b3ec72b7ba1db1a55aa1b021ca5a42e2d Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:29:06 +0200 Subject: [PATCH 08/42] Replace hard-coded settings link text in the footer with a translation --- src/features/footer/components/Footer.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/features/footer/components/Footer.vue b/src/features/footer/components/Footer.vue index 31fbf7e..3c3779b 100644 --- a/src/features/footer/components/Footer.vue +++ b/src/features/footer/components/Footer.vue @@ -15,6 +15,10 @@ limitations under the License. --> + \ No newline at end of file -- 2.39.5 From 16ee164d76cb75af6f022d5d2c8c759a90396ec5 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 02:41:04 +0200 Subject: [PATCH 12/42] Add sidebar section boilerplate --- src/features/sidebar/components/SidebarSection.vue | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/features/sidebar/components/SidebarSection.vue diff --git a/src/features/sidebar/components/SidebarSection.vue b/src/features/sidebar/components/SidebarSection.vue new file mode 100644 index 0000000..cc95b31 --- /dev/null +++ b/src/features/sidebar/components/SidebarSection.vue @@ -0,0 +1,2 @@ + + \ No newline at end of file -- 2.39.5 From 6cc94b651f40f04a3369b5ec3e4c23b71dbeb9ad Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:07:40 +0200 Subject: [PATCH 13/42] Bugfix: Fix spelling mistake in the sidebar section component --- src/features/sidebar/components/SidebarSection.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/features/sidebar/components/SidebarSection.vue b/src/features/sidebar/components/SidebarSection.vue index cc95b31..ba53413 100644 --- a/src/features/sidebar/components/SidebarSection.vue +++ b/src/features/sidebar/components/SidebarSection.vue @@ -1,2 +1,2 @@ - - \ No newline at end of file + \ No newline at end of file -- 2.39.5 From ed2b3224b4b7ba974bb3a3b769658cc928c17250 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:09:15 +0200 Subject: [PATCH 14/42] Remove sidebar section component --- src/features/sidebar/components/SidebarSection.vue | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 src/features/sidebar/components/SidebarSection.vue diff --git a/src/features/sidebar/components/SidebarSection.vue b/src/features/sidebar/components/SidebarSection.vue deleted file mode 100644 index ba53413..0000000 --- a/src/features/sidebar/components/SidebarSection.vue +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file -- 2.39.5 From d1c428eccdf64996786461f1da877396aa86a2f6 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:10:37 +0200 Subject: [PATCH 15/42] Rename file --- src/layouts/{LeftSidebar.vue => LeftSidebarLayout.vue} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/layouts/{LeftSidebar.vue => LeftSidebarLayout.vue} (100%) diff --git a/src/layouts/LeftSidebar.vue b/src/layouts/LeftSidebarLayout.vue similarity index 100% rename from src/layouts/LeftSidebar.vue rename to src/layouts/LeftSidebarLayout.vue -- 2.39.5 From 5104c4e8e78cd71ef31437045ea7baa238549153 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:13:34 +0200 Subject: [PATCH 16/42] Add left sidebar layout content --- src/layouts/LeftSidebarLayout.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/layouts/LeftSidebarLayout.vue b/src/layouts/LeftSidebarLayout.vue index b19e3e4..8f1f4e2 100644 --- a/src/layouts/LeftSidebarLayout.vue +++ b/src/layouts/LeftSidebarLayout.vue @@ -3,5 +3,8 @@ import Sidebar from '@/features/sidebar/components/Sidebar.vue'; \ No newline at end of file -- 2.39.5 From b00aaabbb1b4e7f922e04ec17e6d1ce709d1b18d Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:13:52 +0200 Subject: [PATCH 17/42] Add sidebar component slot --- src/features/sidebar/components/Sidebar.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/features/sidebar/components/Sidebar.vue b/src/features/sidebar/components/Sidebar.vue index ba53413..6adee2b 100644 --- a/src/features/sidebar/components/Sidebar.vue +++ b/src/features/sidebar/components/Sidebar.vue @@ -1,2 +1,3 @@ \ No newline at end of file -- 2.39.5 From 2ad95385d20b4da00c9fe9aada1520e0257e6bd8 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:27:44 +0200 Subject: [PATCH 18/42] Add CSS grid container in the left sidebar layout --- src/layouts/LeftSidebarLayout.vue | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/layouts/LeftSidebarLayout.vue b/src/layouts/LeftSidebarLayout.vue index 8f1f4e2..cebf224 100644 --- a/src/layouts/LeftSidebarLayout.vue +++ b/src/layouts/LeftSidebarLayout.vue @@ -3,8 +3,21 @@ import Sidebar from '@/features/sidebar/components/Sidebar.vue'; \ No newline at end of file +
+
+ + + +
+
+ +
+
+ + + \ No newline at end of file -- 2.39.5 From 989664422c7536a9b7e07c6b999cd6a2d074031e Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:28:59 +0200 Subject: [PATCH 19/42] Add sidebar container --- src/features/sidebar/components/Sidebar.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/features/sidebar/components/Sidebar.vue b/src/features/sidebar/components/Sidebar.vue index 6adee2b..caef67e 100644 --- a/src/features/sidebar/components/Sidebar.vue +++ b/src/features/sidebar/components/Sidebar.vue @@ -1,3 +1,5 @@ \ No newline at end of file -- 2.39.5 From aa47015d3add48f1df667dca5532751ac330bd77 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:30:18 +0200 Subject: [PATCH 20/42] Add sidebar right border --- src/features/sidebar/components/Sidebar.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/features/sidebar/components/Sidebar.vue b/src/features/sidebar/components/Sidebar.vue index caef67e..04ec147 100644 --- a/src/features/sidebar/components/Sidebar.vue +++ b/src/features/sidebar/components/Sidebar.vue @@ -2,4 +2,10 @@
- \ No newline at end of file + + + \ No newline at end of file -- 2.39.5 From 76815c6a93bc711d82af2e17fecb94fa187084d2 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 03:32:32 +0200 Subject: [PATCH 21/42] Add sidebar to the settings view --- src/features/settings/views/SettingsView.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/features/settings/views/SettingsView.vue b/src/features/settings/views/SettingsView.vue index 4331e9e..083b364 100644 --- a/src/features/settings/views/SettingsView.vue +++ b/src/features/settings/views/SettingsView.vue @@ -1,4 +1,6 @@ \ No newline at end of file +

+ {{ t('preferences.settings') }} +

+ + + + + + \ No newline at end of file diff --git a/src/layouts/LeftSidebarLayout.vue b/src/layouts/BaseLayout.vue similarity index 100% rename from src/layouts/LeftSidebarLayout.vue rename to src/layouts/BaseLayout.vue -- 2.39.5 From def3a84e59272d9387e8f57bd8cb3795ebc99685 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 10:44:58 +0200 Subject: [PATCH 23/42] Use base layout in the app root component --- src/App.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/App.vue b/src/App.vue index f8e22d6..1bf2496 100644 --- a/src/App.vue +++ b/src/App.vue @@ -17,6 +17,7 @@ limitations under the License. \ No newline at end of file -- 2.39.5 From 2a5e79b55dfa243fb9cb27cb163894a63c9c48dd Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 11:42:45 +0200 Subject: [PATCH 31/42] Add padding to the main content in the left sidebar layout --- src/layouts/LeftSidebarLayout.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/layouts/LeftSidebarLayout.vue b/src/layouts/LeftSidebarLayout.vue index 1134bba..1733734 100644 --- a/src/layouts/LeftSidebarLayout.vue +++ b/src/layouts/LeftSidebarLayout.vue @@ -7,7 +7,7 @@ import Sidebar from '@/features/sidebar/components/Sidebar.vue'; -
+
@@ -18,4 +18,8 @@ import Sidebar from '@/features/sidebar/components/Sidebar.vue'; display: grid; grid-template-columns: min(24%, 280px) 1fr; } + +.main-content { + padding: 20px; +} \ No newline at end of file -- 2.39.5 From 0583de0dfa1269fe454700fb2ae4d043007bbc49 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 11:43:53 +0200 Subject: [PATCH 32/42] Add settings view page wrapper --- src/features/settings/views/SettingsView.vue | 21 +++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/features/settings/views/SettingsView.vue b/src/features/settings/views/SettingsView.vue index 6f1a136..6ee0359 100644 --- a/src/features/settings/views/SettingsView.vue +++ b/src/features/settings/views/SettingsView.vue @@ -7,17 +7,24 @@ const { t } = useI18n(); \ No newline at end of file -- 2.39.5 From f354c1867c303ca8678108cd286f3092e4c52de5 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 11:46:28 +0200 Subject: [PATCH 33/42] Add left sidebar layout top border --- src/layouts/LeftSidebarLayout.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/LeftSidebarLayout.vue b/src/layouts/LeftSidebarLayout.vue index 1733734..080d5a6 100644 --- a/src/layouts/LeftSidebarLayout.vue +++ b/src/layouts/LeftSidebarLayout.vue @@ -17,6 +17,7 @@ import Sidebar from '@/features/sidebar/components/Sidebar.vue'; .layout-container { display: grid; grid-template-columns: min(24%, 280px) 1fr; + border-top: 1px solid var(--border); } .main-content { -- 2.39.5 From 1ebf5780d20f6d2f6eb3193987b44bf70a19059d Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sat, 23 May 2026 11:51:49 +0200 Subject: [PATCH 34/42] Move main content padding frm the app root component to the views --- src/App.vue | 3 +-- src/features/search/views/SearchResultsView.vue | 2 +- src/styles/common.css | 5 +++++ src/views/NotFound.vue | 2 +- src/views/SearchView.vue | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/App.vue b/src/App.vue index 57be77b..9c55f03 100644 --- a/src/App.vue +++ b/src/App.vue @@ -45,8 +45,7 @@ watch(colorScheme, val => updateColorScheme(val)) .main-content { --main-content-padding-x: 30px; --main-content-padding-y: 40px; - padding: var(--main-content-padding-y) var(--main-content-padding-x) 0; - width: calc(100% - var(--main-content-padding-x) * 2); + --main-content-padding: var(--main-content-padding-y) var(--main-content-padding-x) 0; flex-grow: 1; } diff --git a/src/features/search/views/SearchResultsView.vue b/src/features/search/views/SearchResultsView.vue index 1e9e78f..b0d31d9 100644 --- a/src/features/search/views/SearchResultsView.vue +++ b/src/features/search/views/SearchResultsView.vue @@ -28,7 +28,7 @@ searchQueryModel.value = props.searchQuery;