Compare commits

...

2 Commits

Author SHA1 Message Date
Henry
872a5fad28 feat: public board enhancements (#134)
* feat: hide dropdown on comments for public boards

* feat: fix height of modal and add scrollable content area

* feat: add view only badge to public boards

* feat: prevent card title from overlapping close button

* chore: gen translations
2025-08-01 22:03:38 +01:00
Henry
400b94a5f2 feat: enhance member invite error handling and add invite more toggle (#133) 2025-07-30 22:24:05 +01:00
26 changed files with 485 additions and 187 deletions

View File

@@ -32,6 +32,7 @@ checksums:
Are%20you%20sure%20you%20want%20to%20delete%20the%20workspace%20%7B0%7D%3F/singular: 27ba2854202dd77c51e78c64e5c93946 Are%20you%20sure%20you%20want%20to%20delete%20the%20workspace%20%7B0%7D%3F/singular: 27ba2854202dd77c51e78c64e5c93946
Are%20you%20sure%20you%20want%20to%20delete%20this%20card%3F/singular: 131a5a7cccca7be8b32c987d9fa0b0c0 Are%20you%20sure%20you%20want%20to%20delete%20this%20card%3F/singular: 131a5a7cccca7be8b32c987d9fa0b0c0
Are%20you%20sure%20you%20want%20to%20delete%20this%20comment%3F/singular: 55fe6f1b52b71b91b2a079cfda3cc7fe Are%20you%20sure%20you%20want%20to%20delete%20this%20comment%3F/singular: 55fe6f1b52b71b91b2a079cfda3cc7fe
Are%20you%20sure%20you%20want%20to%20delete%20this%20label%3F/singular: 037fbaf1d04356937e6afb574714f51f
Are%20you%20sure%20you%20want%20to%20delete%20your%20account%3F/singular: 428b74d781063224c3e63980e1094ec3 Are%20you%20sure%20you%20want%20to%20delete%20your%20account%3F/singular: 428b74d781063224c3e63980e1094ec3
assigned%20%3C0%3E%7BmemberName%7D%3C%2F0%3E%20to%20the%20card/singular: 4fb1c419a78a0f010a3e5790801551fc assigned%20%3C0%3E%7BmemberName%7D%3C%2F0%3E%20to%20the%20card/singular: 4fb1c419a78a0f010a3e5790801551fc
Awaiting%20Customer/singular: 122c108794f321c10e05a08f09b11457 Awaiting%20Customer/singular: 122c108794f321c10e05a08f09b11457
@@ -127,8 +128,10 @@ checksums:
Enter%20your%20name/singular: cd95fbdd0533f2c2e8edf9d9bd9aa8df Enter%20your%20name/singular: cd95fbdd0533f2c2e8edf9d9bd9aa8df
Enter%20your%20password/singular: ea4fdd034522dead21bae0c0abb52eae Enter%20your%20password/singular: ea4fdd034522dead21bae0c0abb52eae
Error%20deleting%20account/singular: d42965a9bc9e5ec4ed57890268924643 Error%20deleting%20account/singular: d42965a9bc9e5ec4ed57890268924643
Error%20deleting%20label/singular: 94387e3a45ec768ae7715701ae00136e
Error%20deleting%20workspace/singular: 0aec9bd8170bc84f5ea5c9a47c52ed26 Error%20deleting%20workspace/singular: 0aec9bd8170bc84f5ea5c9a47c52ed26
Error%20disconnecting%20Trello/singular: a8766853864eddc480113778a708871b Error%20disconnecting%20Trello/singular: a8766853864eddc480113778a708871b
Error%20inviting%20member/singular: 91553b606a6ebed3534cd2e5635ce004
Error%20updating%20display%20name/singular: 0d7979a25d290123ed8b8906bf468f1a Error%20updating%20display%20name/singular: 0d7979a25d290123ed8b8906bf468f1a
Error%20updating%20profile%20image/singular: 462a56a6e574abc9e13cb48f1266adad Error%20updating%20profile%20image/singular: 462a56a6e574abc9e13cb48f1266adad
Error%20updating%20workspace%20description/singular: 7a9fd7c69b90ab848ee1f1d4a4995381 Error%20updating%20workspace%20description/singular: 7a9fd7c69b90ab848ee1f1d4a4995381
@@ -185,7 +188,9 @@ checksums:
Individuals/singular: 83bfc81f20e60556c44ec80c7d0603ec Individuals/singular: 83bfc81f20e60556c44ec80c7d0603ec
Integrations/singular: 0ccce343287704cd90150c32e2fcad36 Integrations/singular: 0ccce343287704cd90150c32e2fcad36
Interviewing/singular: 4ccdcdc784547e925077c3297bddee95 Interviewing/singular: 4ccdcdc784547e925077c3297bddee95
Invalid%20email%20address/singular: b2d9f25626f2d15c7c63e0281bccc247
Invite/singular: 181884cea804cbde665f160811ee7ad0 Invite/singular: 181884cea804cbde665f160811ee7ad0
Invite%20another/singular: acb543563dab7edbcf46060a53ade3a3
Invite%20member/singular: ade922db1be6b26bc979565ce5de2bc7 Invite%20member/singular: ade922db1be6b26bc979565ce5de2bc7
Junior/singular: ed1bd2c59a824fdcdd56fc8a0660fe9f Junior/singular: ed1bd2c59a824fdcdd56fc8a0660fe9f
Kanban%20is%20better%20with%20a%20team.%20Perfect%20for%20small%20and%20growing%20teams%20looking%20to%20collaborate./singular: a77bee43046b260797c8936ad23e9223 Kanban%20is%20better%20with%20a%20team.%20Perfect%20for%20small%20and%20growing%20teams%20looking%20to%20collaborate./singular: a77bee43046b260797c8936ad23e9223
@@ -354,10 +359,12 @@ checksums:
URL%20must%20be%20at%20least%203%20characters%20long/singular: 1b74ac9ec61fd34b16530ed599009ed1 URL%20must%20be%20at%20least%203%20characters%20long/singular: 1b74ac9ec61fd34b16530ed599009ed1
Use%20template/singular: 33f0ca0aa8f4b0de99aad267a61a094d Use%20template/singular: 33f0ca0aa8f4b0de99aad267a61a094d
User/singular: 61073457a5c3901084b557d065f876be User/singular: 61073457a5c3901084b557d065f876be
User%20is%20already%20a%20member%20of%20this%20workspace/singular: bc246386f0975f750f2133222bb4735e
Video/singular: 8050c90e4289b105a0780f0fdda6ff66 Video/singular: 8050c90e4289b105a0780f0fdda6ff66
View%20and%20manage%20your%20API%20keys./singular: 88e23ee79056846dd9ce63ceee690549 View%20and%20manage%20your%20API%20keys./singular: 88e23ee79056846dd9ce63ceee690549
View%20and%20manage%20your%20billing%20and%20subscription./singular: 7469502543aac6f02149813546d1cb38 View%20and%20manage%20your%20billing%20and%20subscription./singular: 7469502543aac6f02149813546d1cb38
View%20docs/singular: 43ce54f27bb1e3f1880b56e03ab38871 View%20docs/singular: 43ce54f27bb1e3f1880b56e03ab38871
View%20only/singular: 21f5f7ba3b49050c4f406113479d6a7a
View%20our%20roadmap./singular: 1dd7ec80e1635951b1c90d592d1d07dc View%20our%20roadmap./singular: 1dd7ec80e1635951b1c90d592d1d07dc
View%20workspace/singular: c9e4b789330b08c18ca8db7044409e5f View%20workspace/singular: c9e4b789330b08c18ca8db7044409e5f
Visibility/singular: 1ff412f8fcde0f460acbf11153649646 Visibility/singular: 1ff412f8fcde0f460acbf11153649646

View File

@@ -1,3 +1,5 @@
import { t } from "@lingui/core/macro";
import Button from "~/components/Button"; import Button from "~/components/Button";
import { useModal } from "~/providers/modal"; import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup"; import { usePopup } from "~/providers/popup";
@@ -17,8 +19,8 @@ export function DeleteLabelConfirmation({
onSuccess: () => refetch(), onSuccess: () => refetch(),
onError: () => onError: () =>
showPopup({ showPopup({
header: "Error deleting label", header: t`Error deleting label`,
message: "Please try again later, or contact customer support.", message: t`Please try again later, or contact customer support.`,
icon: "error", icon: "error",
}), }),
}); });
@@ -34,17 +36,17 @@ export function DeleteLabelConfirmation({
<div className="p-5"> <div className="p-5">
<div className="flex w-full flex-col justify-between pb-4"> <div className="flex w-full flex-col justify-between pb-4">
<h2 className="text-md pb-4 font-medium text-neutral-900 dark:text-dark-1000"> <h2 className="text-md pb-4 font-medium text-neutral-900 dark:text-dark-1000">
Are you sure you want to delete this label? {t`Are you sure you want to delete this label?`}
</h2> </h2>
<p className="text-sm font-medium text-light-900 dark:text-dark-900"> <p className="text-sm font-medium text-light-900 dark:text-dark-900">
{"This action can't be undone."} {t`This action can't be undone.`}
</p> </p>
</div> </div>
<div className="mt-5 flex justify-end space-x-2 sm:mt-6"> <div className="mt-5 flex justify-end space-x-2 sm:mt-6">
<Button variant="secondary" onClick={() => closeModal()}> <Button variant="secondary" onClick={() => closeModal()}>
Cancel {t`Cancel`}
</Button> </Button>
<Button onClick={handleDeleteLabel}>Delete</Button> <Button onClick={handleDeleteLabel}>{t`Delete`}</Button>
</div> </div>
</div> </div>
); );

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/views/card/components/Comment.tsx:121 #: src/views/card/components/Comment.tsx:123
msgid " (edited)" msgid " (edited)"
msgstr " (bearbeitet)" msgstr " (bearbeitet)"
@@ -48,7 +48,7 @@ msgstr "Eine leistungsstarke, flexible Kanban-App, die dir hilft, Arbeit zu orga
msgid "Account deleted" msgid "Account deleted"
msgstr "Konto gelöscht" msgstr "Konto gelöscht"
#: src/views/public/board/CardModal.tsx:104 #: src/views/public/board/CardModal.tsx:128
#: src/views/card/index.tsx:256 #: src/views/card/index.tsx:256
msgid "Activity" msgid "Activity"
msgstr "Aktivität" msgstr "Aktivität"
@@ -62,7 +62,7 @@ msgid "Add a card"
msgstr "Karte hinzufügen" msgstr "Karte hinzufügen"
#: src/views/card/components/NewCommentForm.tsx:57 #: src/views/card/components/NewCommentForm.tsx:57
#: src/views/card/components/Comment.tsx:144 #: src/views/card/components/Comment.tsx:146
msgid "Add a comment..." msgid "Add a comment..."
msgstr "Kommentar hinzufügen..." msgstr "Kommentar hinzufügen..."
@@ -75,7 +75,7 @@ msgstr "Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen)"
msgid "Add label" msgid "Add label"
msgstr "Label hinzufügen" msgstr "Label hinzufügen"
#: src/views/members/components/InviteMemberForm.tsx:50 #: src/views/members/components/InviteMemberForm.tsx:85
#: src/views/card/components/MemberSelector.tsx:130 #: src/views/card/components/MemberSelector.tsx:130
msgid "Add member" msgid "Add member"
msgstr "Mitglied hinzufügen" msgstr "Mitglied hinzufügen"
@@ -145,6 +145,10 @@ msgstr "Bist du sicher, dass du diese Karte löschen möchtest?"
msgid "Are you sure you want to delete this comment?" msgid "Are you sure you want to delete this comment?"
msgstr "Bist du sicher, dass du diesen Kommentar löschen möchtest?" msgstr "Bist du sicher, dass du diesen Kommentar löschen möchtest?"
#: src/components/DeleteLabelConfirmation.tsx:39
msgid "Are you sure you want to delete this label?"
msgstr "Sind Sie sicher, dass Sie dieses Label löschen möchten?"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:54 #: src/views/settings/components/DeleteAccountConfirmation.tsx:54
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Bist du sicher, dass du dein Konto löschen möchtest?" msgstr "Bist du sicher, dass du dein Konto löschen möchtest?"
@@ -190,7 +194,7 @@ msgstr "Der Name des Boards darf 100 Zeichen nicht überschreiten"
msgid "Board name is required" msgid "Board name is required"
msgstr "Boardname ist erforderlich" msgstr "Boardname ist erforderlich"
#: src/views/public/board/index.tsx:137 #: src/views/public/board/index.tsx:143
#: src/views/board/index.tsx:358 #: src/views/board/index.tsx:358
msgid "Board not found" msgid "Board not found"
msgstr "Board nicht gefunden" msgstr "Board nicht gefunden"
@@ -247,7 +251,8 @@ msgstr "Fehlerbericht"
#: src/views/members/components/DeleteMemberConfirmation.tsx:55 #: src/views/members/components/DeleteMemberConfirmation.tsx:55
#: src/views/card/components/DeleteCommentConfirmation.tsx:76 #: src/views/card/components/DeleteCommentConfirmation.tsx:76
#: src/views/card/components/DeleteCardConfirmation.tsx:86 #: src/views/card/components/DeleteCardConfirmation.tsx:86
#: src/views/card/components/Comment.tsx:156 #: src/views/card/components/Comment.tsx:158
#: src/components/DeleteLabelConfirmation.tsx:47
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
@@ -418,6 +423,7 @@ msgstr "Dunkel"
#: src/views/card/components/DeleteCommentConfirmation.tsx:82 #: src/views/card/components/DeleteCommentConfirmation.tsx:82
#: src/views/card/components/DeleteCardConfirmation.tsx:92 #: src/views/card/components/DeleteCardConfirmation.tsx:92
#: src/components/LabelForm.tsx:226 #: src/components/LabelForm.tsx:226
#: src/components/DeleteLabelConfirmation.tsx:49
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
@@ -435,7 +441,7 @@ msgstr "Board löschen"
msgid "Delete card" msgid "Delete card"
msgstr "Karte löschen" msgstr "Karte löschen"
#: src/views/card/components/Comment.tsx:89 #: src/views/card/components/Comment.tsx:91
msgid "Delete comment" msgid "Delete comment"
msgstr "Kommentar löschen" msgstr "Kommentar löschen"
@@ -511,7 +517,7 @@ msgstr "Erledigt"
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Board-URL bearbeiten" msgstr "Board-URL bearbeiten"
#: src/views/card/components/Comment.tsx:80 #: src/views/card/components/Comment.tsx:82
msgid "Edit comment" msgid "Edit comment"
msgstr "Kommentar bearbeiten" msgstr "Kommentar bearbeiten"
@@ -531,7 +537,7 @@ msgstr "Bearbeitung"
msgid "email" msgid "email"
msgstr "E-Mail" msgstr "E-Mail"
#: src/views/members/components/InviteMemberForm.tsx:64 #: src/views/members/components/InviteMemberForm.tsx:99
msgid "Email" msgid "Email"
msgstr "E-Mail" msgstr "E-Mail"
@@ -555,6 +561,10 @@ msgstr "Gib dein Passwort ein"
msgid "Error deleting account" msgid "Error deleting account"
msgstr "Fehler beim Löschen des Kontos" msgstr "Fehler beim Löschen des Kontos"
#: src/components/DeleteLabelConfirmation.tsx:22
msgid "Error deleting label"
msgstr "Fehler beim Löschen des Labels"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45 #: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
msgid "Error deleting workspace" msgid "Error deleting workspace"
msgstr "Fehler beim Löschen des Arbeitsbereichs" msgstr "Fehler beim Löschen des Arbeitsbereichs"
@@ -563,6 +573,11 @@ msgstr "Fehler beim Löschen des Arbeitsbereichs"
msgid "Error disconnecting Trello" msgid "Error disconnecting Trello"
msgstr "Fehler beim Trennen von Trello" msgstr "Fehler beim Trennen von Trello"
#: src/views/members/components/InviteMemberForm.tsx:57
#: src/views/members/components/InviteMemberForm.tsx:63
msgid "Error inviting member"
msgstr "Fehler beim Einladen des Mitglieds"
#: src/views/settings/components/UpdateDisplayNameForm.tsx:54 #: src/views/settings/components/UpdateDisplayNameForm.tsx:54
msgid "Error updating display name" msgid "Error updating display name"
msgstr "Fehler beim Aktualisieren des Anzeigenamens" msgstr "Fehler beim Aktualisieren des Anzeigenamens"
@@ -800,11 +815,19 @@ msgstr "Integrationen"
msgid "Interviewing" msgid "Interviewing"
msgstr "Vorstellungsgespräch" msgstr "Vorstellungsgespräch"
#: src/views/members/components/InviteMemberForm.tsx:26
msgid "Invalid email address"
msgstr "Ungültige E-Mail-Adresse"
#: src/views/members/index.tsx:169 #: src/views/members/index.tsx:169
msgid "Invite" msgid "Invite"
msgstr "Einladen" msgstr "Einladen"
#: src/views/members/components/InviteMemberForm.tsx:82 #: src/views/members/components/InviteMemberForm.tsx:113
msgid "Invite another"
msgstr "Weitere Person einladen"
#: src/views/members/components/InviteMemberForm.tsx:123
#: src/views/card/components/MemberSelector.tsx:112 #: src/views/card/components/MemberSelector.tsx:112
msgid "Invite member" msgid "Invite member"
msgstr "Mitglied einladen" msgstr "Mitglied einladen"
@@ -1060,6 +1083,7 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40 #: src/views/settings/components/DeleteAccountConfirmation.tsx:40
#: src/views/settings/components/Avatar.tsx:40 #: src/views/settings/components/Avatar.tsx:40
#: src/views/settings/components/Avatar.tsx:98 #: src/views/settings/components/Avatar.tsx:98
#: src/views/members/components/InviteMemberForm.tsx:64
#: src/views/members/components/DeleteMemberConfirmation.tsx:28 #: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/card/index.tsx:159 #: src/views/card/index.tsx:159
#: src/views/card/components/NewCommentForm.tsx:31 #: src/views/card/components/NewCommentForm.tsx:31
@@ -1068,7 +1092,7 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
#: src/views/card/components/LabelSelector.tsx:73 #: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/DeleteCommentConfirmation.tsx:45 #: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/DeleteCardConfirmation.tsx:52 #: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/Comment.tsx:62 #: src/views/card/components/Comment.tsx:64
#: src/views/boards/components/ImportBoardsForm.tsx:205 #: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/board/index.tsx:135 #: src/views/board/index.tsx:135
#: src/views/board/index.tsx:191 #: src/views/board/index.tsx:191
@@ -1078,6 +1102,7 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
#: src/views/board/components/NewCardForm.tsx:145 #: src/views/board/components/NewCardForm.tsx:145
#: src/components/NewWorkspaceForm.tsx:41 #: src/components/NewWorkspaceForm.tsx:41
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/DeleteLabelConfirmation.tsx:23
msgid "Please try again later, or contact customer support." msgid "Please try again later, or contact customer support."
msgstr "Bitte versuche es später noch einmal oder kontaktiere den Kundensupport." msgstr "Bitte versuche es später noch einmal oder kontaktiere den Kundensupport."
@@ -1188,7 +1213,7 @@ msgstr "Rolle"
msgid "Run on your own infrastructure" msgid "Run on your own infrastructure"
msgstr "Auf eigener Infrastruktur betreiben" msgstr "Auf eigener Infrastruktur betreiben"
#: src/views/card/components/Comment.tsx:163 #: src/views/card/components/Comment.tsx:165
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
@@ -1336,10 +1361,11 @@ msgstr "Sie werden keinen Zugriff mehr auf diesen Workspace haben."
#: src/views/card/components/DeleteCommentConfirmation.tsx:68 #: src/views/card/components/DeleteCommentConfirmation.tsx:68
#: src/views/card/components/DeleteCardConfirmation.tsx:78 #: src/views/card/components/DeleteCardConfirmation.tsx:78
#: src/components/DeleteLabelConfirmation.tsx:42
msgid "This action can't be undone." msgid "This action can't be undone."
msgstr "Diese Aktion kann nicht rückgängig gemacht werden." msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
#: src/views/public/board/index.tsx:140 #: src/views/public/board/index.tsx:146
msgid "This board is private or does not exist" msgid "This board is private or does not exist"
msgstr "Dieses Board ist privat oder existiert nicht" msgstr "Dieses Board ist privat oder existiert nicht"
@@ -1429,7 +1455,7 @@ msgstr "Board-Sichtbarkeit konnte nicht aktualisiert werden"
msgid "Unable to update card" msgid "Unable to update card"
msgstr "Karte konnte nicht aktualisiert werden" msgstr "Karte konnte nicht aktualisiert werden"
#: src/views/card/components/Comment.tsx:61 #: src/views/card/components/Comment.tsx:63
msgid "Unable to update comment" msgid "Unable to update comment"
msgstr "Kommentar konnte nicht aktualisiert werden" msgstr "Kommentar konnte nicht aktualisiert werden"
@@ -1531,6 +1557,10 @@ msgstr "Vorlage verwenden"
msgid "User" msgid "User"
msgstr "Benutzer" msgstr "Benutzer"
#: src/views/members/components/InviteMemberForm.tsx:58
msgid "User is already a member of this workspace"
msgstr "Benutzer ist bereits Mitglied dieses Arbeitsbereichs"
#: src/views/boards/components/TemplateBoards.tsx:37 #: src/views/boards/components/TemplateBoards.tsx:37
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
@@ -1547,11 +1577,15 @@ msgstr "Verwalte deine Abrechnung und dein Abonnement."
msgid "View docs" msgid "View docs"
msgstr "Dokumentation ansehen" msgstr "Dokumentation ansehen"
#: src/views/public/board/index.tsx:120
msgid "View only"
msgstr "Nur ansehen"
#: src/views/home/components/Features.tsx:147 #: src/views/home/components/Features.tsx:147
msgid "View our roadmap." msgid "View our roadmap."
msgstr "Sieh dir unsere roadmap an." msgstr "Sieh dir unsere roadmap an."
#: src/views/public/board/index.tsx:143 #: src/views/public/board/index.tsx:149
msgid "View workspace" msgid "View workspace"
msgstr "Workspace anzeigen" msgstr "Workspace anzeigen"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/views/card/components/Comment.tsx:121 #: src/views/card/components/Comment.tsx:123
msgid " (edited)" msgid " (edited)"
msgstr " (edited)" msgstr " (edited)"
@@ -60,7 +60,7 @@ msgstr "A powerful, flexible kanban app that helps you organise work, track prog
msgid "Account deleted" msgid "Account deleted"
msgstr "Account deleted" msgstr "Account deleted"
#: src/views/public/board/CardModal.tsx:104 #: src/views/public/board/CardModal.tsx:128
#: src/views/card/index.tsx:256 #: src/views/card/index.tsx:256
msgid "Activity" msgid "Activity"
msgstr "Activity" msgstr "Activity"
@@ -74,7 +74,7 @@ msgid "Add a card"
msgstr "Add a card" msgstr "Add a card"
#: src/views/card/components/NewCommentForm.tsx:57 #: src/views/card/components/NewCommentForm.tsx:57
#: src/views/card/components/Comment.tsx:144 #: src/views/card/components/Comment.tsx:146
msgid "Add a comment..." msgid "Add a comment..."
msgstr "Add a comment..." msgstr "Add a comment..."
@@ -87,7 +87,7 @@ msgstr "Add description... (type '/' to open commands)"
msgid "Add label" msgid "Add label"
msgstr "Add label" msgstr "Add label"
#: src/views/members/components/InviteMemberForm.tsx:50 #: src/views/members/components/InviteMemberForm.tsx:85
#: src/views/card/components/MemberSelector.tsx:130 #: src/views/card/components/MemberSelector.tsx:130
msgid "Add member" msgid "Add member"
msgstr "Add member" msgstr "Add member"
@@ -161,6 +161,10 @@ msgstr "Are you sure you want to delete this card?"
msgid "Are you sure you want to delete this comment?" msgid "Are you sure you want to delete this comment?"
msgstr "Are you sure you want to delete this comment?" msgstr "Are you sure you want to delete this comment?"
#: src/components/DeleteLabelConfirmation.tsx:39
msgid "Are you sure you want to delete this label?"
msgstr "Are you sure you want to delete this label?"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:54 #: src/views/settings/components/DeleteAccountConfirmation.tsx:54
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Are you sure you want to delete your account?" msgstr "Are you sure you want to delete your account?"
@@ -214,7 +218,7 @@ msgstr "Board name cannot exceed 100 characters"
msgid "Board name is required" msgid "Board name is required"
msgstr "Board name is required" msgstr "Board name is required"
#: src/views/public/board/index.tsx:137 #: src/views/public/board/index.tsx:143
#: src/views/board/index.tsx:358 #: src/views/board/index.tsx:358
msgid "Board not found" msgid "Board not found"
msgstr "Board not found" msgstr "Board not found"
@@ -275,7 +279,8 @@ msgstr "Bug Report"
#: src/views/members/components/DeleteMemberConfirmation.tsx:55 #: src/views/members/components/DeleteMemberConfirmation.tsx:55
#: src/views/card/components/DeleteCommentConfirmation.tsx:76 #: src/views/card/components/DeleteCommentConfirmation.tsx:76
#: src/views/card/components/DeleteCardConfirmation.tsx:86 #: src/views/card/components/DeleteCardConfirmation.tsx:86
#: src/views/card/components/Comment.tsx:156 #: src/views/card/components/Comment.tsx:158
#: src/components/DeleteLabelConfirmation.tsx:47
msgid "Cancel" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
@@ -454,6 +459,7 @@ msgstr "Dark"
#: src/views/card/components/DeleteCommentConfirmation.tsx:82 #: src/views/card/components/DeleteCommentConfirmation.tsx:82
#: src/views/card/components/DeleteCardConfirmation.tsx:92 #: src/views/card/components/DeleteCardConfirmation.tsx:92
#: src/components/LabelForm.tsx:226 #: src/components/LabelForm.tsx:226
#: src/components/DeleteLabelConfirmation.tsx:49
msgid "Delete" msgid "Delete"
msgstr "Delete" msgstr "Delete"
@@ -471,7 +477,7 @@ msgstr "Delete board"
msgid "Delete card" msgid "Delete card"
msgstr "Delete card" msgstr "Delete card"
#: src/views/card/components/Comment.tsx:89 #: src/views/card/components/Comment.tsx:91
msgid "Delete comment" msgid "Delete comment"
msgstr "Delete comment" msgstr "Delete comment"
@@ -547,7 +553,7 @@ msgstr "Done"
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Edit board URL" msgstr "Edit board URL"
#: src/views/card/components/Comment.tsx:80 #: src/views/card/components/Comment.tsx:82
msgid "Edit comment" msgid "Edit comment"
msgstr "Edit comment" msgstr "Edit comment"
@@ -567,7 +573,7 @@ msgstr "Editing"
msgid "email" msgid "email"
msgstr "email" msgstr "email"
#: src/views/members/components/InviteMemberForm.tsx:64 #: src/views/members/components/InviteMemberForm.tsx:99
msgid "Email" msgid "Email"
msgstr "Email" msgstr "Email"
@@ -591,6 +597,10 @@ msgstr "Enter your password"
msgid "Error deleting account" msgid "Error deleting account"
msgstr "Error deleting account" msgstr "Error deleting account"
#: src/components/DeleteLabelConfirmation.tsx:22
msgid "Error deleting label"
msgstr "Error deleting label"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45 #: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
msgid "Error deleting workspace" msgid "Error deleting workspace"
msgstr "Error deleting workspace" msgstr "Error deleting workspace"
@@ -599,6 +609,11 @@ msgstr "Error deleting workspace"
msgid "Error disconnecting Trello" msgid "Error disconnecting Trello"
msgstr "Error disconnecting Trello" msgstr "Error disconnecting Trello"
#: src/views/members/components/InviteMemberForm.tsx:57
#: src/views/members/components/InviteMemberForm.tsx:63
msgid "Error inviting member"
msgstr "Error inviting member"
#: src/views/settings/components/UpdateDisplayNameForm.tsx:54 #: src/views/settings/components/UpdateDisplayNameForm.tsx:54
msgid "Error updating display name" msgid "Error updating display name"
msgstr "Error updating display name" msgstr "Error updating display name"
@@ -841,11 +856,19 @@ msgstr "Integrations"
msgid "Interviewing" msgid "Interviewing"
msgstr "Interviewing" msgstr "Interviewing"
#: src/views/members/components/InviteMemberForm.tsx:26
msgid "Invalid email address"
msgstr "Invalid email address"
#: src/views/members/index.tsx:169 #: src/views/members/index.tsx:169
msgid "Invite" msgid "Invite"
msgstr "Invite" msgstr "Invite"
#: src/views/members/components/InviteMemberForm.tsx:82 #: src/views/members/components/InviteMemberForm.tsx:113
msgid "Invite another"
msgstr "Invite another"
#: src/views/members/components/InviteMemberForm.tsx:123
#: src/views/card/components/MemberSelector.tsx:112 #: src/views/card/components/MemberSelector.tsx:112
msgid "Invite member" msgid "Invite member"
msgstr "Invite member" msgstr "Invite member"
@@ -1105,6 +1128,7 @@ msgstr "Please select a file to upload."
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40 #: src/views/settings/components/DeleteAccountConfirmation.tsx:40
#: src/views/settings/components/Avatar.tsx:40 #: src/views/settings/components/Avatar.tsx:40
#: src/views/settings/components/Avatar.tsx:98 #: src/views/settings/components/Avatar.tsx:98
#: src/views/members/components/InviteMemberForm.tsx:64
#: src/views/members/components/DeleteMemberConfirmation.tsx:28 #: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/card/index.tsx:159 #: src/views/card/index.tsx:159
#: src/views/card/components/NewCommentForm.tsx:31 #: src/views/card/components/NewCommentForm.tsx:31
@@ -1113,7 +1137,7 @@ msgstr "Please select a file to upload."
#: src/views/card/components/LabelSelector.tsx:73 #: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/DeleteCommentConfirmation.tsx:45 #: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/DeleteCardConfirmation.tsx:52 #: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/Comment.tsx:62 #: src/views/card/components/Comment.tsx:64
#: src/views/boards/components/ImportBoardsForm.tsx:205 #: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/board/index.tsx:135 #: src/views/board/index.tsx:135
#: src/views/board/index.tsx:191 #: src/views/board/index.tsx:191
@@ -1123,6 +1147,7 @@ msgstr "Please select a file to upload."
#: src/views/board/components/NewCardForm.tsx:145 #: src/views/board/components/NewCardForm.tsx:145
#: src/components/NewWorkspaceForm.tsx:41 #: src/components/NewWorkspaceForm.tsx:41
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/DeleteLabelConfirmation.tsx:23
msgid "Please try again later, or contact customer support." msgid "Please try again later, or contact customer support."
msgstr "Please try again later, or contact customer support." msgstr "Please try again later, or contact customer support."
@@ -1233,7 +1258,7 @@ msgstr "Role"
msgid "Run on your own infrastructure" msgid "Run on your own infrastructure"
msgstr "Run on your own infrastructure" msgstr "Run on your own infrastructure"
#: src/views/card/components/Comment.tsx:163 #: src/views/card/components/Comment.tsx:165
msgid "Save" msgid "Save"
msgstr "Save" msgstr "Save"
@@ -1385,10 +1410,11 @@ msgstr "They won't be able to access this workspace."
#: src/views/card/components/DeleteCommentConfirmation.tsx:68 #: src/views/card/components/DeleteCommentConfirmation.tsx:68
#: src/views/card/components/DeleteCardConfirmation.tsx:78 #: src/views/card/components/DeleteCardConfirmation.tsx:78
#: src/components/DeleteLabelConfirmation.tsx:42
msgid "This action can't be undone." msgid "This action can't be undone."
msgstr "This action can't be undone." msgstr "This action can't be undone."
#: src/views/public/board/index.tsx:140 #: src/views/public/board/index.tsx:146
msgid "This board is private or does not exist" msgid "This board is private or does not exist"
msgstr "This board is private or does not exist" msgstr "This board is private or does not exist"
@@ -1482,7 +1508,7 @@ msgstr "Unable to update board visibility"
msgid "Unable to update card" msgid "Unable to update card"
msgstr "Unable to update card" msgstr "Unable to update card"
#: src/views/card/components/Comment.tsx:61 #: src/views/card/components/Comment.tsx:63
msgid "Unable to update comment" msgid "Unable to update comment"
msgstr "Unable to update comment" msgstr "Unable to update comment"
@@ -1584,6 +1610,10 @@ msgstr "Use template"
msgid "User" msgid "User"
msgstr "User" msgstr "User"
#: src/views/members/components/InviteMemberForm.tsx:58
msgid "User is already a member of this workspace"
msgstr "User is already a member of this workspace"
#: src/views/boards/components/TemplateBoards.tsx:37 #: src/views/boards/components/TemplateBoards.tsx:37
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
@@ -1600,11 +1630,15 @@ msgstr "View and manage your billing and subscription."
msgid "View docs" msgid "View docs"
msgstr "View docs" msgstr "View docs"
#: src/views/public/board/index.tsx:120
msgid "View only"
msgstr "View only"
#: src/views/home/components/Features.tsx:147 #: src/views/home/components/Features.tsx:147
msgid "View our roadmap." msgid "View our roadmap."
msgstr "View our roadmap." msgstr "View our roadmap."
#: src/views/public/board/index.tsx:143 #: src/views/public/board/index.tsx:149
msgid "View workspace" msgid "View workspace"
msgstr "View workspace" msgstr "View workspace"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/views/card/components/Comment.tsx:121 #: src/views/card/components/Comment.tsx:123
msgid " (edited)" msgid " (edited)"
msgstr " (editado)" msgstr " (editado)"
@@ -48,7 +48,7 @@ msgstr "Una aplicación kanban potente y flexible que te ayuda a organizar el tr
msgid "Account deleted" msgid "Account deleted"
msgstr "Cuenta eliminada" msgstr "Cuenta eliminada"
#: src/views/public/board/CardModal.tsx:104 #: src/views/public/board/CardModal.tsx:128
#: src/views/card/index.tsx:256 #: src/views/card/index.tsx:256
msgid "Activity" msgid "Activity"
msgstr "Actividad" msgstr "Actividad"
@@ -62,7 +62,7 @@ msgid "Add a card"
msgstr "Añadir una tarjeta" msgstr "Añadir una tarjeta"
#: src/views/card/components/NewCommentForm.tsx:57 #: src/views/card/components/NewCommentForm.tsx:57
#: src/views/card/components/Comment.tsx:144 #: src/views/card/components/Comment.tsx:146
msgid "Add a comment..." msgid "Add a comment..."
msgstr "Añadir un comentario..." msgstr "Añadir un comentario..."
@@ -75,7 +75,7 @@ msgstr "Añadir descripción... (escribe '/' para abrir comandos)"
msgid "Add label" msgid "Add label"
msgstr "Añadir etiqueta" msgstr "Añadir etiqueta"
#: src/views/members/components/InviteMemberForm.tsx:50 #: src/views/members/components/InviteMemberForm.tsx:85
#: src/views/card/components/MemberSelector.tsx:130 #: src/views/card/components/MemberSelector.tsx:130
msgid "Add member" msgid "Add member"
msgstr "Añadir miembro" msgstr "Añadir miembro"
@@ -145,6 +145,10 @@ msgstr "¿Estás seguro de que quieres eliminar esta tarjeta?"
msgid "Are you sure you want to delete this comment?" msgid "Are you sure you want to delete this comment?"
msgstr "¿Estás seguro de que quieres eliminar este comentario?" msgstr "¿Estás seguro de que quieres eliminar este comentario?"
#: src/components/DeleteLabelConfirmation.tsx:39
msgid "Are you sure you want to delete this label?"
msgstr "¿Estás seguro de que quieres eliminar esta etiqueta?"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:54 #: src/views/settings/components/DeleteAccountConfirmation.tsx:54
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "¿Estás seguro de que quieres eliminar tu cuenta?" msgstr "¿Estás seguro de que quieres eliminar tu cuenta?"
@@ -190,7 +194,7 @@ msgstr "El nombre del tablero no puede exceder los 100 caracteres"
msgid "Board name is required" msgid "Board name is required"
msgstr "El nombre del tablero es obligatorio" msgstr "El nombre del tablero es obligatorio"
#: src/views/public/board/index.tsx:137 #: src/views/public/board/index.tsx:143
#: src/views/board/index.tsx:358 #: src/views/board/index.tsx:358
msgid "Board not found" msgid "Board not found"
msgstr "Tablero no encontrado" msgstr "Tablero no encontrado"
@@ -247,7 +251,8 @@ msgstr "Informe de error"
#: src/views/members/components/DeleteMemberConfirmation.tsx:55 #: src/views/members/components/DeleteMemberConfirmation.tsx:55
#: src/views/card/components/DeleteCommentConfirmation.tsx:76 #: src/views/card/components/DeleteCommentConfirmation.tsx:76
#: src/views/card/components/DeleteCardConfirmation.tsx:86 #: src/views/card/components/DeleteCardConfirmation.tsx:86
#: src/views/card/components/Comment.tsx:156 #: src/views/card/components/Comment.tsx:158
#: src/components/DeleteLabelConfirmation.tsx:47
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@@ -418,6 +423,7 @@ msgstr "Oscuro"
#: src/views/card/components/DeleteCommentConfirmation.tsx:82 #: src/views/card/components/DeleteCommentConfirmation.tsx:82
#: src/views/card/components/DeleteCardConfirmation.tsx:92 #: src/views/card/components/DeleteCardConfirmation.tsx:92
#: src/components/LabelForm.tsx:226 #: src/components/LabelForm.tsx:226
#: src/components/DeleteLabelConfirmation.tsx:49
msgid "Delete" msgid "Delete"
msgstr "Eliminar" msgstr "Eliminar"
@@ -435,7 +441,7 @@ msgstr "Eliminar tablero"
msgid "Delete card" msgid "Delete card"
msgstr "Eliminar tarjeta" msgstr "Eliminar tarjeta"
#: src/views/card/components/Comment.tsx:89 #: src/views/card/components/Comment.tsx:91
msgid "Delete comment" msgid "Delete comment"
msgstr "Eliminar comentario" msgstr "Eliminar comentario"
@@ -511,7 +517,7 @@ msgstr "Terminado"
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Editar URL del tablero" msgstr "Editar URL del tablero"
#: src/views/card/components/Comment.tsx:80 #: src/views/card/components/Comment.tsx:82
msgid "Edit comment" msgid "Edit comment"
msgstr "Editar comentario" msgstr "Editar comentario"
@@ -531,7 +537,7 @@ msgstr "Editando"
msgid "email" msgid "email"
msgstr "correo electrónico" msgstr "correo electrónico"
#: src/views/members/components/InviteMemberForm.tsx:64 #: src/views/members/components/InviteMemberForm.tsx:99
msgid "Email" msgid "Email"
msgstr "Correo electrónico" msgstr "Correo electrónico"
@@ -555,6 +561,10 @@ msgstr "Introduce tu contraseña"
msgid "Error deleting account" msgid "Error deleting account"
msgstr "Error al eliminar la cuenta" msgstr "Error al eliminar la cuenta"
#: src/components/DeleteLabelConfirmation.tsx:22
msgid "Error deleting label"
msgstr "Error al eliminar la etiqueta"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45 #: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
msgid "Error deleting workspace" msgid "Error deleting workspace"
msgstr "Error al eliminar el espacio de trabajo" msgstr "Error al eliminar el espacio de trabajo"
@@ -563,6 +573,11 @@ msgstr "Error al eliminar el espacio de trabajo"
msgid "Error disconnecting Trello" msgid "Error disconnecting Trello"
msgstr "Error al desconectar Trello" msgstr "Error al desconectar Trello"
#: src/views/members/components/InviteMemberForm.tsx:57
#: src/views/members/components/InviteMemberForm.tsx:63
msgid "Error inviting member"
msgstr "Error al invitar al miembro"
#: src/views/settings/components/UpdateDisplayNameForm.tsx:54 #: src/views/settings/components/UpdateDisplayNameForm.tsx:54
msgid "Error updating display name" msgid "Error updating display name"
msgstr "Error al actualizar el nombre visible" msgstr "Error al actualizar el nombre visible"
@@ -800,11 +815,19 @@ msgstr "Integraciones"
msgid "Interviewing" msgid "Interviewing"
msgstr "Entrevistando" msgstr "Entrevistando"
#: src/views/members/components/InviteMemberForm.tsx:26
msgid "Invalid email address"
msgstr "Dirección de correo electrónico no válida"
#: src/views/members/index.tsx:169 #: src/views/members/index.tsx:169
msgid "Invite" msgid "Invite"
msgstr "Invitar" msgstr "Invitar"
#: src/views/members/components/InviteMemberForm.tsx:82 #: src/views/members/components/InviteMemberForm.tsx:113
msgid "Invite another"
msgstr "Invitar a otro"
#: src/views/members/components/InviteMemberForm.tsx:123
#: src/views/card/components/MemberSelector.tsx:112 #: src/views/card/components/MemberSelector.tsx:112
msgid "Invite member" msgid "Invite member"
msgstr "Invitar miembro" msgstr "Invitar miembro"
@@ -1060,6 +1083,7 @@ msgstr "Por favor selecciona un archivo para subir."
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40 #: src/views/settings/components/DeleteAccountConfirmation.tsx:40
#: src/views/settings/components/Avatar.tsx:40 #: src/views/settings/components/Avatar.tsx:40
#: src/views/settings/components/Avatar.tsx:98 #: src/views/settings/components/Avatar.tsx:98
#: src/views/members/components/InviteMemberForm.tsx:64
#: src/views/members/components/DeleteMemberConfirmation.tsx:28 #: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/card/index.tsx:159 #: src/views/card/index.tsx:159
#: src/views/card/components/NewCommentForm.tsx:31 #: src/views/card/components/NewCommentForm.tsx:31
@@ -1068,7 +1092,7 @@ msgstr "Por favor selecciona un archivo para subir."
#: src/views/card/components/LabelSelector.tsx:73 #: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/DeleteCommentConfirmation.tsx:45 #: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/DeleteCardConfirmation.tsx:52 #: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/Comment.tsx:62 #: src/views/card/components/Comment.tsx:64
#: src/views/boards/components/ImportBoardsForm.tsx:205 #: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/board/index.tsx:135 #: src/views/board/index.tsx:135
#: src/views/board/index.tsx:191 #: src/views/board/index.tsx:191
@@ -1078,6 +1102,7 @@ msgstr "Por favor selecciona un archivo para subir."
#: src/views/board/components/NewCardForm.tsx:145 #: src/views/board/components/NewCardForm.tsx:145
#: src/components/NewWorkspaceForm.tsx:41 #: src/components/NewWorkspaceForm.tsx:41
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/DeleteLabelConfirmation.tsx:23
msgid "Please try again later, or contact customer support." msgid "Please try again later, or contact customer support."
msgstr "Por favor, inténtalo de nuevo más tarde o contacta con atención al cliente." msgstr "Por favor, inténtalo de nuevo más tarde o contacta con atención al cliente."
@@ -1188,7 +1213,7 @@ msgstr "Rol"
msgid "Run on your own infrastructure" msgid "Run on your own infrastructure"
msgstr "Ejecuta en tu propia infraestructura" msgstr "Ejecuta en tu propia infraestructura"
#: src/views/card/components/Comment.tsx:163 #: src/views/card/components/Comment.tsx:165
msgid "Save" msgid "Save"
msgstr "Guardar" msgstr "Guardar"
@@ -1336,10 +1361,11 @@ msgstr "No podrán acceder a este espacio de trabajo."
#: src/views/card/components/DeleteCommentConfirmation.tsx:68 #: src/views/card/components/DeleteCommentConfirmation.tsx:68
#: src/views/card/components/DeleteCardConfirmation.tsx:78 #: src/views/card/components/DeleteCardConfirmation.tsx:78
#: src/components/DeleteLabelConfirmation.tsx:42
msgid "This action can't be undone." msgid "This action can't be undone."
msgstr "Esta acción no se puede deshacer." msgstr "Esta acción no se puede deshacer."
#: src/views/public/board/index.tsx:140 #: src/views/public/board/index.tsx:146
msgid "This board is private or does not exist" msgid "This board is private or does not exist"
msgstr "Este tablero es privado o no existe" msgstr "Este tablero es privado o no existe"
@@ -1429,7 +1455,7 @@ msgstr "No se puede actualizar la visibilidad del tablero"
msgid "Unable to update card" msgid "Unable to update card"
msgstr "No se puede actualizar la tarjeta" msgstr "No se puede actualizar la tarjeta"
#: src/views/card/components/Comment.tsx:61 #: src/views/card/components/Comment.tsx:63
msgid "Unable to update comment" msgid "Unable to update comment"
msgstr "No se puede actualizar el comentario" msgstr "No se puede actualizar el comentario"
@@ -1531,6 +1557,10 @@ msgstr "Usar plantilla"
msgid "User" msgid "User"
msgstr "Usuario" msgstr "Usuario"
#: src/views/members/components/InviteMemberForm.tsx:58
msgid "User is already a member of this workspace"
msgstr "El usuario ya es miembro de este espacio de trabajo"
#: src/views/boards/components/TemplateBoards.tsx:37 #: src/views/boards/components/TemplateBoards.tsx:37
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
@@ -1547,11 +1577,15 @@ msgstr "Ver y gestionar tu facturación y suscripción."
msgid "View docs" msgid "View docs"
msgstr "Ver documentación" msgstr "Ver documentación"
#: src/views/public/board/index.tsx:120
msgid "View only"
msgstr "Solo visualización"
#: src/views/home/components/Features.tsx:147 #: src/views/home/components/Features.tsx:147
msgid "View our roadmap." msgid "View our roadmap."
msgstr "Ver nuestra hoja de ruta." msgstr "Ver nuestra hoja de ruta."
#: src/views/public/board/index.tsx:143 #: src/views/public/board/index.tsx:149
msgid "View workspace" msgid "View workspace"
msgstr "Ver espacio de trabajo" msgstr "Ver espacio de trabajo"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/views/card/components/Comment.tsx:121 #: src/views/card/components/Comment.tsx:123
msgid " (edited)" msgid " (edited)"
msgstr " (modifié)" msgstr " (modifié)"
@@ -48,7 +48,7 @@ msgstr "Une application kanban puissante et flexible qui vous aide à organiser
msgid "Account deleted" msgid "Account deleted"
msgstr "Compte supprimé" msgstr "Compte supprimé"
#: src/views/public/board/CardModal.tsx:104 #: src/views/public/board/CardModal.tsx:128
#: src/views/card/index.tsx:256 #: src/views/card/index.tsx:256
msgid "Activity" msgid "Activity"
msgstr "Activité" msgstr "Activité"
@@ -62,7 +62,7 @@ msgid "Add a card"
msgstr "Ajouter une carte" msgstr "Ajouter une carte"
#: src/views/card/components/NewCommentForm.tsx:57 #: src/views/card/components/NewCommentForm.tsx:57
#: src/views/card/components/Comment.tsx:144 #: src/views/card/components/Comment.tsx:146
msgid "Add a comment..." msgid "Add a comment..."
msgstr "Ajouter un commentaire..." msgstr "Ajouter un commentaire..."
@@ -75,7 +75,7 @@ msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes)"
msgid "Add label" msgid "Add label"
msgstr "Ajouter une étiquette" msgstr "Ajouter une étiquette"
#: src/views/members/components/InviteMemberForm.tsx:50 #: src/views/members/components/InviteMemberForm.tsx:85
#: src/views/card/components/MemberSelector.tsx:130 #: src/views/card/components/MemberSelector.tsx:130
msgid "Add member" msgid "Add member"
msgstr "Ajouter un membre" msgstr "Ajouter un membre"
@@ -145,6 +145,10 @@ msgstr "Êtes-vous sûr de vouloir supprimer cette carte ?"
msgid "Are you sure you want to delete this comment?" msgid "Are you sure you want to delete this comment?"
msgstr "Êtes-vous sûr de vouloir supprimer ce commentaire ?" msgstr "Êtes-vous sûr de vouloir supprimer ce commentaire ?"
#: src/components/DeleteLabelConfirmation.tsx:39
msgid "Are you sure you want to delete this label?"
msgstr "Êtes-vous sûr de vouloir supprimer cette étiquette ?"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:54 #: src/views/settings/components/DeleteAccountConfirmation.tsx:54
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Êtes-vous sûr de vouloir supprimer votre compte ?" msgstr "Êtes-vous sûr de vouloir supprimer votre compte ?"
@@ -190,7 +194,7 @@ msgstr "Le nom du tableau ne peut pas dépasser 100 caractères"
msgid "Board name is required" msgid "Board name is required"
msgstr "Le nom du tableau est requis" msgstr "Le nom du tableau est requis"
#: src/views/public/board/index.tsx:137 #: src/views/public/board/index.tsx:143
#: src/views/board/index.tsx:358 #: src/views/board/index.tsx:358
msgid "Board not found" msgid "Board not found"
msgstr "Tableau introuvable" msgstr "Tableau introuvable"
@@ -247,7 +251,8 @@ msgstr "Rapport de bug"
#: src/views/members/components/DeleteMemberConfirmation.tsx:55 #: src/views/members/components/DeleteMemberConfirmation.tsx:55
#: src/views/card/components/DeleteCommentConfirmation.tsx:76 #: src/views/card/components/DeleteCommentConfirmation.tsx:76
#: src/views/card/components/DeleteCardConfirmation.tsx:86 #: src/views/card/components/DeleteCardConfirmation.tsx:86
#: src/views/card/components/Comment.tsx:156 #: src/views/card/components/Comment.tsx:158
#: src/components/DeleteLabelConfirmation.tsx:47
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
@@ -418,6 +423,7 @@ msgstr "Sombre"
#: src/views/card/components/DeleteCommentConfirmation.tsx:82 #: src/views/card/components/DeleteCommentConfirmation.tsx:82
#: src/views/card/components/DeleteCardConfirmation.tsx:92 #: src/views/card/components/DeleteCardConfirmation.tsx:92
#: src/components/LabelForm.tsx:226 #: src/components/LabelForm.tsx:226
#: src/components/DeleteLabelConfirmation.tsx:49
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
@@ -435,7 +441,7 @@ msgstr "Supprimer le tableau"
msgid "Delete card" msgid "Delete card"
msgstr "Supprimer la carte" msgstr "Supprimer la carte"
#: src/views/card/components/Comment.tsx:89 #: src/views/card/components/Comment.tsx:91
msgid "Delete comment" msgid "Delete comment"
msgstr "Supprimer le commentaire" msgstr "Supprimer le commentaire"
@@ -511,7 +517,7 @@ msgstr "Fait"
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Modifier l'URL du tableau" msgstr "Modifier l'URL du tableau"
#: src/views/card/components/Comment.tsx:80 #: src/views/card/components/Comment.tsx:82
msgid "Edit comment" msgid "Edit comment"
msgstr "Modifier le commentaire" msgstr "Modifier le commentaire"
@@ -531,7 +537,7 @@ msgstr "Édition"
msgid "email" msgid "email"
msgstr "e-mail" msgstr "e-mail"
#: src/views/members/components/InviteMemberForm.tsx:64 #: src/views/members/components/InviteMemberForm.tsx:99
msgid "Email" msgid "Email"
msgstr "E-mail" msgstr "E-mail"
@@ -555,6 +561,10 @@ msgstr "Saisissez votre mot de passe"
msgid "Error deleting account" msgid "Error deleting account"
msgstr "Erreur lors de la suppression du compte" msgstr "Erreur lors de la suppression du compte"
#: src/components/DeleteLabelConfirmation.tsx:22
msgid "Error deleting label"
msgstr "Erreur lors de la suppression de l'étiquette"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45 #: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
msgid "Error deleting workspace" msgid "Error deleting workspace"
msgstr "Erreur lors de la suppression de l'espace de travail" msgstr "Erreur lors de la suppression de l'espace de travail"
@@ -563,6 +573,11 @@ msgstr "Erreur lors de la suppression de l'espace de travail"
msgid "Error disconnecting Trello" msgid "Error disconnecting Trello"
msgstr "Erreur lors de la déconnexion de Trello" msgstr "Erreur lors de la déconnexion de Trello"
#: src/views/members/components/InviteMemberForm.tsx:57
#: src/views/members/components/InviteMemberForm.tsx:63
msgid "Error inviting member"
msgstr "Erreur lors de l'invitation du membre"
#: src/views/settings/components/UpdateDisplayNameForm.tsx:54 #: src/views/settings/components/UpdateDisplayNameForm.tsx:54
msgid "Error updating display name" msgid "Error updating display name"
msgstr "Erreur lors de la mise à jour du nom d'affichage" msgstr "Erreur lors de la mise à jour du nom d'affichage"
@@ -800,11 +815,19 @@ msgstr "Intégrations"
msgid "Interviewing" msgid "Interviewing"
msgstr "Entretien" msgstr "Entretien"
#: src/views/members/components/InviteMemberForm.tsx:26
msgid "Invalid email address"
msgstr "Adresse e-mail invalide"
#: src/views/members/index.tsx:169 #: src/views/members/index.tsx:169
msgid "Invite" msgid "Invite"
msgstr "Inviter" msgstr "Inviter"
#: src/views/members/components/InviteMemberForm.tsx:82 #: src/views/members/components/InviteMemberForm.tsx:113
msgid "Invite another"
msgstr "Inviter un autre"
#: src/views/members/components/InviteMemberForm.tsx:123
#: src/views/card/components/MemberSelector.tsx:112 #: src/views/card/components/MemberSelector.tsx:112
msgid "Invite member" msgid "Invite member"
msgstr "Inviter un membre" msgstr "Inviter un membre"
@@ -1060,6 +1083,7 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40 #: src/views/settings/components/DeleteAccountConfirmation.tsx:40
#: src/views/settings/components/Avatar.tsx:40 #: src/views/settings/components/Avatar.tsx:40
#: src/views/settings/components/Avatar.tsx:98 #: src/views/settings/components/Avatar.tsx:98
#: src/views/members/components/InviteMemberForm.tsx:64
#: src/views/members/components/DeleteMemberConfirmation.tsx:28 #: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/card/index.tsx:159 #: src/views/card/index.tsx:159
#: src/views/card/components/NewCommentForm.tsx:31 #: src/views/card/components/NewCommentForm.tsx:31
@@ -1068,7 +1092,7 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
#: src/views/card/components/LabelSelector.tsx:73 #: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/DeleteCommentConfirmation.tsx:45 #: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/DeleteCardConfirmation.tsx:52 #: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/Comment.tsx:62 #: src/views/card/components/Comment.tsx:64
#: src/views/boards/components/ImportBoardsForm.tsx:205 #: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/board/index.tsx:135 #: src/views/board/index.tsx:135
#: src/views/board/index.tsx:191 #: src/views/board/index.tsx:191
@@ -1078,6 +1102,7 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
#: src/views/board/components/NewCardForm.tsx:145 #: src/views/board/components/NewCardForm.tsx:145
#: src/components/NewWorkspaceForm.tsx:41 #: src/components/NewWorkspaceForm.tsx:41
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/DeleteLabelConfirmation.tsx:23
msgid "Please try again later, or contact customer support." msgid "Please try again later, or contact customer support."
msgstr "Veuillez réessayer plus tard ou contacter le service client." msgstr "Veuillez réessayer plus tard ou contacter le service client."
@@ -1188,7 +1213,7 @@ msgstr "Rôle"
msgid "Run on your own infrastructure" msgid "Run on your own infrastructure"
msgstr "Exécutez sur votre propre infrastructure" msgstr "Exécutez sur votre propre infrastructure"
#: src/views/card/components/Comment.tsx:163 #: src/views/card/components/Comment.tsx:165
msgid "Save" msgid "Save"
msgstr "Enregistrer" msgstr "Enregistrer"
@@ -1336,10 +1361,11 @@ msgstr "Ils ne pourront plus accéder à cet espace de travail."
#: src/views/card/components/DeleteCommentConfirmation.tsx:68 #: src/views/card/components/DeleteCommentConfirmation.tsx:68
#: src/views/card/components/DeleteCardConfirmation.tsx:78 #: src/views/card/components/DeleteCardConfirmation.tsx:78
#: src/components/DeleteLabelConfirmation.tsx:42
msgid "This action can't be undone." msgid "This action can't be undone."
msgstr "Cette action ne peut pas être annulée." msgstr "Cette action ne peut pas être annulée."
#: src/views/public/board/index.tsx:140 #: src/views/public/board/index.tsx:146
msgid "This board is private or does not exist" msgid "This board is private or does not exist"
msgstr "Ce tableau est privé ou n'existe pas" msgstr "Ce tableau est privé ou n'existe pas"
@@ -1429,7 +1455,7 @@ msgstr "Impossible de mettre à jour la visibilité du tableau"
msgid "Unable to update card" msgid "Unable to update card"
msgstr "Impossible de mettre à jour la carte" msgstr "Impossible de mettre à jour la carte"
#: src/views/card/components/Comment.tsx:61 #: src/views/card/components/Comment.tsx:63
msgid "Unable to update comment" msgid "Unable to update comment"
msgstr "Impossible de mettre à jour le commentaire" msgstr "Impossible de mettre à jour le commentaire"
@@ -1531,6 +1557,10 @@ msgstr "Utiliser le modèle"
msgid "User" msgid "User"
msgstr "Utilisateur" msgstr "Utilisateur"
#: src/views/members/components/InviteMemberForm.tsx:58
msgid "User is already a member of this workspace"
msgstr "L'utilisateur est déjà membre de cet espace de travail"
#: src/views/boards/components/TemplateBoards.tsx:37 #: src/views/boards/components/TemplateBoards.tsx:37
msgid "Video" msgid "Video"
msgstr "Vidéo" msgstr "Vidéo"
@@ -1547,11 +1577,15 @@ msgstr "Consultez et gérez votre facturation et votre abonnement."
msgid "View docs" msgid "View docs"
msgstr "Voir la documentation" msgstr "Voir la documentation"
#: src/views/public/board/index.tsx:120
msgid "View only"
msgstr "Affichage uniquement"
#: src/views/home/components/Features.tsx:147 #: src/views/home/components/Features.tsx:147
msgid "View our roadmap." msgid "View our roadmap."
msgstr "Consultez notre feuille de route." msgstr "Consultez notre feuille de route."
#: src/views/public/board/index.tsx:143 #: src/views/public/board/index.tsx:149
msgid "View workspace" msgid "View workspace"
msgstr "Voir l'espace de travail" msgstr "Voir l'espace de travail"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/views/card/components/Comment.tsx:121 #: src/views/card/components/Comment.tsx:123
msgid " (edited)" msgid " (edited)"
msgstr " (modificato)" msgstr " (modificato)"
@@ -48,7 +48,7 @@ msgstr "Un'app kanban potente e flessibile che ti aiuta a organizzare il lavoro,
msgid "Account deleted" msgid "Account deleted"
msgstr "Account eliminato" msgstr "Account eliminato"
#: src/views/public/board/CardModal.tsx:104 #: src/views/public/board/CardModal.tsx:128
#: src/views/card/index.tsx:256 #: src/views/card/index.tsx:256
msgid "Activity" msgid "Activity"
msgstr "Attività" msgstr "Attività"
@@ -62,7 +62,7 @@ msgid "Add a card"
msgstr "Aggiungi una carta" msgstr "Aggiungi una carta"
#: src/views/card/components/NewCommentForm.tsx:57 #: src/views/card/components/NewCommentForm.tsx:57
#: src/views/card/components/Comment.tsx:144 #: src/views/card/components/Comment.tsx:146
msgid "Add a comment..." msgid "Add a comment..."
msgstr "Aggiungi un commento..." msgstr "Aggiungi un commento..."
@@ -75,7 +75,7 @@ msgstr "Aggiungi descrizione... (digita '/' per aprire i comandi)"
msgid "Add label" msgid "Add label"
msgstr "Aggiungi etichetta" msgstr "Aggiungi etichetta"
#: src/views/members/components/InviteMemberForm.tsx:50 #: src/views/members/components/InviteMemberForm.tsx:85
#: src/views/card/components/MemberSelector.tsx:130 #: src/views/card/components/MemberSelector.tsx:130
msgid "Add member" msgid "Add member"
msgstr "Aggiungi membro" msgstr "Aggiungi membro"
@@ -145,6 +145,10 @@ msgstr "Sei sicuro di voler eliminare questa carta?"
msgid "Are you sure you want to delete this comment?" msgid "Are you sure you want to delete this comment?"
msgstr "Sei sicuro di voler eliminare questo commento?" msgstr "Sei sicuro di voler eliminare questo commento?"
#: src/components/DeleteLabelConfirmation.tsx:39
msgid "Are you sure you want to delete this label?"
msgstr "Sei sicuro di voler eliminare questa etichetta?"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:54 #: src/views/settings/components/DeleteAccountConfirmation.tsx:54
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Sei sicuro di voler eliminare il tuo account?" msgstr "Sei sicuro di voler eliminare il tuo account?"
@@ -190,7 +194,7 @@ msgstr "Il nome della bacheca non può superare i 100 caratteri"
msgid "Board name is required" msgid "Board name is required"
msgstr "Il nome della bacheca è obbligatorio" msgstr "Il nome della bacheca è obbligatorio"
#: src/views/public/board/index.tsx:137 #: src/views/public/board/index.tsx:143
#: src/views/board/index.tsx:358 #: src/views/board/index.tsx:358
msgid "Board not found" msgid "Board not found"
msgstr "Bacheca non trovata" msgstr "Bacheca non trovata"
@@ -247,7 +251,8 @@ msgstr "Segnalazione bug"
#: src/views/members/components/DeleteMemberConfirmation.tsx:55 #: src/views/members/components/DeleteMemberConfirmation.tsx:55
#: src/views/card/components/DeleteCommentConfirmation.tsx:76 #: src/views/card/components/DeleteCommentConfirmation.tsx:76
#: src/views/card/components/DeleteCardConfirmation.tsx:86 #: src/views/card/components/DeleteCardConfirmation.tsx:86
#: src/views/card/components/Comment.tsx:156 #: src/views/card/components/Comment.tsx:158
#: src/components/DeleteLabelConfirmation.tsx:47
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
@@ -418,6 +423,7 @@ msgstr "Scuro"
#: src/views/card/components/DeleteCommentConfirmation.tsx:82 #: src/views/card/components/DeleteCommentConfirmation.tsx:82
#: src/views/card/components/DeleteCardConfirmation.tsx:92 #: src/views/card/components/DeleteCardConfirmation.tsx:92
#: src/components/LabelForm.tsx:226 #: src/components/LabelForm.tsx:226
#: src/components/DeleteLabelConfirmation.tsx:49
msgid "Delete" msgid "Delete"
msgstr "Elimina" msgstr "Elimina"
@@ -435,7 +441,7 @@ msgstr "Elimina bacheca"
msgid "Delete card" msgid "Delete card"
msgstr "Elimina carta" msgstr "Elimina carta"
#: src/views/card/components/Comment.tsx:89 #: src/views/card/components/Comment.tsx:91
msgid "Delete comment" msgid "Delete comment"
msgstr "Elimina commento" msgstr "Elimina commento"
@@ -511,7 +517,7 @@ msgstr "Fatto"
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Modifica URL della bacheca" msgstr "Modifica URL della bacheca"
#: src/views/card/components/Comment.tsx:80 #: src/views/card/components/Comment.tsx:82
msgid "Edit comment" msgid "Edit comment"
msgstr "Modifica commento" msgstr "Modifica commento"
@@ -531,7 +537,7 @@ msgstr "Modifica"
msgid "email" msgid "email"
msgstr "email" msgstr "email"
#: src/views/members/components/InviteMemberForm.tsx:64 #: src/views/members/components/InviteMemberForm.tsx:99
msgid "Email" msgid "Email"
msgstr "Email" msgstr "Email"
@@ -555,6 +561,10 @@ msgstr "Inserisci la tua password"
msgid "Error deleting account" msgid "Error deleting account"
msgstr "Errore durante l'eliminazione dell'account" msgstr "Errore durante l'eliminazione dell'account"
#: src/components/DeleteLabelConfirmation.tsx:22
msgid "Error deleting label"
msgstr "Errore durante l'eliminazione dell'etichetta"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45 #: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
msgid "Error deleting workspace" msgid "Error deleting workspace"
msgstr "Errore durante l'eliminazione dell'area di lavoro" msgstr "Errore durante l'eliminazione dell'area di lavoro"
@@ -563,6 +573,11 @@ msgstr "Errore durante l'eliminazione dell'area di lavoro"
msgid "Error disconnecting Trello" msgid "Error disconnecting Trello"
msgstr "Errore durante la disconnessione da Trello" msgstr "Errore durante la disconnessione da Trello"
#: src/views/members/components/InviteMemberForm.tsx:57
#: src/views/members/components/InviteMemberForm.tsx:63
msgid "Error inviting member"
msgstr "Errore durante l'invito del membro"
#: src/views/settings/components/UpdateDisplayNameForm.tsx:54 #: src/views/settings/components/UpdateDisplayNameForm.tsx:54
msgid "Error updating display name" msgid "Error updating display name"
msgstr "Errore durante l'aggiornamento del nome visualizzato" msgstr "Errore durante l'aggiornamento del nome visualizzato"
@@ -800,11 +815,19 @@ msgstr "Integrazioni"
msgid "Interviewing" msgid "Interviewing"
msgstr "Colloquio" msgstr "Colloquio"
#: src/views/members/components/InviteMemberForm.tsx:26
msgid "Invalid email address"
msgstr "Indirizzo email non valido"
#: src/views/members/index.tsx:169 #: src/views/members/index.tsx:169
msgid "Invite" msgid "Invite"
msgstr "Invita" msgstr "Invita"
#: src/views/members/components/InviteMemberForm.tsx:82 #: src/views/members/components/InviteMemberForm.tsx:113
msgid "Invite another"
msgstr "Invita un altro"
#: src/views/members/components/InviteMemberForm.tsx:123
#: src/views/card/components/MemberSelector.tsx:112 #: src/views/card/components/MemberSelector.tsx:112
msgid "Invite member" msgid "Invite member"
msgstr "Invita membro" msgstr "Invita membro"
@@ -1060,6 +1083,7 @@ msgstr "Seleziona un file da caricare."
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40 #: src/views/settings/components/DeleteAccountConfirmation.tsx:40
#: src/views/settings/components/Avatar.tsx:40 #: src/views/settings/components/Avatar.tsx:40
#: src/views/settings/components/Avatar.tsx:98 #: src/views/settings/components/Avatar.tsx:98
#: src/views/members/components/InviteMemberForm.tsx:64
#: src/views/members/components/DeleteMemberConfirmation.tsx:28 #: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/card/index.tsx:159 #: src/views/card/index.tsx:159
#: src/views/card/components/NewCommentForm.tsx:31 #: src/views/card/components/NewCommentForm.tsx:31
@@ -1068,7 +1092,7 @@ msgstr "Seleziona un file da caricare."
#: src/views/card/components/LabelSelector.tsx:73 #: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/DeleteCommentConfirmation.tsx:45 #: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/DeleteCardConfirmation.tsx:52 #: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/Comment.tsx:62 #: src/views/card/components/Comment.tsx:64
#: src/views/boards/components/ImportBoardsForm.tsx:205 #: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/board/index.tsx:135 #: src/views/board/index.tsx:135
#: src/views/board/index.tsx:191 #: src/views/board/index.tsx:191
@@ -1078,6 +1102,7 @@ msgstr "Seleziona un file da caricare."
#: src/views/board/components/NewCardForm.tsx:145 #: src/views/board/components/NewCardForm.tsx:145
#: src/components/NewWorkspaceForm.tsx:41 #: src/components/NewWorkspaceForm.tsx:41
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/DeleteLabelConfirmation.tsx:23
msgid "Please try again later, or contact customer support." msgid "Please try again later, or contact customer support."
msgstr "Riprova più tardi o contatta l'assistenza clienti." msgstr "Riprova più tardi o contatta l'assistenza clienti."
@@ -1188,7 +1213,7 @@ msgstr "Ruolo"
msgid "Run on your own infrastructure" msgid "Run on your own infrastructure"
msgstr "Esegui sulla tua infrastruttura" msgstr "Esegui sulla tua infrastruttura"
#: src/views/card/components/Comment.tsx:163 #: src/views/card/components/Comment.tsx:165
msgid "Save" msgid "Save"
msgstr "Salva" msgstr "Salva"
@@ -1336,10 +1361,11 @@ msgstr "Non potranno accedere a questo spazio di lavoro."
#: src/views/card/components/DeleteCommentConfirmation.tsx:68 #: src/views/card/components/DeleteCommentConfirmation.tsx:68
#: src/views/card/components/DeleteCardConfirmation.tsx:78 #: src/views/card/components/DeleteCardConfirmation.tsx:78
#: src/components/DeleteLabelConfirmation.tsx:42
msgid "This action can't be undone." msgid "This action can't be undone."
msgstr "Questa azione non può essere annullata." msgstr "Questa azione non può essere annullata."
#: src/views/public/board/index.tsx:140 #: src/views/public/board/index.tsx:146
msgid "This board is private or does not exist" msgid "This board is private or does not exist"
msgstr "Questa bacheca è privata o non esiste" msgstr "Questa bacheca è privata o non esiste"
@@ -1429,7 +1455,7 @@ msgstr "Impossibile aggiornare la visibilità della bacheca"
msgid "Unable to update card" msgid "Unable to update card"
msgstr "Impossibile aggiornare la scheda" msgstr "Impossibile aggiornare la scheda"
#: src/views/card/components/Comment.tsx:61 #: src/views/card/components/Comment.tsx:63
msgid "Unable to update comment" msgid "Unable to update comment"
msgstr "Impossibile aggiornare il commento" msgstr "Impossibile aggiornare il commento"
@@ -1531,6 +1557,10 @@ msgstr "Usa template"
msgid "User" msgid "User"
msgstr "Utente" msgstr "Utente"
#: src/views/members/components/InviteMemberForm.tsx:58
msgid "User is already a member of this workspace"
msgstr "L'utente è già membro di questo spazio di lavoro"
#: src/views/boards/components/TemplateBoards.tsx:37 #: src/views/boards/components/TemplateBoards.tsx:37
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
@@ -1547,11 +1577,15 @@ msgstr "Visualizza e gestisci la tua fatturazione e abbonamento."
msgid "View docs" msgid "View docs"
msgstr "Visualizza documenti" msgstr "Visualizza documenti"
#: src/views/public/board/index.tsx:120
msgid "View only"
msgstr "Solo visualizzazione"
#: src/views/home/components/Features.tsx:147 #: src/views/home/components/Features.tsx:147
msgid "View our roadmap." msgid "View our roadmap."
msgstr "Visualizza la nostra roadmap." msgstr "Visualizza la nostra roadmap."
#: src/views/public/board/index.tsx:143 #: src/views/public/board/index.tsx:149
msgid "View workspace" msgid "View workspace"
msgstr "Visualizza spazio di lavoro" msgstr "Visualizza spazio di lavoro"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/views/card/components/Comment.tsx:121 #: src/views/card/components/Comment.tsx:123
msgid " (edited)" msgid " (edited)"
msgstr " (bewerkt)" msgstr " (bewerkt)"
@@ -48,7 +48,7 @@ msgstr "Een krachtige, flexibele kanban-app die je helpt werk te organiseren, vo
msgid "Account deleted" msgid "Account deleted"
msgstr "Account verwijderd" msgstr "Account verwijderd"
#: src/views/public/board/CardModal.tsx:104 #: src/views/public/board/CardModal.tsx:128
#: src/views/card/index.tsx:256 #: src/views/card/index.tsx:256
msgid "Activity" msgid "Activity"
msgstr "Activiteit" msgstr "Activiteit"
@@ -62,7 +62,7 @@ msgid "Add a card"
msgstr "Voeg een kaart toe" msgstr "Voeg een kaart toe"
#: src/views/card/components/NewCommentForm.tsx:57 #: src/views/card/components/NewCommentForm.tsx:57
#: src/views/card/components/Comment.tsx:144 #: src/views/card/components/Comment.tsx:146
msgid "Add a comment..." msgid "Add a comment..."
msgstr "Voeg een reactie toe..." msgstr "Voeg een reactie toe..."
@@ -75,7 +75,7 @@ msgstr "Voeg beschrijving toe... (typ '/' om commando's te openen)"
msgid "Add label" msgid "Add label"
msgstr "Label toevoegen" msgstr "Label toevoegen"
#: src/views/members/components/InviteMemberForm.tsx:50 #: src/views/members/components/InviteMemberForm.tsx:85
#: src/views/card/components/MemberSelector.tsx:130 #: src/views/card/components/MemberSelector.tsx:130
msgid "Add member" msgid "Add member"
msgstr "Lid toevoegen" msgstr "Lid toevoegen"
@@ -145,6 +145,10 @@ msgstr "Weet je zeker dat je deze kaart wilt verwijderen?"
msgid "Are you sure you want to delete this comment?" msgid "Are you sure you want to delete this comment?"
msgstr "Weet je zeker dat je deze opmerking wilt verwijderen?" msgstr "Weet je zeker dat je deze opmerking wilt verwijderen?"
#: src/components/DeleteLabelConfirmation.tsx:39
msgid "Are you sure you want to delete this label?"
msgstr "Weet je zeker dat je dit label wilt verwijderen?"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:54 #: src/views/settings/components/DeleteAccountConfirmation.tsx:54
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Weet je zeker dat je je account wilt verwijderen?" msgstr "Weet je zeker dat je je account wilt verwijderen?"
@@ -190,7 +194,7 @@ msgstr "Bordnaam mag niet langer zijn dan 100 tekens"
msgid "Board name is required" msgid "Board name is required"
msgstr "Bordnaam is verplicht" msgstr "Bordnaam is verplicht"
#: src/views/public/board/index.tsx:137 #: src/views/public/board/index.tsx:143
#: src/views/board/index.tsx:358 #: src/views/board/index.tsx:358
msgid "Board not found" msgid "Board not found"
msgstr "Bord niet gevonden" msgstr "Bord niet gevonden"
@@ -247,7 +251,8 @@ msgstr "Bugrapport"
#: src/views/members/components/DeleteMemberConfirmation.tsx:55 #: src/views/members/components/DeleteMemberConfirmation.tsx:55
#: src/views/card/components/DeleteCommentConfirmation.tsx:76 #: src/views/card/components/DeleteCommentConfirmation.tsx:76
#: src/views/card/components/DeleteCardConfirmation.tsx:86 #: src/views/card/components/DeleteCardConfirmation.tsx:86
#: src/views/card/components/Comment.tsx:156 #: src/views/card/components/Comment.tsx:158
#: src/components/DeleteLabelConfirmation.tsx:47
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
@@ -418,6 +423,7 @@ msgstr "Donker"
#: src/views/card/components/DeleteCommentConfirmation.tsx:82 #: src/views/card/components/DeleteCommentConfirmation.tsx:82
#: src/views/card/components/DeleteCardConfirmation.tsx:92 #: src/views/card/components/DeleteCardConfirmation.tsx:92
#: src/components/LabelForm.tsx:226 #: src/components/LabelForm.tsx:226
#: src/components/DeleteLabelConfirmation.tsx:49
msgid "Delete" msgid "Delete"
msgstr "Verwijderen" msgstr "Verwijderen"
@@ -435,7 +441,7 @@ msgstr "Board verwijderen"
msgid "Delete card" msgid "Delete card"
msgstr "Kaart verwijderen" msgstr "Kaart verwijderen"
#: src/views/card/components/Comment.tsx:89 #: src/views/card/components/Comment.tsx:91
msgid "Delete comment" msgid "Delete comment"
msgstr "Reactie verwijderen" msgstr "Reactie verwijderen"
@@ -511,7 +517,7 @@ msgstr "Klaar"
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Board URL bewerken" msgstr "Board URL bewerken"
#: src/views/card/components/Comment.tsx:80 #: src/views/card/components/Comment.tsx:82
msgid "Edit comment" msgid "Edit comment"
msgstr "Reactie bewerken" msgstr "Reactie bewerken"
@@ -531,7 +537,7 @@ msgstr "Bewerken"
msgid "email" msgid "email"
msgstr "e-mail" msgstr "e-mail"
#: src/views/members/components/InviteMemberForm.tsx:64 #: src/views/members/components/InviteMemberForm.tsx:99
msgid "Email" msgid "Email"
msgstr "E-mail" msgstr "E-mail"
@@ -555,6 +561,10 @@ msgstr "Voer je wachtwoord in"
msgid "Error deleting account" msgid "Error deleting account"
msgstr "Fout bij verwijderen account" msgstr "Fout bij verwijderen account"
#: src/components/DeleteLabelConfirmation.tsx:22
msgid "Error deleting label"
msgstr "Fout bij het verwijderen van label"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45 #: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
msgid "Error deleting workspace" msgid "Error deleting workspace"
msgstr "Fout bij verwijderen werkruimte" msgstr "Fout bij verwijderen werkruimte"
@@ -563,6 +573,11 @@ msgstr "Fout bij verwijderen werkruimte"
msgid "Error disconnecting Trello" msgid "Error disconnecting Trello"
msgstr "Fout bij ontkoppelen van Trello" msgstr "Fout bij ontkoppelen van Trello"
#: src/views/members/components/InviteMemberForm.tsx:57
#: src/views/members/components/InviteMemberForm.tsx:63
msgid "Error inviting member"
msgstr "Fout bij het uitnodigen van lid"
#: src/views/settings/components/UpdateDisplayNameForm.tsx:54 #: src/views/settings/components/UpdateDisplayNameForm.tsx:54
msgid "Error updating display name" msgid "Error updating display name"
msgstr "Fout bij bijwerken weergavenaam" msgstr "Fout bij bijwerken weergavenaam"
@@ -800,11 +815,19 @@ msgstr "Integraties"
msgid "Interviewing" msgid "Interviewing"
msgstr "Interviewen" msgstr "Interviewen"
#: src/views/members/components/InviteMemberForm.tsx:26
msgid "Invalid email address"
msgstr "Ongeldig e-mailadres"
#: src/views/members/index.tsx:169 #: src/views/members/index.tsx:169
msgid "Invite" msgid "Invite"
msgstr "Uitnodigen" msgstr "Uitnodigen"
#: src/views/members/components/InviteMemberForm.tsx:82 #: src/views/members/components/InviteMemberForm.tsx:113
msgid "Invite another"
msgstr "Nog iemand uitnodigen"
#: src/views/members/components/InviteMemberForm.tsx:123
#: src/views/card/components/MemberSelector.tsx:112 #: src/views/card/components/MemberSelector.tsx:112
msgid "Invite member" msgid "Invite member"
msgstr "Lid uitnodigen" msgstr "Lid uitnodigen"
@@ -1060,6 +1083,7 @@ msgstr "Selecteer een bestand om te uploaden."
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40 #: src/views/settings/components/DeleteAccountConfirmation.tsx:40
#: src/views/settings/components/Avatar.tsx:40 #: src/views/settings/components/Avatar.tsx:40
#: src/views/settings/components/Avatar.tsx:98 #: src/views/settings/components/Avatar.tsx:98
#: src/views/members/components/InviteMemberForm.tsx:64
#: src/views/members/components/DeleteMemberConfirmation.tsx:28 #: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/card/index.tsx:159 #: src/views/card/index.tsx:159
#: src/views/card/components/NewCommentForm.tsx:31 #: src/views/card/components/NewCommentForm.tsx:31
@@ -1068,7 +1092,7 @@ msgstr "Selecteer een bestand om te uploaden."
#: src/views/card/components/LabelSelector.tsx:73 #: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/DeleteCommentConfirmation.tsx:45 #: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/DeleteCardConfirmation.tsx:52 #: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/Comment.tsx:62 #: src/views/card/components/Comment.tsx:64
#: src/views/boards/components/ImportBoardsForm.tsx:205 #: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/board/index.tsx:135 #: src/views/board/index.tsx:135
#: src/views/board/index.tsx:191 #: src/views/board/index.tsx:191
@@ -1078,6 +1102,7 @@ msgstr "Selecteer een bestand om te uploaden."
#: src/views/board/components/NewCardForm.tsx:145 #: src/views/board/components/NewCardForm.tsx:145
#: src/components/NewWorkspaceForm.tsx:41 #: src/components/NewWorkspaceForm.tsx:41
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/DeleteLabelConfirmation.tsx:23
msgid "Please try again later, or contact customer support." msgid "Please try again later, or contact customer support."
msgstr "Probeer het later opnieuw of neem contact op met de klantenservice." msgstr "Probeer het later opnieuw of neem contact op met de klantenservice."
@@ -1188,7 +1213,7 @@ msgstr "Rol"
msgid "Run on your own infrastructure" msgid "Run on your own infrastructure"
msgstr "Draai op je eigen infrastructuur" msgstr "Draai op je eigen infrastructuur"
#: src/views/card/components/Comment.tsx:163 #: src/views/card/components/Comment.tsx:165
msgid "Save" msgid "Save"
msgstr "Opslaan" msgstr "Opslaan"
@@ -1336,10 +1361,11 @@ msgstr "Ze zullen geen toegang meer hebben tot deze werkruimte."
#: src/views/card/components/DeleteCommentConfirmation.tsx:68 #: src/views/card/components/DeleteCommentConfirmation.tsx:68
#: src/views/card/components/DeleteCardConfirmation.tsx:78 #: src/views/card/components/DeleteCardConfirmation.tsx:78
#: src/components/DeleteLabelConfirmation.tsx:42
msgid "This action can't be undone." msgid "This action can't be undone."
msgstr "Deze actie kan niet ongedaan worden gemaakt." msgstr "Deze actie kan niet ongedaan worden gemaakt."
#: src/views/public/board/index.tsx:140 #: src/views/public/board/index.tsx:146
msgid "This board is private or does not exist" msgid "This board is private or does not exist"
msgstr "Dit bord is privé of bestaat niet" msgstr "Dit bord is privé of bestaat niet"
@@ -1429,7 +1455,7 @@ msgstr "Kan bordzichtbaarheid niet bijwerken"
msgid "Unable to update card" msgid "Unable to update card"
msgstr "Kan kaart niet bijwerken" msgstr "Kan kaart niet bijwerken"
#: src/views/card/components/Comment.tsx:61 #: src/views/card/components/Comment.tsx:63
msgid "Unable to update comment" msgid "Unable to update comment"
msgstr "Kan reactie niet bijwerken" msgstr "Kan reactie niet bijwerken"
@@ -1531,6 +1557,10 @@ msgstr "Sjabloon gebruiken"
msgid "User" msgid "User"
msgstr "Gebruiker" msgstr "Gebruiker"
#: src/views/members/components/InviteMemberForm.tsx:58
msgid "User is already a member of this workspace"
msgstr "Gebruiker is al lid van deze werkruimte"
#: src/views/boards/components/TemplateBoards.tsx:37 #: src/views/boards/components/TemplateBoards.tsx:37
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
@@ -1547,11 +1577,15 @@ msgstr "Bekijk en beheer je facturering en abonnement."
msgid "View docs" msgid "View docs"
msgstr "Bekijk documentatie" msgstr "Bekijk documentatie"
#: src/views/public/board/index.tsx:120
msgid "View only"
msgstr "Alleen bekijken"
#: src/views/home/components/Features.tsx:147 #: src/views/home/components/Features.tsx:147
msgid "View our roadmap." msgid "View our roadmap."
msgstr "Bekijk onze roadmap." msgstr "Bekijk onze roadmap."
#: src/views/public/board/index.tsx:143 #: src/views/public/board/index.tsx:149
msgid "View workspace" msgid "View workspace"
msgstr "Werkruimte bekijken" msgstr "Werkruimte bekijken"

