[WEB-5624] chore: added webhook translations #8312

This commit is contained in:
b-saikrishnakanth
2025-12-11 17:02:20 +05:30
committed by GitHub
parent 8e518966c2
commit 906c1b51bb
20 changed files with 159 additions and 58 deletions

View File

@@ -2,24 +2,24 @@ import { useState } from "react";
import { intersection } from "lodash-es";
import { observer } from "mobx-react";
import { Controller, useForm } from "react-hook-form";
import { Info } from "lucide-react";
// import { Info } from "lucide-react";
import {
EUserPermissions,
EUserPermissionsLevel,
EXPORTERS_LIST,
ISSUE_DISPLAY_FILTERS_BY_PAGE,
// ISSUE_DISPLAY_FILTERS_BY_PAGE,
WORKSPACE_SETTINGS_TRACKER_EVENTS,
WORKSPACE_SETTINGS_TRACKER_ELEMENTS,
} from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/propel/button";
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
import { Tooltip } from "@plane/propel/tooltip";
import { EIssuesStoreType } from "@plane/types";
// import { Tooltip } from "@plane/propel/tooltip";
// import { EIssuesStoreType } from "@plane/types";
import type { TWorkItemFilterExpression } from "@plane/types";
import { CustomSearchSelect, CustomSelect } from "@plane/ui";
import { WorkspaceLevelWorkItemFiltersHOC } from "@/components/work-item-filters/filters-hoc/workspace-level";
import { WorkItemFiltersRow } from "@/components/work-item-filters/filters-row";
// import { WorkspaceLevelWorkItemFiltersHOC } from "@/components/work-item-filters/filters-hoc/workspace-level";
// import { WorkItemFiltersRow } from "@/components/work-item-filters/filters-row";
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useProject } from "@/hooks/store/use-project";
import { useUser, useUserPermissions } from "@/hooks/store/user";
@@ -37,15 +37,15 @@ type FormData = {
filters: TWorkItemFilterExpression;
};
const initialWorkItemFilters = {
richFilters: {},
displayFilters: {},
displayProperties: {},
kanbanFilters: {
group_by: [],
sub_group_by: [],
},
};
// const initialWorkItemFilters = {
// richFilters: {},
// displayFilters: {},
// displayProperties: {},
// kanbanFilters: {
// group_by: [],
// sub_group_by: [],
// },
// };
const projectExportService = new ProjectExportService();
@@ -101,52 +101,57 @@ export const ExportForm = observer(function ExportForm(props: Props) {
multiple: formData.project.length > 1,
rich_filters: formData.filters,
};
await projectExportService
.csvExport(workspaceSlug, payload)
.then(() => {
mutateServices();
setExportLoading(false);
captureSuccess({
eventName: WORKSPACE_SETTINGS_TRACKER_EVENTS.csv_exported,
payload: {
provider: formData.provider.provider,
},
});
setToast({
type: TOAST_TYPE.SUCCESS,
title: t("workspace_settings.settings.exports.modal.toasts.success.title"),
message: t("workspace_settings.settings.exports.modal.toasts.success.message", {
entity:
formData.provider.provider === "csv"
? "CSV"
: formData.provider.provider === "xlsx"
? "Excel"
: formData.provider.provider === "json"
? "JSON"
: "",
}),
});
})
.catch((error) => {
setExportLoading(false);
captureError({
eventName: WORKSPACE_SETTINGS_TRACKER_EVENTS.csv_exported,
payload: {
provider: formData.provider.provider,
},
error: error as Error,
});
setToast({
type: TOAST_TYPE.ERROR,
title: t("error"),
message: t("workspace_settings.settings.exports.modal.toasts.error.message"),
});
try {
await projectExportService.csvExport(workspaceSlug, payload);
mutateServices();
setExportLoading(false);
captureSuccess({
eventName: WORKSPACE_SETTINGS_TRACKER_EVENTS.csv_exported,
payload: {
provider: formData.provider.provider,
},
});
setToast({
type: TOAST_TYPE.SUCCESS,
title: t("workspace_settings.settings.exports.modal.toasts.success.title"),
message: t("workspace_settings.settings.exports.modal.toasts.success.message", {
entity:
formData.provider.provider === "csv"
? "CSV"
: formData.provider.provider === "xlsx"
? "Excel"
: formData.provider.provider === "json"
? "JSON"
: "",
}),
});
} catch (error) {
setExportLoading(false);
captureError({
eventName: WORKSPACE_SETTINGS_TRACKER_EVENTS.csv_exported,
payload: {
provider: formData.provider.provider,
},
error: error as Error,
});
setToast({
type: TOAST_TYPE.ERROR,
title: t("error"),
message: t("workspace_settings.settings.exports.modal.toasts.error.message"),
});
}
} else {
setExportLoading(false);
}
}
return (
<form onSubmit={handleSubmit(ExportCSVToMail)} className="flex flex-col gap-4 mt-4">
<form
onSubmit={(e) => {
void handleSubmit(ExportCSVToMail)(e);
}}
className="flex flex-col gap-4 mt-4"
>
<div className="flex gap-4">
{/* Project Selector */}
<div className="w-1/2">
@@ -210,7 +215,7 @@ export const ExportForm = observer(function ExportForm(props: Props) {
</div>
</div>
{/* Rich Filters */}
<div className="w-full">
{/* <div className="w-full">
<div className="flex items-center gap-2 mb-2">
<div className="text-sm font-medium text-custom-text-200 leading-tight">{t("common.filters")}</div>
<Tooltip
@@ -251,7 +256,7 @@ export const ExportForm = observer(function ExportForm(props: Props) {
</WorkspaceLevelWorkItemFiltersHOC>
)}
/>
</div>
</div> */}
<div className="flex items-center justify-between">
<Button
variant="primary"

View File

@@ -188,5 +188,10 @@ export default {
"Generujte bezpečné API tokeny pro připojení vašeho pracovního prostoru s externími systémy a aplikacemi.",
cta_primary: "Přidat API token",
},
webhooks: {
title: "Zatím nebyl přidán žádný Webhook",
description: "Automatizujte oznámení externím službám při výskytu událostí projektu.",
cta_primary: "Přidat webhook",
},
},
} as const;

View File

@@ -198,5 +198,10 @@ export default {
"Generieren Sie sichere API-Tokens, um Ihren Workspace mit externen Systemen und Anwendungen zu verbinden.",
cta_primary: "API-Token hinzufügen",
},
webhooks: {
title: "Noch kein Webhook hinzugefügt",
description: "Automatisieren Sie Benachrichtigungen an externe Dienste, wenn Projektereignisse auftreten.",
cta_primary: "Webhook hinzufügen",
},
},
} as const;

