mirror of
https://github.com/makeplane/plane.git
synced 2026-04-30 04:59:41 -05:00
[WEB-5600] chore: project identifier char limit updated and table layout enhancements (#8263)
This commit is contained in:
committed by
GitHub
parent
7659997b53
commit
f0bc2bd3bd
@@ -239,11 +239,6 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
|
||||
|
||||
const canSelectIssues = !disableUserActions && !selectionHelpers.isSelectionDisabled;
|
||||
|
||||
//TODO: add better logic. This is to have a min width for ID/Key based on the length of project identifier
|
||||
const keyMinWidth = displayProperties?.key
|
||||
? (getProjectIdentifierById(issueDetail.project_id)?.length ?? 0 + 5) * 7
|
||||
: 0;
|
||||
|
||||
const workItemLink = generateWorkItemLink({
|
||||
workspaceSlug: workspaceSlug?.toString(),
|
||||
projectId: issueDetail?.project_id,
|
||||
@@ -255,11 +250,12 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
|
||||
|
||||
return (
|
||||
<>
|
||||
{/* Single sticky column containing both identifier and workitem */}
|
||||
<td
|
||||
id={`issue-${issueId}`}
|
||||
ref={cellRef}
|
||||
tabIndex={0}
|
||||
className="relative md:sticky left-0 z-10 group/list-block bg-custom-background-100 min-w-60 max-w-[30vw]"
|
||||
className="relative md:sticky left-0 z-10 group/list-block bg-custom-background-100"
|
||||
>
|
||||
<ControlLink
|
||||
href={workItemLink}
|
||||
@@ -278,7 +274,29 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
|
||||
}
|
||||
)}
|
||||
>
|
||||
<div className="flex items-center gap-0.5 min-w-min py-2">
|
||||
{/* Identifier section - conditionally rendered */}
|
||||
{displayProperties?.key && (
|
||||
<div className="flex-shrink-0 flex items-center h-full min-w-24">
|
||||
<div className="relative flex cursor-pointer items-center text-xs hover:text-custom-text-100">
|
||||
{issueDetail.project_id && (
|
||||
<IssueIdentifier
|
||||
issueId={issueDetail.id}
|
||||
projectId={issueDetail.project_id}
|
||||
textContainerClassName="text-sm md:text-xs text-custom-text-300"
|
||||
displayProperties={displayProperties}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Workitem section */}
|
||||
<div
|
||||
className={cn("flex items-center gap-0.5 py-2 flex-grow", {
|
||||
"min-w-[360px]": !displayProperties?.key,
|
||||
"min-w-60": displayProperties?.key,
|
||||
})}
|
||||
>
|
||||
{/* select checkbox */}
|
||||
{projectId && canSelectIssues && (
|
||||
<Tooltip
|
||||
@@ -311,21 +329,6 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
|
||||
{/* sub issues indentation */}
|
||||
{nestingLevel !== 0 && <div style={{ width: subIssueIndentation }} />}
|
||||
|
||||
{(displayProperties?.key || displayProperties?.issue_type) && (
|
||||
<div className="relative flex cursor-pointer items-center text-center text-xs hover:text-custom-text-100">
|
||||
<p className={`flex font-medium leading-7`} style={{ minWidth: `${keyMinWidth}px` }}>
|
||||
{issueDetail.project_id && (
|
||||
<IssueIdentifier
|
||||
issueId={issueDetail.id}
|
||||
projectId={issueDetail.project_id}
|
||||
textContainerClassName="text-sm md:text-xs text-custom-text-300"
|
||||
displayProperties={displayProperties}
|
||||
/>
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* sub-issues chevron */}
|
||||
<div className="grid place-items-center size-4">
|
||||
{subIssuesCount > 0 && !isEpic && (
|
||||
@@ -343,31 +346,31 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-2 justify-between h-full w-full truncate my-auto">
|
||||
<div className="w-full line-clamp-1 text-sm text-custom-text-100">
|
||||
<div className="w-full overflow-hidden">
|
||||
<Tooltip tooltipContent={issueDetail.name} isMobile={isMobile}>
|
||||
<div
|
||||
className="h-full w-full cursor-pointer truncate pr-4 text-left text-[0.825rem] text-custom-text-100 focus:outline-none"
|
||||
tabIndex={-1}
|
||||
>
|
||||
{issueDetail.name}
|
||||
</div>
|
||||
</Tooltip>
|
||||
<div className="flex items-center gap-2 justify-between h-full w-full truncate my-auto">
|
||||
<div className="w-full line-clamp-1 text-sm text-custom-text-100">
|
||||
<div className="w-full overflow-hidden">
|
||||
<Tooltip tooltipContent={issueDetail.name} isMobile={isMobile}>
|
||||
<div
|
||||
className="h-full w-full cursor-pointer truncate pr-4 text-left text-[0.825rem] text-custom-text-100 focus:outline-none"
|
||||
tabIndex={-1}
|
||||
>
|
||||
{issueDetail.name}
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={`opacity-0 group-hover:opacity-100 transition-opacity ${isMenuActive ? "!opacity-100" : ""}`}
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
>
|
||||
{quickActions({
|
||||
issue: issueDetail,
|
||||
parentRef: cellRef,
|
||||
customActionButton,
|
||||
portalElement: portalElement.current,
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={`hidden group-hover:block ${isMenuActive ? "!block" : ""}`}
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
>
|
||||
{quickActions({
|
||||
issue: issueDetail,
|
||||
parentRef: cellRef,
|
||||
customActionButton,
|
||||
portalElement: portalElement.current,
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
</Row>
|
||||
|
||||
@@ -5,7 +5,6 @@ import { SPREADSHEET_SELECT_GROUP } from "@plane/constants";
|
||||
// ui
|
||||
import type { IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types";
|
||||
// components
|
||||
import { Row } from "@plane/ui";
|
||||
import { cn } from "@plane/utils";
|
||||
import { MultipleSelectGroupAction } from "@/components/core/multiple-select";
|
||||
// hooks
|
||||
@@ -44,27 +43,31 @@ export const SpreadsheetHeader = observer(function SpreadsheetHeader(props: Prop
|
||||
return (
|
||||
<thead className="sticky top-0 left-0 z-[12] border-b-[0.5px] border-custom-border-100">
|
||||
<tr>
|
||||
{/* Single header column containing both identifier and workitem */}
|
||||
<th
|
||||
className="group/list-header sticky min-w-60 left-0 z-[15] h-11 flex items-center gap-1 bg-custom-background-90 text-sm font-medium before:absolute before:h-full before:right-0 before:border-custom-border-100"
|
||||
className="group/list-header md:sticky min-w-60 left-0 z-[15] h-11 bg-custom-background-90 text-sm font-medium border-r-[0.5px] border-custom-border-100"
|
||||
tabIndex={-1}
|
||||
>
|
||||
<Row>
|
||||
{canSelectIssues && (
|
||||
<div className="flex-shrink-0 flex items-center w-3.5 mr-1 absolute left-1 py-[11px]">
|
||||
<MultipleSelectGroupAction
|
||||
className={cn(
|
||||
"size-3.5 opacity-0 pointer-events-none group-hover/list-header:opacity-100 group-hover/list-header:pointer-events-auto !outline-none",
|
||||
{
|
||||
"opacity-100 pointer-events-auto": !isGroupSelectionEmpty,
|
||||
}
|
||||
)}
|
||||
groupID={SPREADSHEET_SELECT_GROUP}
|
||||
selectionHelpers={selectionHelpers}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<span className="flex h-full w-full flex-grow items-center py-2.5">{`${isEpic ? "Epics" : "Work items"}`}</span>
|
||||
</Row>
|
||||
<div className="flex items-center gap-2 h-full w-full px-page-x">
|
||||
{/* Workitem header section */}
|
||||
<div className="flex items-center gap-1 flex-grow h-full py-2.5 min-w-80">
|
||||
{canSelectIssues && (
|
||||
<div className="flex-shrink-0 flex items-center w-3.5 mr-1">
|
||||
<MultipleSelectGroupAction
|
||||
className={cn(
|
||||
"size-3.5 opacity-0 pointer-events-none group-hover/list-header:opacity-100 group-hover/list-header:pointer-events-auto !outline-none",
|
||||
{
|
||||
"opacity-100 pointer-events-auto": !isGroupSelectionEmpty,
|
||||
}
|
||||
)}
|
||||
groupID={SPREADSHEET_SELECT_GROUP}
|
||||
selectionHelpers={selectionHelpers}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<span className="text-sm font-medium">{`${isEpic ? "Epics" : "Work items"}`}</span>
|
||||
</div>
|
||||
</div>
|
||||
</th>
|
||||
|
||||
{spreadsheetColumnsList.map((property) => (
|
||||
|
||||
@@ -39,7 +39,7 @@ function ProjectCommonAttributes(props: Props) {
|
||||
return;
|
||||
}
|
||||
if (e.target.value === "") setValue("identifier", "");
|
||||
else setValue("identifier", projectIdentifierSanitizer(e.target.value).substring(0, 5));
|
||||
else setValue("identifier", projectIdentifierSanitizer(e.target.value).substring(0, 10));
|
||||
onChange(e);
|
||||
handleFormOnChange?.();
|
||||
};
|
||||
@@ -91,11 +91,11 @@ function ProjectCommonAttributes(props: Props) {
|
||||
/^[ÇŞĞIİÖÜA-Z0-9]+$/.test(value.toUpperCase()) || t("only_alphanumeric_non_latin_characters_allowed"),
|
||||
minLength: {
|
||||
value: 1,
|
||||
message: t("project_id_must_be_at_least_1_character"),
|
||||
message: t("project_id_min_char"),
|
||||
},
|
||||
maxLength: {
|
||||
value: 5,
|
||||
message: t("project_id_must_be_at_most_5_characters"),
|
||||
value: 10,
|
||||
message: t("project_id_max_char"),
|
||||
},
|
||||
}}
|
||||
render={({ field: { value, onChange } }) => (
|
||||
|
||||
@@ -185,7 +185,7 @@ export function ProjectDetailsForm(props: IProjectDetailsForm) {
|
||||
|
||||
if (project.identifier !== formData.identifier)
|
||||
await projectService
|
||||
.checkProjectIdentifierAvailability(workspaceSlug as string, payload.identifier ?? "")
|
||||
.checkProjectIdentifierAvailability(workspaceSlug, payload.identifier ?? "")
|
||||
.then(async (res) => {
|
||||
if (res.exists) setError("identifier", { message: t("common.identifier_already_exists") });
|
||||
else await handleUpdateChange(payload);
|
||||
@@ -338,7 +338,7 @@ export function ProjectDetailsForm(props: IProjectDetailsForm) {
|
||||
message: t("project_id_min_char"),
|
||||
},
|
||||
maxLength: {
|
||||
value: 5,
|
||||
value: 10,
|
||||
message: t("project_id_max_char"),
|
||||
},
|
||||
}}
|
||||
@@ -359,7 +359,7 @@ export function ProjectDetailsForm(props: IProjectDetailsForm) {
|
||||
/>
|
||||
<Tooltip
|
||||
isMobile={isMobile}
|
||||
tooltipContent="Helps you identify work items in the project uniquely. Max 5 characters."
|
||||
tooltipContent={t("project_id_tooltip_content")}
|
||||
className="text-sm"
|
||||
position="right-start"
|
||||
>
|
||||
|
||||
@@ -337,13 +337,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "ID projektu musí mít alespoň 1 znak",
|
||||
project_id_must_be_at_most_5_characters: "ID projektu může mít maximálně 5 znaků",
|
||||
project_id: "ID projektu",
|
||||
project_id_tooltip_content: "Pomáhá jednoznačně identifikovat pracovní položky v projektu. Max. 5 znaků.",
|
||||
project_id_tooltip_content: "Pomáhá jednoznačně identifikovat pracovní položky v projektu. Max. 10 znaků.",
|
||||
description_placeholder: "Popis",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Jsou povoleny pouze alfanumerické a nelatinské znaky.",
|
||||
project_id_is_required: "ID projektu je povinné",
|
||||
project_id_allowed_char: "Jsou povoleny pouze alfanumerické a nelatinské znaky.",
|
||||
project_id_min_char: "ID projektu musí mít alespoň 1 znak",
|
||||
project_id_max_char: "ID projektu může mít maximálně 5 znaků",
|
||||
project_id_max_char: "ID projektu může mít maximálně 10 znaků",
|
||||
project_description_placeholder: "Zadejte popis projektu",
|
||||
select_network: "Vybrat síť",
|
||||
lead: "Vedoucí",
|
||||
|
||||
@@ -344,13 +344,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "Projekt-ID muss mindestens 1 Zeichen lang sein",
|
||||
project_id_must_be_at_most_5_characters: "Projekt-ID darf maximal 5 Zeichen lang sein",
|
||||
project_id: "Projekt-ID",
|
||||
project_id_tooltip_content: "Hilft, Arbeitselemente im Projekt eindeutig zu identifizieren. Max. 5 Zeichen.",
|
||||
project_id_tooltip_content: "Hilft, Arbeitselemente im Projekt eindeutig zu identifizieren. Max. 10 Zeichen.",
|
||||
description_placeholder: "Beschreibung",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Es sind nur alphanumerische und nicht-lateinische Zeichen erlaubt.",
|
||||
project_id_is_required: "Projekt-ID ist erforderlich",
|
||||
project_id_allowed_char: "Es sind nur alphanumerische und nicht-lateinische Zeichen erlaubt.",
|
||||
project_id_min_char: "Projekt-ID muss mindestens 1 Zeichen lang sein",
|
||||
project_id_max_char: "Projekt-ID darf maximal 5 Zeichen lang sein",
|
||||
project_id_max_char: "Projekt-ID darf maximal 10 Zeichen lang sein",
|
||||
project_description_placeholder: "Geben Sie eine Projektbeschreibung ein",
|
||||
select_network: "Netzwerk auswählen",
|
||||
lead: "Leitung",
|
||||
|
||||
@@ -172,13 +172,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "Project ID must at least be of 1 character",
|
||||
project_id_must_be_at_most_5_characters: "Project ID must at most be of 5 characters",
|
||||
project_id: "Project ID",
|
||||
project_id_tooltip_content: "Helps you identify work items in the project uniquely. Max 5 characters.",
|
||||
project_id_tooltip_content: "Helps you identify work items in the project uniquely. Max 10 characters.",
|
||||
description_placeholder: "Description",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Only Alphanumeric & Non-latin characters are allowed.",
|
||||
project_id_is_required: "Project ID is required",
|
||||
project_id_allowed_char: "Only Alphanumeric & Non-latin characters are allowed.",
|
||||
project_id_min_char: "Project ID must at least be of 1 character",
|
||||
project_id_max_char: "Project ID must at most be of 5 characters",
|
||||
project_id_max_char: "Project ID must at most be of 10 characters",
|
||||
project_description_placeholder: "Enter project description",
|
||||
select_network: "Select network",
|
||||
lead: "Lead",
|
||||
|
||||
@@ -345,13 +345,13 @@ export default {
|
||||
project_id_must_be_at_most_5_characters: "El ID del proyecto debe tener como máximo 5 caracteres",
|
||||
project_id: "ID del proyecto",
|
||||
project_id_tooltip_content:
|
||||
"Te ayuda a identificar elementos de trabajo en el proyecto de manera única. Máximo 5 caracteres.",
|
||||
"Te ayuda a identificar elementos de trabajo en el proyecto de manera única. Máximo 10 caracteres.",
|
||||
description_placeholder: "Descripción",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Solo se permiten caracteres alfanuméricos y no latinos.",
|
||||
project_id_is_required: "El ID del proyecto es requerido",
|
||||
project_id_allowed_char: "Solo se permiten caracteres alfanuméricos y no latinos.",
|
||||
project_id_min_char: "El ID del proyecto debe tener al menos 1 carácter",
|
||||
project_id_max_char: "El ID del proyecto debe tener como máximo 5 caracteres",
|
||||
project_id_max_char: "El ID del proyecto debe tener como máximo 10 caracteres",
|
||||
project_description_placeholder: "Ingresa la descripción del proyecto",
|
||||
select_network: "Seleccionar red",
|
||||
lead: "Líder",
|
||||
|
||||
@@ -341,13 +341,13 @@ export default {
|
||||
project_id_must_be_at_most_5_characters: "L’ID du projet doit comporter au plus 5 caractères",
|
||||
project_id: "ID du projet",
|
||||
project_id_tooltip_content:
|
||||
"Vous aide à identifier de manière unique les éléments de travail dans le projet. Maximum 5 caractères.",
|
||||
"Vous aide à identifier de manière unique les éléments de travail dans le projet. Maximum 10 caractères.",
|
||||
description_placeholder: "Description",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Seuls les caractères alphanumériques et non latins sont autorisés.",
|
||||
project_id_is_required: "L’ID du projet est requis",
|
||||
project_id_allowed_char: "Seuls les caractères alphanumériques et non latins sont autorisés.",
|
||||
project_id_min_char: "L’ID du projet doit comporter au moins 1 caractère",
|
||||
project_id_max_char: "L’ID du projet doit comporter au plus 5 caractères",
|
||||
project_id_max_char: "L'ID du projet doit comporter au plus 10 caractères",
|
||||
project_description_placeholder: "Entrez la description du projet",
|
||||
select_network: "Sélectionner le réseau",
|
||||
lead: "Responsable",
|
||||
|
||||
@@ -340,13 +340,13 @@ export default {
|
||||
project_id_must_be_at_most_5_characters: "ID proyek maksimal 5 karakter",
|
||||
project_id: "ID proyek",
|
||||
project_id_tooltip_content:
|
||||
"Membantu Anda mengidentifikasi item kerja dalam proyek secara unik. Maksimal 5 karakter.",
|
||||
"Membantu Anda mengidentifikasi item kerja dalam proyek secara unik. Maksimal 10 karakter.",
|
||||
description_placeholder: "Deskripsi",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Hanya karakter alfanumerik & Non-latin yang diizinkan.",
|
||||
project_id_is_required: "ID proyek diperlukan",
|
||||
project_id_allowed_char: "Hanya karakter alfanumerik & Non-latin yang diizinkan.",
|
||||
project_id_min_char: "ID proyek harus minimal 1 karakter",
|
||||
project_id_max_char: "ID proyek maksimal 5 karakter",
|
||||
project_id_max_char: "ID proyek maksimal 10 karakter",
|
||||
project_description_placeholder: "Masukkan deskripsi proyek",
|
||||
select_network: "Pilih jaringan",
|
||||
lead: "Pemimpin",
|
||||
|
||||
@@ -340,13 +340,13 @@ export default {
|
||||
project_id_must_be_at_most_5_characters: "L'ID del progetto deve contenere al massimo 5 caratteri",
|
||||
project_id: "ID del progetto",
|
||||
project_id_tooltip_content:
|
||||
"Ti aiuta a identificare in modo univoco gli elementi di lavoro nel progetto. Massimo 5 caratteri.",
|
||||
"Ti aiuta a identificare in modo univoco gli elementi di lavoro nel progetto. Massimo 10 caratteri.",
|
||||
description_placeholder: "Descrizione",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Sono ammessi solo caratteri alfanumerici e non latini.",
|
||||
project_id_is_required: "L'ID del progetto è obbligatorio",
|
||||
project_id_allowed_char: "Sono ammessi solo caratteri alfanumerici e non latini.",
|
||||
project_id_min_char: "L'ID del progetto deve contenere almeno 1 carattere",
|
||||
project_id_max_char: "L'ID del progetto deve contenere al massimo 5 caratteri",
|
||||
project_id_max_char: "L'ID del progetto deve contenere al massimo 10 caratteri",
|
||||
project_description_placeholder: "Inserisci la descrizione del progetto",
|
||||
select_network: "Seleziona rete",
|
||||
lead: "Responsabile",
|
||||
|
||||
@@ -335,13 +335,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "プロジェクトIDは最低1文字必要です",
|
||||
project_id_must_be_at_most_5_characters: "プロジェクトIDは最大5文字までです",
|
||||
project_id: "プロジェクトID",
|
||||
project_id_tooltip_content: "プロジェクト内の作業項目を一意に識別するのに役立ちます。最大5文字。",
|
||||
project_id_tooltip_content: "プロジェクト内の作業項目を一意に識別するのに役立ちます。最大10文字。",
|
||||
description_placeholder: "説明",
|
||||
only_alphanumeric_non_latin_characters_allowed: "英数字と非ラテン文字のみ使用できます。",
|
||||
project_id_is_required: "プロジェクトIDは必須です",
|
||||
project_id_allowed_char: "英数字と非ラテン文字のみ使用できます。",
|
||||
project_id_min_char: "プロジェクトIDは最低1文字必要です",
|
||||
project_id_max_char: "プロジェクトIDは最大5文字までです",
|
||||
project_id_max_char: "プロジェクトIDは最大10文字までです",
|
||||
project_description_placeholder: "プロジェクトの説明を入力",
|
||||
select_network: "ネットワークを選択",
|
||||
lead: "リード",
|
||||
|
||||
@@ -332,13 +332,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "프로젝트 ID는 최소 1자 이상이어야 합니다",
|
||||
project_id_must_be_at_most_5_characters: "프로젝트 ID는 최대 5자 이하여야 합니다",
|
||||
project_id: "프로젝트 ID",
|
||||
project_id_tooltip_content: "작업 항목을 고유하게 식별하는 데 도움이 됩니다. 최대 5자.",
|
||||
project_id_tooltip_content: "작업 항목을 고유하게 식별하는 데 도움이 됩니다. 최대 10자.",
|
||||
description_placeholder: "설명",
|
||||
only_alphanumeric_non_latin_characters_allowed: "영숫자 및 비라틴 문자만 허용됩니다.",
|
||||
project_id_is_required: "프로젝트 ID가 필요합니다",
|
||||
project_id_allowed_char: "영숫자 및 비라틴 문자만 허용됩니다.",
|
||||
project_id_min_char: "프로젝트 ID는 최소 1자 이상이어야 합니다",
|
||||
project_id_max_char: "프로젝트 ID는 최대 5자 이하여야 합니다",
|
||||
project_id_max_char: "프로젝트 ID는 최대 10자 이하여야 합니다",
|
||||
project_description_placeholder: "프로젝트 설명 입력",
|
||||
select_network: "네트워크 선택",
|
||||
lead: "리드",
|
||||
|
||||
@@ -335,13 +335,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "ID projektu musi mieć co najmniej 1 znak",
|
||||
project_id_must_be_at_most_5_characters: "ID projektu może mieć maksymalnie 5 znaków",
|
||||
project_id: "ID projektu",
|
||||
project_id_tooltip_content: "Pomaga jednoznacznie identyfikować elementy pracy w projekcie. Max. 5 znaków.",
|
||||
project_id_tooltip_content: "Pomaga jednoznacznie identyfikować elementy pracy w projekcie. Max. 10 znaków.",
|
||||
description_placeholder: "Opis",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Dozwolone są tylko znaki alfanumeryczne i nielatynowskie.",
|
||||
project_id_is_required: "ID projektu jest wymagane",
|
||||
project_id_allowed_char: "Dozwolone są tylko znaki alfanumeryczne i nielatynowskie.",
|
||||
project_id_min_char: "ID projektu musi mieć co najmniej 1 znak",
|
||||
project_id_max_char: "ID projektu może mieć maksymalnie 5 znaków",
|
||||
project_id_max_char: "ID projektu może mieć maksymalnie 10 znaków",
|
||||
project_description_placeholder: "Wpisz opis projektu",
|
||||
select_network: "Wybierz sieć",
|
||||
lead: "Lead",
|
||||
|
||||
@@ -340,13 +340,13 @@ export default {
|
||||
project_id_must_be_at_most_5_characters: "O ID do projeto deve ter no máximo 5 caracteres",
|
||||
project_id: "ID do projeto",
|
||||
project_id_tooltip_content:
|
||||
"Ajuda você a identificar itens de trabalho no projeto de forma exclusiva. Máximo de 5 caracteres.",
|
||||
"Ajuda você a identificar itens de trabalho no projeto de forma exclusiva. Máximo de 10 caracteres.",
|
||||
description_placeholder: "Descrição",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Apenas caracteres alfanuméricos e não latinos são permitidos.",
|
||||
project_id_is_required: "O ID do projeto é obrigatório",
|
||||
project_id_allowed_char: "Apenas caracteres alfanuméricos e não latinos são permitidos.",
|
||||
project_id_min_char: "O ID do projeto deve ter pelo menos 1 caractere",
|
||||
project_id_max_char: "O ID do projeto deve ter no máximo 5 caracteres",
|
||||
project_id_max_char: "O ID do projeto deve ter no máximo 10 caracteres",
|
||||
project_description_placeholder: "Insira a descrição do projeto",
|
||||
select_network: "Selecione a rede",
|
||||
lead: "Líder",
|
||||
|
||||
@@ -338,13 +338,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "ID-ul proiectului trebuie să conțină cel puțin 1 caracter",
|
||||
project_id_must_be_at_most_5_characters: "ID-ul proiectului trebuie să conțină cel mult 5 caractere",
|
||||
project_id: "ID-ul Proiectului",
|
||||
project_id_tooltip_content: "Te ajută să identifici unic activitățile din proiect. Maxim 5 caractere.",
|
||||
project_id_tooltip_content: "Te ajută să identifici unic activitățile din proiect. Maxim 10 caractere.",
|
||||
description_placeholder: "Descriere",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Sunt permise doar caractere alfanumerice și non-latine.",
|
||||
project_id_is_required: "ID-ul proiectului este obligatoriu",
|
||||
project_id_allowed_char: "Sunt permise doar caractere alfanumerice și non-latine.",
|
||||
project_id_min_char: "ID-ul proiectului trebuie să aibă cel puțin 1 caracter",
|
||||
project_id_max_char: "ID-ul proiectului trebuie să aibă cel mult 5 caractere",
|
||||
project_id_max_char: "ID-ul proiectului trebuie să aibă cel mult 10 caractere",
|
||||
project_description_placeholder: "Introdu descrierea proiectului",
|
||||
select_network: "Selectează rețeaua",
|
||||
lead: "Lider",
|
||||
|
||||
@@ -335,13 +335,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "ID проекта должен содержать минимум 1 символ",
|
||||
project_id_must_be_at_most_5_characters: "ID проекта должен содержать максимум 5 символов",
|
||||
project_id: "ID проекта",
|
||||
project_id_tooltip_content: "Помогает идентифицировать рабочие элементы в проекте. Макс. 5 символов.",
|
||||
project_id_tooltip_content: "Помогает идентифицировать рабочие элементы в проекте. Макс. 10 символов.",
|
||||
description_placeholder: "Описание",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Допускаются только буквенно-цифровые и нелатинские символы.",
|
||||
project_id_is_required: "Требуется ID проекта",
|
||||
project_id_allowed_char: "Допускаются только буквенно-цифровые и нелатинские символы.",
|
||||
project_id_min_char: "ID проекта должен содержать минимум 1 символ",
|
||||
project_id_max_char: "ID проекта должен содержать максимум 5 символов",
|
||||
project_id_max_char: "ID проекта должен содержать максимум 10 символов",
|
||||
project_description_placeholder: "Введите описание проекта",
|
||||
select_network: "Выбрать сеть",
|
||||
lead: "Руководитель",
|
||||
|
||||
@@ -337,13 +337,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "ID projektu musí mať aspoň 1 znak",
|
||||
project_id_must_be_at_most_5_characters: "ID projektu môže mať maximálne 5 znakov",
|
||||
project_id: "ID projektu",
|
||||
project_id_tooltip_content: "Pomáha jednoznačne identifikovať pracovné položky v projekte. Max. 5 znakov.",
|
||||
project_id_tooltip_content: "Pomáha jednoznačne identifikovať pracovné položky v projekte. Max. 10 znakov.",
|
||||
description_placeholder: "Popis",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Sú povolené iba alfanumerické a nelatinské znaky.",
|
||||
project_id_is_required: "ID projektu je povinné",
|
||||
project_id_allowed_char: "Sú povolené iba alfanumerické a nelatinské znaky.",
|
||||
project_id_min_char: "ID projektu musí mať aspoň 1 znak",
|
||||
project_id_max_char: "ID projektu môže mať maximálne 5 znakov",
|
||||
project_id_max_char: "ID projektu môže mať maximálne 10 znakov",
|
||||
project_description_placeholder: "Zadajte popis projektu",
|
||||
select_network: "Vybrať sieť",
|
||||
lead: "Vedúci",
|
||||
|
||||
@@ -337,13 +337,14 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "Proje ID en az 1 karakter olmalı",
|
||||
project_id_must_be_at_most_5_characters: "Proje ID en fazla 5 karakter olmalı",
|
||||
project_id: "Proje ID",
|
||||
project_id_tooltip_content: "Projedeki iş öğelerini benzersiz şekilde tanımlamanıza yardımcı olur. Maks. 5 karakter.",
|
||||
project_id_tooltip_content:
|
||||
"Projedeki iş öğelerini benzersiz şekilde tanımlamanıza yardımcı olur. Maks. 10 karakter.",
|
||||
description_placeholder: "Açıklama",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Yalnızca alfasayısal ve Latin olmayan karakterlere izin verilir.",
|
||||
project_id_is_required: "Proje ID gereklidir",
|
||||
project_id_allowed_char: "Yalnızca alfasayısal ve Latin olmayan karakterlere izin verilir.",
|
||||
project_id_min_char: "Proje ID en az 1 karakter olmalı",
|
||||
project_id_max_char: "Proje ID en fazla 5 karakter olmalı",
|
||||
project_id_max_char: "Proje ID en fazla 10 karakter olmalı",
|
||||
project_description_placeholder: "Proje açıklamasını girin",
|
||||
select_network: "Ağ seç",
|
||||
lead: "Lider",
|
||||
|
||||
@@ -337,13 +337,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "Ідентифікатор проєкту має містити принаймні 1 символ",
|
||||
project_id_must_be_at_most_5_characters: "Ідентифікатор проєкту може містити максимум 5 символів",
|
||||
project_id: "ID проєкту",
|
||||
project_id_tooltip_content: "Допомагає унікально ідентифікувати робочі одиниці в проєкті. Макс. 5 символів.",
|
||||
project_id_tooltip_content: "Допомагає унікально ідентифікувати робочі одиниці в проєкті. Макс. 10 символів.",
|
||||
description_placeholder: "Опис",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Дозволені лише алфанумеричні та нелатинські символи.",
|
||||
project_id_is_required: "ID проєкту є обов’язковим",
|
||||
project_id_allowed_char: "Дозволені лише алфанумеричні та нелатинські символи.",
|
||||
project_id_min_char: "ID проєкту має містити принаймні 1 символ",
|
||||
project_id_max_char: "ID проєкту може містити максимум 5 символів",
|
||||
project_id_max_char: "ID проєкту може містити максимум 10 символів",
|
||||
project_description_placeholder: "Введіть опис проєкту",
|
||||
select_network: "Вибрати мережу",
|
||||
lead: "Керівник",
|
||||
|
||||
@@ -338,13 +338,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "ID dự án phải có ít nhất 1 ký tự",
|
||||
project_id_must_be_at_most_5_characters: "ID dự án chỉ được tối đa 5 ký tự",
|
||||
project_id: "ID dự án",
|
||||
project_id_tooltip_content: "Giúp xác định duy nhất mục công việc trong dự án của bạn. Tối đa 5 ký tự.",
|
||||
project_id_tooltip_content: "Giúp xác định duy nhất mục công việc trong dự án của bạn. Tối đa 10 ký tự.",
|
||||
description_placeholder: "Mô tả",
|
||||
only_alphanumeric_non_latin_characters_allowed: "Chỉ cho phép các ký tự chữ số và không phải Latin.",
|
||||
project_id_is_required: "ID dự án là bắt buộc",
|
||||
project_id_allowed_char: "Chỉ cho phép các ký tự chữ số và không phải Latin.",
|
||||
project_id_min_char: "ID dự án phải có ít nhất 1 ký tự",
|
||||
project_id_max_char: "ID dự án chỉ được tối đa 5 ký tự",
|
||||
project_id_max_char: "ID dự án chỉ được tối đa 10 ký tự",
|
||||
project_description_placeholder: "Nhập mô tả dự án",
|
||||
select_network: "Chọn mạng",
|
||||
lead: "Người phụ trách",
|
||||
|
||||
@@ -328,13 +328,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "项目ID至少需要1个字符",
|
||||
project_id_must_be_at_most_5_characters: "项目ID最多只能有5个字符",
|
||||
project_id: "项目ID",
|
||||
project_id_tooltip_content: "帮助您唯一标识项目中的工作项。最多5个字符。",
|
||||
project_id_tooltip_content: "帮助您唯一标识项目中的工作项。最多10个字符。",
|
||||
description_placeholder: "描述",
|
||||
only_alphanumeric_non_latin_characters_allowed: "仅允许字母数字和非拉丁字符。",
|
||||
project_id_is_required: "项目ID为必填项",
|
||||
project_id_allowed_char: "仅允许字母数字和非拉丁字符。",
|
||||
project_id_min_char: "项目ID至少需要1个字符",
|
||||
project_id_max_char: "项目ID最多只能有5个字符",
|
||||
project_id_max_char: "项目ID最多只能有10个字符",
|
||||
project_description_placeholder: "输入项目描述",
|
||||
select_network: "选择网络",
|
||||
lead: "负责人",
|
||||
|
||||
@@ -327,13 +327,13 @@ export default {
|
||||
project_id_must_be_at_least_1_character: "專案 ID 至少必須有 1 個字元",
|
||||
project_id_must_be_at_most_5_characters: "專案 ID 最多只能有 5 個字元",
|
||||
project_id: "專案 ID",
|
||||
project_id_tooltip_content: "協助您唯一識別專案中的工作事項。最多 5 個字元。",
|
||||
project_id_tooltip_content: "協助您唯一識別專案中的工作事項。最多 10 個字元。",
|
||||
description_placeholder: "描述",
|
||||
only_alphanumeric_non_latin_characters_allowed: "僅允許英數字元和非拉丁字元。",
|
||||
project_id_is_required: "專案 ID 為必填",
|
||||
project_id_allowed_char: "僅允許英數字元和非拉丁字元。",
|
||||
project_id_min_char: "專案 ID 至少必須有 1 個字元",
|
||||
project_id_max_char: "專案 ID 最多只能有 5 個字元",
|
||||
project_id_max_char: "專案 ID 最多只能有 10 個字元",
|
||||
project_description_placeholder: "輸入專案描述",
|
||||
select_network: "選擇網路",
|
||||
lead: "負責人",
|
||||
|
||||
Reference in New Issue
Block a user