feat(task-management): enhance status management with drag-and-drop functionality
- Updated ManageStatusModal to support drag-and-drop for reordering statuses and moving them between categories. - Introduced CategorySection component for better organization of statuses by category. - Added validation to prevent moving the last status out of a category, ensuring each category retains at least one status. - Enhanced localization for task management, updating translation keys across multiple languages for improved clarity and consistency.
This commit is contained in:
@@ -7,79 +7,81 @@
|
||||
"statusText": "Statusi",
|
||||
"phaseText": "Faza",
|
||||
"memberText": "Anëtarët",
|
||||
"assigneesText": "Përgjegjësit",
|
||||
"assigneesText": "Të caktuarit",
|
||||
"priorityText": "Prioriteti",
|
||||
"labelsText": "Etiketa",
|
||||
"labelsText": "Etiketat",
|
||||
"membersText": "Anëtarët",
|
||||
"groupByText": "Grupo sipas",
|
||||
"showArchivedText": "Shfaq të arkivuara",
|
||||
"showArchivedText": "Shfaq të arkivuarat",
|
||||
"showFieldsText": "Shfaq fushat",
|
||||
"keyText": "Çelësi",
|
||||
"taskText": "Detyra",
|
||||
"descriptionText": "Përshkrimi",
|
||||
"phasesText": "Fazat",
|
||||
"listText": "Listë",
|
||||
"listText": "Lista",
|
||||
"progressText": "Progresi",
|
||||
"timeTrackingText": "Gjurmimi i Kohës",
|
||||
"timetrackingText": "Gjurmimi i Kohës",
|
||||
"timeTrackingText": "Ndjekja e kohës",
|
||||
"timetrackingText": "Ndjekja e kohës",
|
||||
"estimationText": "Vlerësimi",
|
||||
"startDateText": "Data e Fillimit",
|
||||
"startdateText": "Data e Fillimit",
|
||||
"endDateText": "Data e Përfundimit",
|
||||
"dueDateText": "Afati",
|
||||
"duedateText": "Afati",
|
||||
"completedDateText": "Data e Përfundimit",
|
||||
"completeddateText": "Data e Përfundimit",
|
||||
"createdDateText": "Data e Krijimit",
|
||||
"createddateText": "Data e Krijimit",
|
||||
"lastUpdatedText": "Përditësuar Së Fundi",
|
||||
"lastupdatedText": "Përditësuar Së Fundi",
|
||||
"startDateText": "Data e fillimit",
|
||||
"startdateText": "Data e fillimit",
|
||||
"endDateText": "Data e mbarimit",
|
||||
"dueDateText": "Data e afatit",
|
||||
"duedateText": "Data e afatit",
|
||||
"completedDateText": "Data e përfundimit",
|
||||
"completeddateText": "Data e përfundimit",
|
||||
"createdDateText": "Data e krijimit",
|
||||
"createddateText": "Data e krijimit",
|
||||
"lastUpdatedText": "Përditësimi i fundit",
|
||||
"lastupdatedText": "Përditësimi i fundit",
|
||||
"reporterText": "Raportuesi",
|
||||
"dueTimeText": "Koha e Afatit",
|
||||
"duetimeText": "Koha e Afatit",
|
||||
"dueTimeText": "Koha e afatit",
|
||||
"duetimeText": "Koha e afatit",
|
||||
|
||||
"lowText": "I ulët",
|
||||
"mediumText": "I mesëm",
|
||||
"highText": "I lartë",
|
||||
"lowText": "E ulët",
|
||||
"mediumText": "E mesme",
|
||||
"highText": "E lartë",
|
||||
|
||||
"createStatusButtonTooltip": "Cilësimet e statusit",
|
||||
"configPhaseButtonTooltip": "Cilësimet e fazës",
|
||||
"noLabelsFound": "Nuk u gjetën etiketa",
|
||||
|
||||
"addStatusButton": "Shto Status",
|
||||
"addPhaseButton": "Shto Fazë",
|
||||
"addStatusButton": "Shto status",
|
||||
"addPhaseButton": "Shto fazë",
|
||||
|
||||
"createStatus": "Krijo Status",
|
||||
"createStatus": "Krijo status",
|
||||
"name": "Emri",
|
||||
"category": "Kategoria",
|
||||
"selectCategory": "Zgjidh një kategori",
|
||||
"pleaseEnterAName": "Ju lutemi vendosni një emër",
|
||||
"pleaseEnterAName": "Ju lutemi shkruani një emër",
|
||||
"pleaseSelectACategory": "Ju lutemi zgjidhni një kategori",
|
||||
"create": "Krijo",
|
||||
|
||||
"searchTasks": "Kërko detyrat...",
|
||||
"searchTasks": "Kërko detyra...",
|
||||
"searchPlaceholder": "Kërko...",
|
||||
"fieldsText": "Fushat",
|
||||
"loadingFilters": "Duke ngarkuar filtrat...",
|
||||
"noOptionsFound": "Nuk u gjetën opsione",
|
||||
"loadingFilters": "Po ngarkohen filtrat...",
|
||||
"noOptionsFound": "Nuk u gjetën opcione",
|
||||
"filtersActive": "filtra aktiv",
|
||||
"filterActive": "filtër aktiv",
|
||||
"clearAll": "Pastro të gjitha",
|
||||
"clearing": "Duke pastruar...",
|
||||
"clearing": "Po pastron...",
|
||||
"cancel": "Anulo",
|
||||
"search": "Kërko",
|
||||
"groupedBy": "Grupuar sipas",
|
||||
"manageStatuses": "Menaxho Statuset",
|
||||
"managePhases": "Menaxho Fazat",
|
||||
"dragToReorderStatuses": "Zvarrit statuset për t'i rirenditur. Çdo status mund të ketë një kategori të ndryshme.",
|
||||
"groupedBy": "I grupuar sipas",
|
||||
"manageStatuses": "Menaxho statuset",
|
||||
"managePhases": "Menaxho fazat",
|
||||
"dragToReorderStatuses": "Statuset janë të organizuara sipas kategorive. Tërhiq për të rirenditur brenda kategorive. Kliko 'Shto status' për të krijuar statuse të reja në çdo kategori.",
|
||||
"enterNewStatusName": "Shkruani emrin e statusit të ri...",
|
||||
"addStatus": "Shto Status",
|
||||
"noStatusesFound": "Nuk u gjetën statuse. Krijoni statusin tuaj të parë më sipër.",
|
||||
"deleteStatus": "Fshi Statusin",
|
||||
"addStatus": "Shto status",
|
||||
"noStatusesFound": "Nuk ka statuse në këtë kategori",
|
||||
"deleteStatus": "Fshi statusin",
|
||||
"deleteStatusConfirm": "Jeni të sigurt që doni të fshini këtë status? Ky veprim nuk mund të zhbëhet.",
|
||||
"rename": "Riemëro",
|
||||
"rename": "Riemërto",
|
||||
"delete": "Fshi",
|
||||
"enterStatusName": "Shkruani emrin e statusit",
|
||||
"selectCategory": "Zgjidh kategorinë",
|
||||
"close": "Mbyll"
|
||||
"close": "Mbyll",
|
||||
"cannotMoveStatus": "Nuk mund të lëvizet statusi",
|
||||
"cannotMoveStatusMessage": "Nuk mund të lëvizet ky status sepse do të linte kategorinë '{{categoryName}}' bosh. Çdo kategori duhet të ketë të paktën një status.",
|
||||
"ok": "OK"
|
||||
}
|
||||
|
||||
@@ -28,15 +28,15 @@
|
||||
"endDateText": "Enddatum",
|
||||
"dueDateText": "Fälligkeitsdatum",
|
||||
"duedateText": "Fälligkeitsdatum",
|
||||
"completedDateText": "Abschlussdatum",
|
||||
"completeddateText": "Abschlussdatum",
|
||||
"createdDateText": "Erstellungsdatum",
|
||||
"createddateText": "Erstellungsdatum",
|
||||
"completedDateText": "Abgeschlossen am",
|
||||
"completeddateText": "Abgeschlossen am",
|
||||
"createdDateText": "Erstellt am",
|
||||
"createddateText": "Erstellt am",
|
||||
"lastUpdatedText": "Zuletzt aktualisiert",
|
||||
"lastupdatedText": "Zuletzt aktualisiert",
|
||||
"reporterText": "Melder",
|
||||
"dueTimeText": "Fällige Zeit",
|
||||
"duetimeText": "Fällige Zeit",
|
||||
"reporterText": "Berichterstatter",
|
||||
"dueTimeText": "Fälligkeitszeit",
|
||||
"duetimeText": "Fälligkeitszeit",
|
||||
|
||||
"lowText": "Niedrig",
|
||||
"mediumText": "Mittel",
|
||||
@@ -54,7 +54,7 @@
|
||||
"category": "Kategorie",
|
||||
"selectCategory": "Kategorie auswählen",
|
||||
"pleaseEnterAName": "Bitte geben Sie einen Namen ein",
|
||||
"pleaseSelectACategory": "Bitte wählen Sie eine Kategorie aus",
|
||||
"pleaseSelectACategory": "Bitte wählen Sie eine Kategorie",
|
||||
"create": "Erstellen",
|
||||
|
||||
"searchTasks": "Aufgaben suchen...",
|
||||
@@ -66,20 +66,22 @@
|
||||
"filterActive": "Filter aktiv",
|
||||
"clearAll": "Alle löschen",
|
||||
"clearing": "Wird gelöscht...",
|
||||
"cancel": "Stornieren",
|
||||
"cancel": "Abbrechen",
|
||||
"search": "Suchen",
|
||||
"groupedBy": "Gruppiert nach",
|
||||
"manageStatuses": "Status verwalten",
|
||||
"managePhases": "Phasen verwalten",
|
||||
"dragToReorderStatuses": "Ziehen Sie Status, um sie neu zu ordnen. Jeder Status kann eine andere Kategorie haben.",
|
||||
"enterNewStatusName": "Neuen Statusnamen eingeben...",
|
||||
"dragToReorderStatuses": "Status sind nach Kategorien organisiert. Ziehen Sie, um innerhalb von Kategorien neu zu ordnen. Klicken Sie auf 'Status hinzufügen', um neue Status in jeder Kategorie zu erstellen.",
|
||||
"enterNewStatusName": "Neuen Status-Namen eingeben...",
|
||||
"addStatus": "Status hinzufügen",
|
||||
"noStatusesFound": "Keine Status gefunden. Erstellen Sie Ihren ersten Status oben.",
|
||||
"noStatusesFound": "Keine Status in dieser Kategorie",
|
||||
"deleteStatus": "Status löschen",
|
||||
"deleteStatusConfirm": "Sind Sie sicher, dass Sie diesen Status löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"rename": "Umbenennen",
|
||||
"delete": "Löschen",
|
||||
"enterStatusName": "Statusnamen eingeben",
|
||||
"selectCategory": "Kategorie auswählen",
|
||||
"close": "Schließen"
|
||||
"enterStatusName": "Status-Namen eingeben",
|
||||
"close": "Schließen",
|
||||
"cannotMoveStatus": "Status kann nicht verschoben werden",
|
||||
"cannotMoveStatusMessage": "Dieser Status kann nicht verschoben werden, da die Kategorie '{{categoryName}}' leer bleiben würde. Jede Kategorie muss mindestens einen Status haben.",
|
||||
"ok": "OK"
|
||||
}
|
||||
|
||||
@@ -71,15 +71,17 @@
|
||||
"groupedBy": "Grouped by",
|
||||
"manageStatuses": "Manage Statuses",
|
||||
"managePhases": "Manage Phases",
|
||||
"dragToReorderStatuses": "Drag statuses to reorder them. Each status can have a different category.",
|
||||
"dragToReorderStatuses": "Statuses are organized by categories. Drag to reorder within categories. Click 'Add Status' to create new statuses in each category.",
|
||||
"enterNewStatusName": "Enter new status name...",
|
||||
"addStatus": "Add Status",
|
||||
"noStatusesFound": "No statuses found. Create your first status above.",
|
||||
"noStatusesFound": "No statuses in this category",
|
||||
"deleteStatus": "Delete Status",
|
||||
"deleteStatusConfirm": "Are you sure you want to delete this status? This action cannot be undone.",
|
||||
"rename": "Rename",
|
||||
"delete": "Delete",
|
||||
"enterStatusName": "Enter status name",
|
||||
"selectCategory": "Select category",
|
||||
"close": "Close"
|
||||
"close": "Close",
|
||||
"cannotMoveStatus": "Cannot Move Status",
|
||||
"cannotMoveStatusMessage": "Cannot move this status because it would leave the '{{categoryName}}' category empty. Each category must have at least one status.",
|
||||
"ok": "OK"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
"sortText": "Ordenar",
|
||||
"statusText": "Estado",
|
||||
"phaseText": "Fase",
|
||||
"memberText": "Miembros",
|
||||
"assigneesText": "Asignados",
|
||||
"priorityText": "Prioridad",
|
||||
"labelsText": "Etiquetas",
|
||||
"membersText": "Miembros",
|
||||
@@ -16,30 +18,32 @@
|
||||
"taskText": "Tarea",
|
||||
"descriptionText": "Descripción",
|
||||
"phasesText": "Fases",
|
||||
"listText": "Lista",
|
||||
"progressText": "Progreso",
|
||||
"timeTrackingText": "Seguimiento de tiempo",
|
||||
"timetrackingText": "Seguimiento de tiempo",
|
||||
"estimationText": "Estimación",
|
||||
"startDateText": "Fecha de inicio",
|
||||
"startdateText": "Fecha de inicio",
|
||||
"endDateText": "Fecha de fin",
|
||||
"dueDateText": "Fecha de vencimiento",
|
||||
"duedateText": "Fecha de vencimiento",
|
||||
"completedDateText": "Fecha de finalización",
|
||||
"completeddateText": "Fecha de finalización",
|
||||
"createdDateText": "Fecha de creación",
|
||||
"createddateText": "Fecha de creación",
|
||||
"lastUpdatedText": "Última actualización",
|
||||
"lastupdatedText": "Última actualización",
|
||||
"reporterText": "Reportero",
|
||||
"dueTimeText": "Hora de vencimiento",
|
||||
"lowText": "Baja",
|
||||
"mediumText": "Media",
|
||||
"highText": "Alta",
|
||||
"assigneesText": "Asignados",
|
||||
"timetrackingText": "Seguimiento de tiempo",
|
||||
"startdateText": "Fecha de inicio",
|
||||
"duedateText": "Fecha de vencimiento",
|
||||
"completeddateText": "Fecha de finalización",
|
||||
"createddateText": "Fecha de creación",
|
||||
"lastupdatedText": "Última actualización",
|
||||
"duetimeText": "Hora de vencimiento",
|
||||
"createStatusButtonTooltip": "Configuración de estados",
|
||||
"configPhaseButtonTooltip": "Configuración de fases",
|
||||
|
||||
"lowText": "Bajo",
|
||||
"mediumText": "Medio",
|
||||
"highText": "Alto",
|
||||
|
||||
"createStatusButtonTooltip": "Configuración de estado",
|
||||
"configPhaseButtonTooltip": "Configuración de fase",
|
||||
"noLabelsFound": "No se encontraron etiquetas",
|
||||
|
||||
"addStatusButton": "Agregar estado",
|
||||
@@ -49,8 +53,8 @@
|
||||
"name": "Nombre",
|
||||
"category": "Categoría",
|
||||
"selectCategory": "Seleccionar una categoría",
|
||||
"pleaseEnterAName": "Por favor, ingrese un nombre",
|
||||
"pleaseSelectACategory": "Por favor, seleccione una categoría",
|
||||
"pleaseEnterAName": "Por favor ingrese un nombre",
|
||||
"pleaseSelectACategory": "Por favor seleccione una categoría",
|
||||
"create": "Crear",
|
||||
|
||||
"searchTasks": "Buscar tareas...",
|
||||
@@ -65,17 +69,19 @@
|
||||
"cancel": "Cancelar",
|
||||
"search": "Buscar",
|
||||
"groupedBy": "Agrupado por",
|
||||
"manageStatuses": "Gestionar Estados",
|
||||
"managePhases": "Gestionar Fases",
|
||||
"dragToReorderStatuses": "Arrastra los estados para reordenarlos. Cada estado puede tener una categoría diferente.",
|
||||
"enterNewStatusName": "Introducir nuevo nombre de estado...",
|
||||
"addStatus": "Añadir Estado",
|
||||
"noStatusesFound": "No se encontraron estados. Crea tu primer estado arriba.",
|
||||
"deleteStatus": "Eliminar Estado",
|
||||
"deleteStatusConfirm": "¿Estás seguro de que quieres eliminar este estado? Esta acción no se puede deshacer.",
|
||||
"manageStatuses": "Gestionar estados",
|
||||
"managePhases": "Gestionar fases",
|
||||
"dragToReorderStatuses": "Los estados están organizados por categorías. Arrastra para reordenar dentro de las categorías. Haz clic en 'Agregar estado' para crear nuevos estados en cada categoría.",
|
||||
"enterNewStatusName": "Ingrese el nombre del nuevo estado...",
|
||||
"addStatus": "Agregar estado",
|
||||
"noStatusesFound": "No hay estados en esta categoría",
|
||||
"deleteStatus": "Eliminar estado",
|
||||
"deleteStatusConfirm": "¿Está seguro de que desea eliminar este estado? Esta acción no se puede deshacer.",
|
||||
"rename": "Renombrar",
|
||||
"delete": "Eliminar",
|
||||
"enterStatusName": "Introducir nombre del estado",
|
||||
"selectCategory": "Seleccionar categoría",
|
||||
"close": "Cerrar"
|
||||
"enterStatusName": "Ingrese el nombre del estado",
|
||||
"close": "Cerrar",
|
||||
"cannotMoveStatus": "No se puede mover el estado",
|
||||
"cannotMoveStatusMessage": "No se puede mover este estado porque dejaría vacía la categoría '{{categoryName}}'. Cada categoría debe tener al menos un estado.",
|
||||
"ok": "OK"
|
||||
}
|
||||
|
||||
@@ -6,8 +6,10 @@
|
||||
"sortText": "Ordenar",
|
||||
"statusText": "Status",
|
||||
"phaseText": "Fase",
|
||||
"memberText": "Membros",
|
||||
"assigneesText": "Atribuídos",
|
||||
"priorityText": "Prioridade",
|
||||
"labelsText": "Rótulos",
|
||||
"labelsText": "Etiquetas",
|
||||
"membersText": "Membros",
|
||||
"groupByText": "Agrupar por",
|
||||
"showArchivedText": "Mostrar arquivados",
|
||||
@@ -16,41 +18,42 @@
|
||||
"taskText": "Tarefa",
|
||||
"descriptionText": "Descrição",
|
||||
"phasesText": "Fases",
|
||||
"listText": "Lista",
|
||||
"progressText": "Progresso",
|
||||
"timeTrackingText": "Rastreamento de Tempo",
|
||||
"timeTrackingText": "Rastreamento de tempo",
|
||||
"timetrackingText": "Rastreamento de tempo",
|
||||
"estimationText": "Estimativa",
|
||||
"startDateText": "Data de Início",
|
||||
"endDateText": "Data de Fim",
|
||||
"dueDateText": "Data de Vencimento",
|
||||
"completedDateText": "Data de Conclusão",
|
||||
"createdDateText": "Data de Criação",
|
||||
"lastUpdatedText": "Última Atualização",
|
||||
"startDateText": "Data de início",
|
||||
"startdateText": "Data de início",
|
||||
"endDateText": "Data de fim",
|
||||
"dueDateText": "Data de vencimento",
|
||||
"duedateText": "Data de vencimento",
|
||||
"completedDateText": "Data de conclusão",
|
||||
"completeddateText": "Data de conclusão",
|
||||
"createdDateText": "Data de criação",
|
||||
"createddateText": "Data de criação",
|
||||
"lastUpdatedText": "Última atualização",
|
||||
"lastupdatedText": "Última atualização",
|
||||
"reporterText": "Relator",
|
||||
"dueTimeText": "Hora de Vencimento",
|
||||
"assigneesText": "Atribuições",
|
||||
"timetrackingText": "Rastreamento de Tempo",
|
||||
"startdateText": "Data de Início",
|
||||
"duedateText": "Data de Vencimento",
|
||||
"completeddateText": "Data de Conclusão",
|
||||
"createddateText": "Data de Criação",
|
||||
"lastupdatedText": "Última Atualização",
|
||||
"dueTimeText": "Hora de vencimento",
|
||||
"duetimeText": "Hora de vencimento",
|
||||
|
||||
"lowText": "Baixa",
|
||||
"mediumText": "Média",
|
||||
"highText": "Alta",
|
||||
|
||||
"createStatusButtonTooltip": "Configurações de Status",
|
||||
"configPhaseButtonTooltip": "Configurações de Fase",
|
||||
"noLabelsFound": "Nenhum rótulo encontrado",
|
||||
"createStatusButtonTooltip": "Configurações de status",
|
||||
"configPhaseButtonTooltip": "Configurações de fase",
|
||||
"noLabelsFound": "Nenhuma etiqueta encontrada",
|
||||
|
||||
"addStatusButton": "Adicionar Status",
|
||||
"addPhaseButton": "Adicionar Fase",
|
||||
"addStatusButton": "Adicionar status",
|
||||
"addPhaseButton": "Adicionar fase",
|
||||
|
||||
"createStatus": "Criar Status",
|
||||
"createStatus": "Criar status",
|
||||
"name": "Nome",
|
||||
"category": "Categoria",
|
||||
"selectCategory": "Selecionar uma categoria",
|
||||
"pleaseEnterAName": "Por favor, insira um nome",
|
||||
"pleaseEnterAName": "Por favor, digite um nome",
|
||||
"pleaseSelectACategory": "Por favor, selecione uma categoria",
|
||||
"create": "Criar",
|
||||
|
||||
@@ -66,17 +69,19 @@
|
||||
"cancel": "Cancelar",
|
||||
"search": "Pesquisar",
|
||||
"groupedBy": "Agrupado por",
|
||||
"manageStatuses": "Gerenciar Status",
|
||||
"managePhases": "Gerenciar Fases",
|
||||
"dragToReorderStatuses": "Arraste os status para reordená-los. Cada status pode ter uma categoria diferente.",
|
||||
"enterNewStatusName": "Digite o novo nome do status...",
|
||||
"addStatus": "Adicionar Status",
|
||||
"noStatusesFound": "Nenhum status encontrado. Crie seu primeiro status acima.",
|
||||
"deleteStatus": "Excluir Status",
|
||||
"manageStatuses": "Gerenciar status",
|
||||
"managePhases": "Gerenciar fases",
|
||||
"dragToReorderStatuses": "Os status estão organizados por categorias. Arraste para reordenar dentro das categorias. Clique em 'Adicionar status' para criar novos status em cada categoria.",
|
||||
"enterNewStatusName": "Digite o nome do novo status...",
|
||||
"addStatus": "Adicionar status",
|
||||
"noStatusesFound": "Nenhum status nesta categoria",
|
||||
"deleteStatus": "Excluir status",
|
||||
"deleteStatusConfirm": "Tem certeza de que deseja excluir este status? Esta ação não pode ser desfeita.",
|
||||
"rename": "Renomear",
|
||||
"delete": "Excluir",
|
||||
"enterStatusName": "Digite o nome do status",
|
||||
"selectCategory": "Selecionar categoria",
|
||||
"close": "Fechar"
|
||||
"close": "Fechar",
|
||||
"cannotMoveStatus": "Não é possível mover o status",
|
||||
"cannotMoveStatusMessage": "Não é possível mover este status porque deixaria a categoria '{{categoryName}}' vazia. Cada categoria deve ter pelo menos um status.",
|
||||
"ok": "OK"
|
||||
}
|
||||
|
||||
@@ -75,5 +75,8 @@
|
||||
"delete": "删除",
|
||||
"enterStatusName": "输入状态名称",
|
||||
"selectCategory": "选择类别",
|
||||
"close": "关闭"
|
||||
"close": "关闭",
|
||||
"cannotMoveStatus": "无法移动状态",
|
||||
"cannotMoveStatusMessage": "无法移动此状态,因为这会使\"{{categoryName}}\"类别为空。每个类别必须至少有一个状态。",
|
||||
"ok": "确定"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user