View File

@@ -183,5 +183,10 @@ export default {
description: "Generate secure API tokens to connect your workspace with external systems and applications.",
cta_primary: "Add API token",
},
webhooks: {
title: "No Webhook added yet",
description: "Automate notifications to external services when project events occur.",
cta_primary: "Add webhook",
},
},
} as const;

View File

@@ -192,5 +192,10 @@ export default {
"Genera tokens API seguros para conectar tu espacio de trabajo con sistemas y aplicaciones externos.",
cta_primary: "Agregar token API",
},
webhooks: {
title: "Aún no se ha agregado ningún Webhook",
description: "Automatiza las notificaciones a servicios externos cuando ocurran eventos del proyecto.",
cta_primary: "Agregar webhook",
},
},
} as const;

View File

@@ -195,5 +195,11 @@ export default {
"Générez des jetons API sécurisés pour connecter votre espace de travail avec des systèmes et applications externes.",
cta_primary: "Ajouter un jeton API",
},
webhooks: {
title: "Aucun Webhook ajouté pour le moment",
description:
"Automatisez les notifications vers des services externes lorsque des événements de projet se produisent.",
cta_primary: "Ajouter un webhook",
},
},
} as const;

View File

@@ -192,5 +192,10 @@ export default {
"Hasilkan token API yang aman untuk menghubungkan ruang kerja Anda dengan sistem dan aplikasi eksternal.",
cta_primary: "Tambahkan token API",
},
webhooks: {
title: "Belum ada Webhook yang ditambahkan",
description: "Otomatisasi notifikasi ke layanan eksternal ketika peristiwa proyek terjadi.",
cta_primary: "Tambahkan webhook",
},
},
} as const;

View File

@@ -192,5 +192,10 @@ export default {
description: "Genera token API sicuri per connettere il tuo workspace con sistemi e applicazioni esterne.",
cta_primary: "Aggiungi token API",
},
webhooks: {
title: "Nessun Webhook aggiunto ancora",
description: "Automatizza le notifiche a servizi esterni quando si verificano eventi del progetto.",
cta_primary: "Aggiungi webhook",
},
},
} as const;

View File

@@ -182,5 +182,10 @@ export default {
description: "ワークスペースを外部システムおよびアプリケーションと接続するための安全なAPIトークンを生成します。",
cta_primary: "APIトークンを追加",
},
webhooks: {
title: "まだWebhookが追加されていません",
description: "プロジェクトイベントが発生したときに外部サービスへの通知を自動化します。",
cta_primary: "Webhookを追加",
},
},
} as const;

View File

