feat: add board (#15)

* wip: Add gridstack board
* wip: Centralize board pages, Add board settings page
* fix: remove cyclic dependency and rename widget-sort to kind
* improve: Add header actions as parallel route
* feat: add item select modal, add category edit modal,
* feat: add edit item modal
* feat: add remove item modal
* wip: add category actions
* feat: add saving of board, wip: add app widget
* Merge branch 'main' into add-board
* chore: update turbo dependencies
* chore: update mantine dependencies
* chore: fix typescript errors, lint and format
* feat: add confirm modal to category removal, move items of removed category to above wrapper
* feat: remove app widget to continue in another branch
* feat: add loading spinner until board is initialized
* fix: issue with cellheight of gridstack items
* feat: add translations for board
* fix: issue with translation for settings page
* chore: address pull request feedback
This commit is contained in:
Meier Lukas
2024-02-03 22:26:12 +01:00
committed by GitHub
parent cfd1c14034
commit 9d520874f4
88 changed files with 3431 additions and 262 deletions

View File

@@ -3,6 +3,11 @@
import { createI18nClient } from "next-international/client";
import { languageMapping } from "./lang";
import en from "./lang/en";
export const { useI18n, useScopedI18n, I18nProviderClient } =
createI18nClient(languageMapping());
export const { useI18n, useScopedI18n, I18nProviderClient } = createI18nClient(
languageMapping(),
{
fallbackLocale: en,
},
);

View File

@@ -144,6 +144,7 @@ export default {
create: "Create",
edit: "Edit",
save: "Save",
saveChanges: "Save changes",
cancel: "Cancel",
confirm: "Confirm",
},
@@ -156,13 +157,77 @@ export default {
},
noResults: "No results found",
},
widget: {
editModal: {
integrations: {
label: "Integrations",
section: {
category: {
field: {
name: {
label: "Name",
},
},
action: {
create: "New category",
edit: "Rename category",
remove: "Remove category",
moveUp: "Move up",
moveDown: "Move down",
createAbove: "New category above",
createBelow: "New category below",
},
create: {
title: "New category",
submit: "Add category",
},
remove: {
title: "Remove category",
message: "Are you sure you want to remove the category {name}?",
},
edit: {
title: "Rename category",
submit: "Rename category",
},
menu: {
label: {
create: "New category",
changePosition: "Change position",
},
},
},
},
item: {
action: {
create: "New item",
import: "Import item",
edit: "Edit item",
move: "Move item",
remove: "Remove item",
},
menu: {
label: {
settings: "Settings",
dangerZone: "Danger Zone",
},
},
create: {
title: "Choose item to add",
addToBoard: "Add to board",
},
edit: {
title: "Edit item",
field: {
integrations: {
label: "Integrations",
},
},
},
remove: {
title: "Remove item",
message: "Are you sure you want to remove this item?",
},
},
widget: {
clock: {
name: "Date and time",
description: "Displays the current date and time.",
option: {
is24HourFormat: {
label: "24-hour format",
@@ -177,6 +242,9 @@ export default {
},
},
weather: {
name: "Weather",
description:
"Displays the current weather information of a set location.",
option: {
location: {
label: "Location",
@@ -187,6 +255,78 @@ export default {
},
},
},
board: {
action: {
edit: {
notification: {
success: {
title: "Changes applied successfully",
message: "The board was successfully saved",
},
error: {
title: "Unable to apply changes",
message: "The board could not be saved",
},
},
},
},
field: {
pageTitle: {
label: "Page title",
},
metaTitle: {
label: "Meta title",
},
logoImageUrl: {
label: "Logo image URL",
},
faviconImageUrl: {
label: "Favicon image URL",
},
},
setting: {
title: "Settings for {boardName} board",
section: {
general: {
title: "General",
},
layout: {
title: "Layout",
},
appearance: {
title: "Appearance",
},
dangerZone: {
title: "Danger Zone",
action: {
rename: {
label: "Rename board",
description:
"Changing the name will break any links to this board.",
button: "Change name",
},
visibility: {
label: "Change board visibility",
description: {
public: "This board is currently public.",
private: "This board is currently private.",
},
button: {
public: "Make private",
private: "Make public",
},
},
delete: {
label: "Delete this board",
description:
"Once you delete a board, there is no going back. Please be certain.",
button: "Delete this board",
},
},
},
},
},
},
management: {
metaTitle: "Management",
title: {

View File

@@ -1,6 +1,11 @@
import { createI18nServer } from "next-international/server";
import { languageMapping } from "./lang";
import en from "./lang/en";
export const { getI18n, getScopedI18n, getStaticParams } =
createI18nServer(languageMapping());
export const { getI18n, getScopedI18n, getStaticParams } = createI18nServer(
languageMapping(),
{
fallbackLocale: en,
},
);