Add settings configuration parser #77

Closed
opened 2026-05-23 13:58:25 +02:00 by jakob.scheid · 0 comments
Owner

Currently, the settings cannot be configured.

Goal

The settings should be configured using a JSON file.

Example

{
    "contents": [
        {
            "name": "general",
            "type": "section",
            "description": "preferences.settings.sections.general.description",
            "i18n": "preferences.settings.sections.general.name",
            "content": [
                {
                    "type": "switch",
                    "name": "darkMode",
                    "i18n": "preferences.darkMode",
                    "default": true
                },
                {
                    "type": "selection",
                    "name": "language",
                    "i18n": "preferences.settings.language",
                    "description": "preferences.settings.language.description",
                    "default": "en",
                    "allowMultiple": false,
                    "options": [
                        {
                            "name": "en",
                            "i18n": "preferences.locale.languages.en"
                        },
                        {
                            "name": "de",
                            "i18n": "preferences.locale.languages.de"
                        }
                    ]
                },
                {
                    "type": "section",
                    "name": "preferences.settings.sections.exampleSection.name",
                    "description": "preferences.settings.sections.exampleSection.description",
                    "content": [
                        {
                            "type": "number",
                            "name": "aNumber",
                            "i18n": "preferences.settings.sections.exampleSection.content.aNumber",
                            "default": 42
                        }
                    ]
                }
            ]
        },
        {
            "name": "exampleStandaloneConfiguration",
            "type": "bool",
            "i18n": "preferences.settings.exampleStandalone.name",
            "default": false
        }
    ]
}

Setting types

There should be at least following configuration types:

  • booleans
  • choices
  • numbers
  • strings

Configuration format

The format of the JSON configuration should be as above.

Non-goals

The purpose of this issue is neither to add the actual settings nor to render the settings.

Currently, the settings cannot be configured. # Goal The settings should be configured using a JSON file. ## Example ``` { "contents": [ { "name": "general", "type": "section", "description": "preferences.settings.sections.general.description", "i18n": "preferences.settings.sections.general.name", "content": [ { "type": "switch", "name": "darkMode", "i18n": "preferences.darkMode", "default": true }, { "type": "selection", "name": "language", "i18n": "preferences.settings.language", "description": "preferences.settings.language.description", "default": "en", "allowMultiple": false, "options": [ { "name": "en", "i18n": "preferences.locale.languages.en" }, { "name": "de", "i18n": "preferences.locale.languages.de" } ] }, { "type": "section", "name": "preferences.settings.sections.exampleSection.name", "description": "preferences.settings.sections.exampleSection.description", "content": [ { "type": "number", "name": "aNumber", "i18n": "preferences.settings.sections.exampleSection.content.aNumber", "default": 42 } ] } ] }, { "name": "exampleStandaloneConfiguration", "type": "bool", "i18n": "preferences.settings.exampleStandalone.name", "default": false } ] } ``` ## Setting types There should be at least following configuration types: - [x] booleans - [x] choices - [x] numbers - [x] strings ## Configuration format The format of the JSON configuration should be as above. # Non-goals The purpose of this issue is **neither** to add the actual settings **nor** to render the settings.
jakob.scheid added this to the mvp-frontend milestone 2026-05-23 13:58:25 +02:00
jakob.scheid added the
prio
medium
area
settings
type
feature
labels 2026-05-23 13:58:25 +02:00
jakob.scheid added this to the MVP Frontend project 2026-05-23 13:58:25 +02:00
jakob.scheid moved this to To do in MVP Frontend on 2026-05-23 13:58:53 +02:00
jakob.scheid changed title from Add settings configuration to Add settings configuration parser 2026-05-23 13:59:58 +02:00
johannes.vos moved this to In progress in MVP Frontend on 2026-05-26 11:24:43 +02:00
johannes.vos self-assigned this 2026-05-26 11:25:49 +02:00
johannes.vos moved this to Review in MVP Frontend on 2026-05-26 11:40:06 +02:00
johannes.vos added a new dependency 2026-05-29 13:28:37 +02:00
jakob.scheid moved this to Done in MVP Frontend on 2026-05-29 14:03:40 +02:00
jakob.scheid modified the milestone from mvp-frontend to settings-ready 2026-06-05 11:13:55 +02:00
Sign in to join this conversation.