feat: add crud for integrations (#11)

* wip: add crud for services and integrations

* feat: remove services

* feat: move integration definitions to homarr/definitions, add temporary test connection solution without actual request

* feat: add integration count badge

* feat: add translation for integrations

* feat: add notifications and translate them

* feat: add notice to integration forms about test connection

* chore: fix ci check issues

* feat: add confirm modals for integration deletion and secret card cancellation, change ordering for list page, add name property to integrations

* refactor: move revalidate path action

* chore: fix ci check issues

* chore: install missing dependencies

* chore: fix ci check issues

* chore: address pull request feedback
This commit is contained in:
Meier Lukas
2024-01-02 17:12:26 +01:00
committed by GitHub
parent 2809e01b03
commit 367beb6759
52 changed files with 2164 additions and 23 deletions

View File

@@ -1,3 +1,5 @@
import "dayjs/locale/de";
export default {
user: {
page: {
@@ -26,6 +28,132 @@ export default {
create: "Benutzer erstellen",
},
},
integration: {
page: {
list: {
title: "Integrationen",
search: "Integration suchen",
empty: "Keine Integrationen gefunden",
},
create: {
title: "Neue {name} Integration erstellen",
notification: {
success: {
title: "Erstellung erfolgreich",
message: "Die Integration wurde erfolgreich erstellt",
},
error: {
title: "Erstellung fehlgeschlagen",
message: "Die Integration konnte nicht erstellt werden",
},
},
},
edit: {
title: "{name} Integration bearbeiten",
notification: {
success: {
title: "Änderungen erfolgreich angewendet",
message: "Die Integration wurde erfolgreich gespeichert",
},
error: {
title: "Änderungen konnten nicht angewendet werden",
message: "Die Integration konnte nicht gespeichert werden",
},
},
},
delete: {
title: "Integration entfernen",
message: "Möchtest du die Integration {name} wirklich entfernen?",
notification: {
success: {
title: "Entfernen erfolgreich",
message: "Die Integration wurde erfolgreich entfernt",
},
error: {
title: "Entfernen fehlgeschlagen",
message: "Die Integration konnte nicht entfernt werden",
},
},
},
},
field: {
name: {
label: "Name",
},
url: {
label: "Url",
},
},
action: {
create: "Neue Integration",
},
testConnection: {
action: "Verbindung überprüfen",
alertNotice:
"Der Button zum Speichern wird aktiviert, sobald die Verbindung erfolgreich überprüft wurde",
notification: {
success: {
title: "Verbindung erfolgreich",
message: "Die Verbindung wurde erfolgreich hergestellt",
},
invalidUrl: {
title: "Ungültige URL",
message: "Die URL ist ungültig",
},
notAllSecretsProvided: {
title: "Fehlende Zugangsdaten",
message: "Es wurden nicht alle Zugangsdaten angegeben",
},
invalidCredentials: {
title: "Ungültige Zugangsdaten",
message: "Die Zugangsdaten sind ungültig",
},
commonError: {
title: "Verbindung fehlgeschlagen",
message: "Die Verbindung konnte nicht hergestellt werden",
},
},
},
secrets: {
title: "Zugangsdaten",
lastUpdated: "Zuletzt geändert {date}",
secureNotice:
"Diese Zugangsdaten können nach der Erstellung nicht mehr ausgelesen werden",
reset: {
title: "Zugangsdaten zurücksetzen",
message: "Möchtest du diese Zugangsdaten wirklich zurücksetzen?",
},
kind: {
username: {
label: "Benutzername",
newLabel: "Neuer Benutzername",
},
apiKey: {
label: "API Key",
newLabel: "Neuer API Key",
},
password: {
label: "Passwort",
newLabel: "Neues Passwort",
},
},
},
},
common: {
action: {
backToOverview: "Zurück zur Übersicht",
create: "Erstellen",
edit: "Bearbeiten",
save: "Speichern",
cancel: "Abbrechen",
confirm: "Bestätigen",
},
noResults: "Keine Ergebnisse gefunden",
search: {
placeholder: "Suche nach etwas...",
nothingFound: "Nichts gefunden",
},
},
widget: {
clock: {
option: {
@@ -52,10 +180,4 @@ export default {
},
},
},
common: {
search: {
placeholder: "Suche nach etwas...",
nothingFound: "Nichts gefunden",
},
},
} as const;