feat(logs): add workspace activity log page

This commit is contained in:
2026-04-28 16:42:36 +03:30
parent 088ad8760b
commit 8bd0e908a1
11 changed files with 1247 additions and 22 deletions

View File

@@ -261,10 +261,11 @@ export const fa = {
next: "بعدی",
},
sidebar: {
timesheet: 'تایم‌شیت',
reports: 'گزارش‌ها',
workspaces: 'ورک‌اسپیسها',
sidebar: {
timesheet: 'تایم‌شیت',
reports: 'گزارش‌ها',
logs: "لاگها",
workspaces: 'ورک‌اسپیس‌ها',
clients: 'مشتری‌ها',
projects: "پروژه‌ها",
tags: "تگ‌ها",
@@ -433,7 +434,7 @@ export const fa = {
deletedProjectLabel: "پروژه حذف‌شده",
deletedTagLabel: "تگ حذف‌شده",
},
reports: {
reports: {
title: "گزارش‌ها",
description: (workspaceName: string) => `مرور گزارش فعالیت برای ${workspaceName}`,
selectWorkspace: "لطفاً ابتدا یک ورک‌اسپیس انتخاب کنید.",
@@ -480,10 +481,81 @@ export const fa = {
loadError: "دریافت گزارش‌ها با خطا مواجه شد.",
loadDayDetailsError: "دریافت جزئیات روز با خطا مواجه شد.",
loadFiltersError: "دریافت فیلترهای گزارش با خطا مواجه شد.",
exportQueued: "درخواست خروجی ثبت شد. پیوند دانلود از طریق اعلان ارسال می‌شود.",
exportError: "ثبت درخواست خروجی با خطا مواجه شد.",
},
notifications: {
exportQueued: "درخواست خروجی ثبت شد. پیوند دانلود از طریق اعلان ارسال می‌شود.",
exportError: "ثبت درخواست خروجی با خطا مواجه شد.",
},
logs: {
eyebrow: "فعالیت‌های ورک‌اسپیس",
title: "لاگ‌های فعالیت",
description: (workspaceName: string) => `مرور رویدادهای ثبت‌شده در ${workspaceName}`,
selectWorkspace: "لطفاً ابتدا یک ورک‌اسپیس انتخاب کنید.",
unauthorized: "فقط مالک و ادمین می‌توانند لاگ‌های فعالیت ورک‌اسپیس را مشاهده کنند.",
loading: "در حال بارگذاری لاگ‌ها...",
loadingUsers: "در حال بارگذاری کاربران...",
loadingDetails: "در حال بارگذاری جزئیات...",
loadError: "دریافت لاگ‌ها با خطا مواجه شد.",
loadDetailsError: "دریافت جزئیات لاگ با خطا مواجه شد.",
loadFiltersError: "دریافت فیلترهای لاگ با خطا مواجه شد.",
search: "جست‌وجو",
searchPlaceholder: "جست‌وجوی لاگ‌ها...",
section: "بخش",
allSections: "همه بخش‌ها",
event: "رویداد",
allEvents: "همه رویدادها",
actor: "انجام‌دهنده",
allActors: "همه کاربران",
searchActors: "جست‌وجوی کاربران...",
ordering: "مرتب‌سازی",
newestFirst: "جدیدترین",
oldestFirst: "قدیمی‌ترین",
fromDate: "از تاریخ",
toDate: "تا تاریخ",
clear: "پاک کردن",
apply: "اعمال",
loadMore: "بارگذاری بیشتر",
totalLogs: "کل لاگ‌ها",
activeFilters: "فیلترهای فعال",
latestActivity: "آخرین فعالیت",
resultsCount: (count: number) => `${count} نتیجه`,
empty: "لاگ فعالیتی پیدا نشد",
emptyHint: "فیلترها را تغییر دهید یا منتظر فعالیت جدید بمانید.",
detailsTitle: "جزئیات فعالیت",
detailsHint: "برای بررسی دقیق تغییرات، یک مورد را انتخاب کنید.",
selectLogHint: "یک لاگ را برای مشاهده جزئیات انتخاب کنید.",
target: "هدف",
timestamp: "زمان",
remoteAddress: "آدرس شبکه",
previousValue: "مقدار قبلی",
currentValue: "مقدار جدید",
changesTitle: "تغییرات",
noDetails: "برای این رویداد جزئیات فیلدی در دسترس نیست.",
snapshot: "نمونه ذخیره‌شده",
unknownActor: "کاربر نامشخص",
summary: (actor: string, event: string, section: string, target: string) =>
`${actor} ${target} را در بخش ${section} ${event}`,
sections: {
workspace: "ورک‌اسپیس",
workspace_members: "اعضای ورک‌اسپیس",
clients: "مشتری‌ها",
projects: "پروژه‌ها",
project_members: "اعضای پروژه",
tags: "تگ‌ها",
time_entries: "ورودی‌های زمان",
rates: "نرخ‌ها",
report_exports: "خروجی‌های گزارش",
},
events: {
create: "ایجاد کرد",
update: "ویرایش کرد",
delete: "حذف کرد",
restore: "بازیابی کرد",
archive: "بایگانی کرد",
unarchive: "از بایگانی خارج کرد",
activate: "فعال کرد",
deactivate: "غیرفعال کرد",
},
},
notifications: {
title: "اعلان‌ها",
open: "باز کردن اعلان‌ها",
empty: "هنوز اعلانی وجود ندارد.",