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/en";
export default {
user: {
page: {
@@ -26,6 +28,131 @@ export default {
create: "Create user",
},
},
integration: {
page: {
list: {
title: "Integrations",
search: "Search integrations",
empty: "No integrations found",
},
create: {
title: "New {name} integration",
notification: {
success: {
title: "Creation successful",
message: "The integration was successfully created",
},
error: {
title: "Creation failed",
message: "The integration could not be created",
},
},
},
edit: {
title: "Edit {name} integration",
notification: {
success: {
title: "Changes applied successfully",
message: "The integration was successfully saved",
},
error: {
title: "Unable to apply changes",
message: "The integration could not be saved",
},
},
},
delete: {
title: "Delete integration",
message: "Are you sure you want to delete the integration {name}?",
notification: {
success: {
title: "Deletion successful",
message: "The integration was successfully deleted",
},
error: {
title: "Deletion failed",
message: "Unable to delete the integration",
},
},
},
},
field: {
name: {
label: "Name",
},
url: {
label: "Url",
},
},
action: {
create: "New integration",
},
testConnection: {
action: "Test connection",
alertNotice:
"The Save button is enabled once a successful connection is established",
notification: {
success: {
title: "Connection successful",
message: "The connection was successfully established",
},
invalidUrl: {
title: "Invalid URL",
message: "The URL is invalid",
},
notAllSecretsProvided: {
title: "Missing credentials",
message: "Not all credentials were provided",
},
invalidCredentials: {
title: "Invalid credentials",
message: "The credentials are invalid",
},
commonError: {
title: "Connection failed",
message: "The connection could not be established",
},
},
},
secrets: {
title: "Secrets",
lastUpdated: "Last updated {date}",
secureNotice: "This secret cannot be retrieved after creation",
reset: {
title: "Reset secret",
message: "Are you sure you want to reset this secret?",
},
kind: {
username: {
label: "Username",
newLabel: "New username",
},
apiKey: {
label: "API Key",
newLabel: "New API Key",
},
password: {
label: "Password",
newLabel: "New password",
},
},
},
},
common: {
action: {
backToOverview: "Back to overview",
create: "Create",
edit: "Edit",
save: "Save",
cancel: "Cancel",
confirm: "Confirm",
},
search: {
placeholder: "Search for anything...",
nothingFound: "Nothing found",
},
noResults: "No results found",
},
widget: {
clock: {
option: {
@@ -52,12 +179,6 @@ export default {
},
},
},
common: {
search: {
placeholder: "Search for anything...",
nothingFound: "Nothing found",
},
},
management: {
metaTitle: "Management",
title: {