File diff suppressed because one or more lines are too long

View File

@@ -155,11 +155,13 @@ const ActivityList = ({
cardPublicId, cardPublicId,
isLoading, isLoading,
isAdmin, isAdmin,
isViewOnly,
}: { }: {
activities: NonNullable<GetCardByIdOutput>["activities"]; activities: NonNullable<GetCardByIdOutput>["activities"];
cardPublicId: string; cardPublicId: string;
isLoading: boolean; isLoading: boolean;
isAdmin?: boolean; isAdmin?: boolean;
isViewOnly?: boolean;
}) => { }) => {
const { data } = authClient.useSession(); const { data } = authClient.useSession();
const { locale } = useLocalisation(); const { locale } = useLocalisation();
@@ -193,6 +195,7 @@ const ActivityList = ({
isEdited={!!activity.comment?.updatedAt} isEdited={!!activity.comment?.updatedAt}
isAuthor={activity.comment?.createdBy === data?.user.id} isAuthor={activity.comment?.createdBy === data?.user.id}
isAdmin={isAdmin ?? false} isAdmin={isAdmin ?? false}
isViewOnly={!!isViewOnly}
/> />
); );

View File

@@ -27,6 +27,7 @@ const Comment = ({
isAuthor, isAuthor,
isAdmin, isAdmin,
isEdited = false, isEdited = false,
isViewOnly = false,
}: { }: {
publicId: string | undefined; publicId: string | undefined;
cardPublicId: string; cardPublicId: string;
@@ -38,6 +39,7 @@ const Comment = ({
isAuthor: boolean; isAuthor: boolean;
isAdmin: boolean; isAdmin: boolean;
isEdited: boolean; isEdited: boolean;
isViewOnly: boolean;
}) => { }) => {
const [isEditing, setIsEditing] = useState(false); const [isEditing, setIsEditing] = useState(false);
const utils = api.useUtils(); const utils = api.useUtils();
@@ -124,7 +126,7 @@ const Comment = ({
</p> </p>
</div> </div>
{dropdownItems.length > 0 && ( {dropdownItems.length > 0 && !isViewOnly && (
<div className="absolute right-4 top-4"> <div className="absolute right-4 top-4">
<Dropdown items={dropdownItems}> <Dropdown items={dropdownItems}>
<HiEllipsisHorizontal className="h-5 w-5 text-light-900 dark:text-dark-800" /> <HiEllipsisHorizontal className="h-5 w-5 text-light-900 dark:text-dark-800" />

View File

@@ -1,26 +1,43 @@
import { zodResolver } from "@hookform/resolvers/zod";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { useEffect } from "react"; import { useEffect, useState } from "react";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { HiXMark } from "react-icons/hi2"; import { HiXMark } from "react-icons/hi2";
import { z } from "zod";
import type { InviteMemberInput } from "@kan/api/types"; import type { InviteMemberInput } from "@kan/api/types";
import Button from "~/components/Button"; import Button from "~/components/Button";
import Input from "~/components/Input"; import Input from "~/components/Input";
import Toggle from "~/components/Toggle";
import { useModal } from "~/providers/modal"; import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup";
import { useWorkspace } from "~/providers/workspace"; import { useWorkspace } from "~/providers/workspace";
import { api } from "~/utils/api"; import { api } from "~/utils/api";
export function InviteMemberForm() { export function InviteMemberForm() {
const utils = api.useUtils(); const utils = api.useUtils();
const [isCreateAnotherEnabled, setIsCreateAnotherEnabled] = useState(false);
const { closeModal } = useModal(); const { closeModal } = useModal();
const { workspace } = useWorkspace(); const { workspace } = useWorkspace();
const { showPopup } = usePopup();
const { register, handleSubmit } = useForm<InviteMemberInput>({ const InviteMemberSchema = z.object({
email: z.string().email({ message: t`Invalid email address` }),
workspacePublicId: z.string(),
});
const {
register,
handleSubmit,
reset,
formState: { errors },
} = useForm<InviteMemberInput>({
defaultValues: { defaultValues: {
email: "", email: "",
workspacePublicId: workspace.publicId || "", workspacePublicId: workspace.publicId || "",
}, },
resolver: zodResolver(InviteMemberSchema),
}); });
const refetchBoards = () => utils.board.all.refetch(); const refetchBoards = () => utils.board.all.refetch();
@@ -31,6 +48,24 @@ export function InviteMemberForm() {
await utils.workspace.byId.refetch(); await utils.workspace.byId.refetch();
await refetchBoards(); await refetchBoards();
}, },
onError: (error) => {
reset();
if (!isCreateAnotherEnabled) closeModal();
if (error.data?.code === "CONFLICT") {
showPopup({
header: t`Error inviting member`,
message: t`User is already a member of this workspace`,
icon: "error",
});
} else {
showPopup({
header: t`Error inviting member`,
message: t`Please try again later, or contact customer support.`,
icon: "error",
});
}
},
}); });
const onSubmit = (data: InviteMemberInput) => { const onSubmit = (data: InviteMemberInput) => {
@@ -69,10 +104,16 @@ export function InviteMemberForm() {
await handleSubmit(onSubmit)(); await handleSubmit(onSubmit)();
} }
}} }}
errorMessage={errors.email?.message}
/> />
</div> </div>
<div className="mt-12 flex items-center justify-end border-t border-light-600 px-5 pb-5 pt-5 dark:border-dark-600"> <div className="mt-12 flex items-center justify-end border-t border-light-600 px-5 pb-5 pt-5 dark:border-dark-600">
<Toggle
label={t`Invite another`}
isChecked={isCreateAnotherEnabled}
onChange={() => setIsCreateAnotherEnabled(!isCreateAnotherEnabled)}
/>
<div> <div>
<Button <Button
type="submit" type="submit"

View File

@@ -1,10 +1,11 @@
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { useEffect, useRef, useState } from "react";
import { HiXMark } from "react-icons/hi2"; import { HiXMark } from "react-icons/hi2";
import { authClient } from "@kan/auth/client"; import Badge from "~/components/Badge";
import Editor from "~/components/Editor"; import Editor from "~/components/Editor";
import LabelIcon from "~/components/LabelIcon";
import { useModal } from "~/providers/modal"; import { useModal } from "~/providers/modal";
import { api } from "~/utils/api"; import { api } from "~/utils/api";
import ActivityList from "~/views/card/components/ActivityList"; import ActivityList from "~/views/card/components/ActivityList";
@@ -20,7 +21,9 @@ export function CardModal({
}) { }) {
const router = useRouter(); const router = useRouter();
const { closeModal, isOpen } = useModal(); const { closeModal, isOpen } = useModal();
const { data: session } = authClient.useSession(); const [showFade, setShowFade] = useState(false);
const [showTopFade, setShowTopFade] = useState(false);
const scrollRef = useRef<HTMLDivElement>(null);
const { data, isLoading } = api.card.byId.useQuery( const { data, isLoading } = api.card.byId.useQuery(
{ {
@@ -33,85 +36,115 @@ export function CardModal({
const labels = data?.labels ?? []; const labels = data?.labels ?? [];
const handleScroll = () => {
if (!scrollRef.current) return;
const { scrollTop, scrollHeight, clientHeight } = scrollRef.current;
const isAtBottom = scrollTop + clientHeight >= scrollHeight - 5;
const isAtTop = scrollTop <= 5;
setShowFade(!isAtBottom);
setShowTopFade(!isAtTop);
};
useEffect(() => {
const scrollElement = scrollRef.current;
if (!scrollElement) return;
handleScroll();
scrollElement.addEventListener("scroll", handleScroll);
return () => scrollElement.removeEventListener("scroll", handleScroll);
}, [data]);
return ( return (
<div className="flex h-full flex-1 flex-row"> <div className="flex h-full flex-1 flex-row">
<div className="flex h-full w-full flex-col overflow-hidden"> <div className="flex h-full w-full flex-col overflow-hidden">
<div className="h-full max-h-[calc(100vh-4rem)] overflow-y-auto p-8"> <div className="h-full p-8">
<div className="flex w-full items-center justify-between">
<button
className="absolute right-[2rem] top-[2rem] rounded p-1 hover:bg-light-300 focus:outline-none dark:hover:bg-dark-300"
onClick={async (e) => {
e.preventDefault();
closeModal();
try {
await router.replace(
`/${workspaceSlug}/${boardSlug}`,
undefined,
{
shallow: true,
},
);
} catch (error) {
console.error(error);
}
}}
>
<HiXMark
size={18}
className="dark:text-dark-9000 text-light-900"
/>
</button>
{isLoading ? (
<div className="flex space-x-2">
<div className="h-[2.3rem] w-[300px] animate-pulse rounded-[5px] bg-light-300 dark:bg-dark-300" />
</div>
) : (
<>
<h1 className="font-medium leading-[2.3rem] tracking-tight text-neutral-900 dark:text-dark-1000 sm:text-[1.2rem]">
{data?.title}
</h1>
</>
)}
</div>
<div className="mb-6"> <div className="mb-6">
{labels.map((label) => ( <div className="flex w-full items-center justify-between">
<div <button
key={label.publicId} className="absolute right-[2rem] top-[2rem] rounded p-1 hover:bg-light-300 focus:outline-none dark:hover:bg-dark-300"
className="my-1 mr-1 inline-flex w-fit items-center gap-x-1.5 rounded-full px-2 py-1 text-[12px] font-medium text-light-800 ring-1 ring-inset ring-light-600 dark:text-dark-1000 dark:ring-dark-800" onClick={async (e) => {
e.preventDefault();
closeModal();
try {
await router.replace(
`/${workspaceSlug}/${boardSlug}`,
undefined,
{
shallow: true,
},
);
} catch (error) {
console.error(error);
}
}}
> >
<svg <HiXMark
fill={label.colourCode ?? "#3730a3"} size={18}
className="h-2 w-2" className="dark:text-dark-9000 text-light-900"
viewBox="0 0 6 6"
aria-hidden="true"
>
<circle cx={3} cy={3} r={3} />
</svg>
<div>{label.name}</div>
</div>
))}
</div>
{data?.description && (
<div className="mb-10 flex w-full max-w-2xl justify-between">
<div className="mt-2">
<Editor content={data.description} readOnly />
</div>
</div>
)}
<div className="border-t-[1px] border-light-600 pb-4 pt-12 dark:border-dark-400">
<h2 className="text-md pb-4 font-medium text-light-900 dark:text-dark-1000">
{t`Activity`}
</h2>
<div>
{cardPublicId && (
<ActivityList
cardPublicId={cardPublicId}
activities={data?.activities ?? []}
isLoading={isLoading}
/> />
</button>
{isLoading ? (
<div className="flex space-x-2">
<div className="h-[2.3rem] w-[300px] animate-pulse rounded-[5px] bg-light-300 dark:bg-dark-300" />
</div>
) : (
<>
<h1 className="pr-8 font-bold leading-[2.3rem] tracking-tight text-neutral-900 dark:text-dark-1000 sm:text-[1.2rem]">
{data?.title}
</h1>
</>
)} )}
</div> </div>
{labels.length > 0 && (
<div className="mt-2">
{labels.map((label) => (
<Badge
key={label.publicId}
value={label.name}
iconLeft={<LabelIcon colourCode={label.colourCode} />}
/>
))}
</div>
)}
</div>
<div className="relative">
<div
ref={scrollRef}
className="h-full max-h-[425px] overflow-y-auto"
>
{data?.description && (
<div className="mb-10 flex w-full max-w-2xl justify-between">
<div className="mt-2">
<Editor content={data.description} readOnly />
</div>
</div>
)}
<div className="border-t-[1px] border-light-600 pb-4 pt-12 dark:border-dark-400">
<h2 className="text-md pb-4 font-medium text-light-900 dark:text-dark-1000">
{t`Activity`}
</h2>
<div>
{cardPublicId && (
<ActivityList
cardPublicId={cardPublicId}
activities={data?.activities ?? []}
isLoading={isLoading}
isViewOnly={true}
/>
)}
</div>
</div>
</div>
{showTopFade && (
<div className="pointer-events-none absolute left-0 right-0 top-0 h-6 bg-gradient-to-b from-white/80 to-transparent dark:from-dark-100/80" />
)}
{showFade && (
<div className="pointer-events-none absolute bottom-0 left-0 right-0 h-6 bg-gradient-to-t from-white/80 to-transparent dark:from-dark-100/80" />
)}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -112,7 +112,13 @@ export default function PublicBoardView() {
</h1> </h1>
)} )}
{data && ( {data && (
<div className="flex items-center space-x-2"> <div className="z-10 flex items-center space-x-2">
<div className="inline-flex cursor-default items-center justify-center whitespace-nowrap rounded-md border-[1px] border-light-300 bg-light-50 px-3 py-2 text-sm font-semibold text-light-950 shadow-sm dark:border-dark-300 dark:bg-dark-50 dark:text-dark-950">
<span className="mr-2">
<HiOutlineLockClosed />
</span>
{t`View only`}
</div>
<Filters <Filters
labels={data.labels ?? []} labels={data.labels ?? []}
members={[]} members={[]}

View File

@@ -56,7 +56,7 @@ export const memberRouter = createTRPCRouter({
if (isInvitedEmailAlreadyMember) { if (isInvitedEmailAlreadyMember) {
throw new TRPCError({ throw new TRPCError({
message: `User with email ${input.email} is already a member of this workspace`, message: `User with email ${input.email} is already a member of this workspace`,
code: "BAD_REQUEST", code: "CONFLICT",
}); });
} }
@@ -88,6 +88,12 @@ export const memberRouter = createTRPCRouter({
callbackURL: `/boards?type=invite&memberPublicId=${invite.publicId}`, callbackURL: `/boards?type=invite&memberPublicId=${invite.publicId}`,
}); });
await memberRepo.softDelete(ctx.db, {
memberId: invite.id,
deletedAt: new Date(),
deletedBy: userId,
});
throw new TRPCError({ throw new TRPCError({
message: `Failed to send magic link invitation to user with email ${input.email}.`, message: `Failed to send magic link invitation to user with email ${input.email}.`,
code: "INTERNAL_SERVER_ERROR", code: "INTERNAL_SERVER_ERROR",