@@ -181,5 +181,10 @@ export default {
description: "작업 공간을 외부 시스템 및 애플리케이션과 연결하기 위한 보안 API 토큰을 생성하세요.",
cta_primary: "API 토큰 추가",
},
webhooks: {
title: "아직 웹훅이 추가되지 않았습니다",
description: "프로젝트 이벤트가 발생할 때 외부 서비스에 대한 알림을 자동화하세요.",
cta_primary: "웹훅 추가",
},
},
} as const;

View File

@@ -193,5 +193,10 @@ export default {
"Generuj bezpieczne tokeny API, aby połączyć swój obszar roboczy z zewnętrznymi systemami i aplikacjami.",
cta_primary: "Dodaj token API",
},
webhooks: {
title: "Nie dodano jeszcze webhooka",
description: "Automatyzuj powiadomienia do usług zewnętrznych, gdy wystąpią zdarzenia projektowe.",
cta_primary: "Dodaj webhook",
},
},
} as const;

View File

@@ -193,5 +193,10 @@ export default {
"Gere tokens de API seguros para conectar seu espaço de trabalho com sistemas e aplicativos externos.",
cta_primary: "Adicionar token de API",
},
webhooks: {
title: "Ainda não foi adicionado nenhum Webhook",
description: "Automatize notificações para serviços externos quando ocorrerem eventos do projeto.",
cta_primary: "Adicionar webhook",
},
},
} as const;

View File

@@ -191,5 +191,10 @@ export default {
"Generați token-uri API sigure pentru a conecta spațiul dvs. de lucru cu sisteme și aplicații externe.",
cta_primary: "Adăugați token API",
},
webhooks: {
title: "Încă nu s-a adăugat niciun Webhook",
description: "Automatizați notificările către servicii externe când apar evenimente ale proiectului.",
cta_primary: "Adăugați webhook",
},
},
} as const;

View File

@@ -194,5 +194,10 @@ export default {
"Генерируйте безопасные API-токены для подключения вашего рабочего пространства к внешним системам и приложениям.",
cta_primary: "Добавить API-токен",
},
webhooks: {
title: "Вебхуков пока не добавлено",
description: "Автоматизируйте уведомления внешних сервисов при возникновении событий проекта.",
cta_primary: "Добавить вебхук",
},
},
} as const;

View File

@@ -191,5 +191,10 @@ export default {
"Generujte bezpečné API tokeny na pripojenie vášho pracovného priestoru s externými systémami a aplikáciami.",
cta_primary: "Pridať API token",
},
webhooks: {
title: "Zatiaľ nebol pridaný žiadny Webhook",
description: "Automatizujte oznámenia externým službám pri výskyte udalostí projektu.",
cta_primary: "Pridať webhook",
},
},
} as const;

View File

@@ -190,5 +190,10 @@ export default {
"Çalışma alanınızı harici sistemler ve uygulamalarla bağlamak için güvenli API token'ları oluşturun.",
cta_primary: "API token'ı ekle",
},
webhooks: {
title: "Henüz Webhook eklenmedi",
description: "Proje olayları gerçekleştiğinde harici hizmetlere bildirimleri otomatikleştirin.",
cta_primary: "Webhook ekle",
},
},
} as const;

View File

@@ -193,5 +193,10 @@ export default {
"Генеруйте безпечні API токени для підключення вашого робочого простору до зовнішніх систем та додатків.",
cta_primary: "Додати API токен",
},
webhooks: {
title: "Ще не додано Webhook",
description: "Автоматизуйте сповіщення зовнішнім сервісам, коли відбуваються події проєкту.",
cta_primary: "Додати webhook",
},
},
} as const;

View File

@@ -191,5 +191,10 @@ export default {
"Tạo token API an toàn để kết nối không gian làm việc của bạn với các hệ thống và ứng dụng bên ngoài.",
cta_primary: "Thêm token API",
},
webhooks: {
title: "Chưa thêm Webhook",
description: "Tự động hóa thông báo đến các dịch vụ bên ngoài khi sự kiện dự án xảy ra.",
cta_primary: "Thêm webhook",
},
},
} as const;

View File

@@ -177,5 +177,10 @@ export default {
description: "生成安全的 API 令牌以将工作空间与外部系统和应用程序连接。",
cta_primary: "添加 API 令牌",
},
webhooks: {
title: "尚未添加 Webhook",
description: "在项目事件发生时自动向外部服务发送通知。",
cta_primary: "添加 webhook",
},
},
} as const;

View File

@@ -177,5 +177,10 @@ export default {
description: "產生安全的 API 權杖以將工作區與外部系統和應用程式連線。",
cta_primary: "新增 API 權杖",
},
webhooks: {
title: "尚未新增 Webhook",
description: "在專案事件發生時自動向外部服務傳送通知。",
cta_primary: "新增 webhook",
},
},
} as const;