Commit Graph
617 Commits
Author SHA1 Message Date
jakob.scheidandGitea 799d7ee0bc Merge pull request 'Feat(settings): add renderer for settings configuration' (#142) from feature/settings-renderer into main
Deploy on dev / Deploy on dev (push) Successful in 32s
Reviewed-on: #142
Reviewed-by: Jakob Gregory
2026-07-28 20:14:50 +02:00
jakob.scheid 71b6601360 fix(settings): catch all of /settings route subpath 2026-07-28 20:13:08 +02:00
jakob.scheid eb43e2f49f chore: resolve merge conflicts 2026-07-28 20:10:40 +02:00
jakob.scheid 79267d0059 feat(settings): add selection option ARIA label 2026-07-28 20:10:29 +02:00
jakob.scheid 39f482fc37 feat(settings): add title to selection options 2026-07-28 20:10:28 +02:00
jakob.scheid 70ad0420bb feat(settings): improve label relationship in selection
Added attributes to indicate that div.label is the label for
ul.options-list in the selection component.
2026-07-28 20:10:28 +02:00
jakob.scheid 641cc4956d refactor(settings): remove unused parameter
Removed unused oldValue parameter in the selection component.
2026-07-28 20:10:28 +02:00
jakob.scheid e0e2033fdf refactor(settings)!: pass path to getSettingsRecursively using an array instead of a string
Tests and all files the utility is used in are also updated.

Warning: This change is breaking!
2026-07-28 20:10:27 +02:00
jakob.scheid e18c066629 refactor(settings): use oneline if statement
Use a oneline if statement in the getSetting utility.
2026-07-28 20:10:27 +02:00
jakob.scheid edb63b0316 test(settings): refactor switch component test
Added and used getWrapper function to switch component test to mount the
component and avoid repeating code.
2026-07-28 20:10:27 +02:00
jakob.scheid 9a8e764f53 test(settings): refactor selection component test
Use exampleOptions instead of an own options array, which was equal to
exampleOptions.
2026-07-28 20:10:26 +02:00
jakob.scheid 26a5783d19 test(settings): refactor selection test getWrapper function
Updated the getWrapper function to use object destructuring.
2026-07-28 20:10:26 +02:00
jakob.scheid 880beeee07 style(settings): remove unnecessary commas
Removed unnecessary commas in settings input component and settings page
component.
2026-07-28 20:10:25 +02:00
jakob.scheid 151947b09c style(settings): remove unnecessary comma
Removed unnecessary trailing comma in the selection component.
2026-07-28 20:10:25 +02:00
jakob.scheid 4054d0793f fix(settings): update settings input to use default value
The SettingsInput component now uses the default value if there is a
default value. Tests for this were added.
2026-07-28 20:10:25 +02:00
jakob.scheid 2d61e9f927 test(settings): refactor getWrapper function in settings input test
Updated the getWrapper function to use object destructuring.
2026-07-28 20:10:24 +02:00
jakob.scheid 67ffd05566 docs(changelog): add settings renderer 2026-07-28 20:10:24 +02:00
jakob.scheid b429074071 test(settings): add tests for settings page
Added tests for the SettingsPage component:
  - correct heading
  - correct settings
2026-07-28 20:10:24 +02:00
jakob.scheid 9dfd16d68d test(settings): add tests for settings page link 2026-07-28 20:10:23 +02:00
jakob.scheid fb0d80d7f6 test(settings): add tests for settings view
Added tests for the settings view (SettingsView.vue):
  - heading translation
  - sidebar top-level sections
  - correct main element
2026-07-28 20:10:23 +02:00
jakob.scheid bd30579923 refactor(settings): move setttings path normalization utility to a separate file
Moved the normalizePagePath utility from the settings page composable to
a separate utility file and restructured tests accordingly.
2026-07-28 20:10:23 +02:00
jakob.scheid d6e7104f82 refactor(settings): remove unused utility
Removed the utility getSectionHeadingLevel and its tests.
2026-07-28 20:10:22 +02:00
jakob.scheid 24b4e45116 feat(settings): add page path normalization type check
Added a type check to the normalizePagePath function. The function now
returns an empty array if the path is not a string.
2026-07-28 20:10:22 +02:00
jakob.scheid 6b347bb845 feat(settings): omit empty settings page segments
The composable useSettingsPage now omits empty segments in the path.
2026-07-28 20:10:21 +02:00
jakob.scheid c5a16d2797 feat(settings): filter characters that would cause a broken URL from settings page path 2026-07-28 20:10:21 +02:00
jakob.scheid f7f4de8341 test(settings): distinguish between unit tests and integration tests
Separated unit tests and integration tests in the test for
useSettingsPage more clearly.
2026-07-28 20:10:21 +02:00
jakob.scheid cd4956fbe6 refactor(settings): push route object instead of raw string
Modified the useSettingsPage composable to use a route object instead
of a raw string in goToSettingsPage and moved settings route child
routes into the settings route itself using 'rest(.*)*'.
2026-07-28 20:10:20 +02:00
jakob.scheid 241ac889fc feat(settings): make settings page composable more compatible
The composable now uses replace instead of replaceAll which is not
supported by some old browsers.
2026-07-28 20:10:20 +02:00
jakob.scheid d3f3ef37ed fix(settings): omit leading/trailing and consecuting dots in noralizePagePath 2026-07-28 20:10:20 +02:00
jakob.scheid c2402f9360 fix(settings): return router.push promise
The settings page composable function to go to a settings page now
returns the promise router.push returns.
2026-07-28 20:10:19 +02:00
jakob.scheidandjakob.scheid f6fdae6b0c test(settings): add tests for settings page composable 2026-07-28 20:10:19 +02:00
jakob.scheidandjakob.scheid c7fe1f2f60 test(settings): add tests for selection setting
Added tests for the selection setting component:
  - correct display of options
  - shows values correctly
  - store of values
  - correct translation
2026-07-28 20:10:19 +02:00
jakob.scheidandjakob.scheid c7490d2e48 feat(settings): wrap selection option label
Added a wrapper for the settings selection option label to make it
easier to identify (internal).
2026-07-28 20:10:18 +02:00
jakob.scheidandjakob.scheid e1e5ca7a76 fix(settings): use wrapper only if settings shown
The .settings-main-content wrapper in the settings view is now only
used if there are settings shown. It is not used if the settings are
still loading or no section is selected.
2026-07-28 20:10:18 +02:00
jakob.scheidandjakob.scheid 2eafa3c093 feat(settings): wrap selection setting label
Added a wrapper for the selection setting label to make it easier to
find (internal).
2026-07-28 20:10:17 +02:00
jakob.scheidandjakob.scheid 07901f9ab2 fix(settings): add section fallback
Added a simple message as a fallback that is used if no section is
selected.
2026-07-28 20:10:17 +02:00
jakob.scheidandjakob.scheid 167ddbfb4e fix(settings): fix handling of non-existent paths
Previously, the settings view now does not check whether the settings
content is falsy. But, if the setting does not exist, the setting itself
is undefined. So, if the specified settings path did not exist, an
error was thrown.
Now, the setting is checked for being falsy, not the setting content.
2026-07-28 20:10:17 +02:00
jakob.scheidandjakob.scheid b062015f23 chore: resolve merge conflicts 2026-07-28 20:10:15 +02:00
jakob.scheidandjakob.scheid e808ec9a26 test(settings): add settings input tests 2026-07-28 20:08:53 +02:00
jakob.scheidandjakob.scheid 3eddb7d196 feat(test-utils): add store setup functionality to mountComponent utility 2026-07-28 20:08:53 +02:00
jakob.scheidandjakob.scheid d7ce212095 fix(settings): prevent setting input done button from animating initially when mounting 2026-07-28 20:08:52 +02:00
jakob.scheidandjakob.scheid da330db355 feat(settings): make setting input reactive to stored setting 2026-07-28 20:08:52 +02:00
jakob.scheidandjakob.scheid f65b65c053 feat(test-utils): add pinia options to mountComponent test utility 2026-07-28 20:08:52 +02:00
jakob.scheidandjakob.scheid 6fbdc87669 test(settings): add switch component tests 2026-07-28 20:08:51 +02:00
jakob.scheidandjakob.scheid afdc98beb3 chore(dependencies): add @pinia/testing dependency 2026-07-28 20:08:50 +02:00
jakob.scheidandjakob.scheid 248adf40b0 feat(settings): add settings page link 2026-07-28 20:08:39 +02:00
jakob.scheidandjakob.scheid d78beffabd fix(settings): add key prop to settings in settings page 2026-07-28 20:08:39 +02:00
jakob.scheidandjakob.scheid f6a0553b99 feat(settings): implement settings pages navigation 2026-07-28 20:08:38 +02:00
jakob.scheidandjakob.scheid 22311dc5c9 feat(settigns): add settings page composable 2026-07-28 20:08:38 +02:00
jakob.scheidandjakob.scheid 2fb747f587 feat(settings): add utility functions to get settings
Utility function getSetting for getting a first-level setting from a
list of settings and unit tests.
Utility function getSettingRecursively to get any setting from a list
of settings. The setting can be at any nesting level in the settings
list and unit tests.
2026-07-28 20:08:38 +02:00