feat(user-perf): add ui user-perf + dotfile filter

- add resource kind filter (file, folder, drive) in shared section (localStorage stored)
- add user preferences serverside store
- add client side dotfile filter (show/hide dotfiles) (user perf stored, default: dotfiles are shown)
  for security trashed dotfile are always displayed

  protection added: if a folder has only hidden items, a notification invite user to display it
  if a user rename or create a hidden item, a notification tells it to user
This commit is contained in:
Edouard Vanbelle
2026-07-13 19:26:19 +02:00
parent 06da428493
commit 5aaf49859e
43 changed files with 1676 additions and 121 deletions
+28 -2
View File
@@ -58,6 +58,8 @@
"photos": {
"empty_state": "هنوز عکسی نیست",
"empty_hint": "تصاویر یا ویدیوها را آپلود کنید تا اینجا نمایش داده شوند",
"empty_hidden": "{{n}} عکس طبق تنظیمات شما پنهان است",
"empty_hidden_hint": "برای مشاهده آن‌ها \"پنهان کردن پرونده‌های پنهان\" را در پروفایل خود غیرفعال کنید.",
"items_selected": "انتخاب شده",
"view_daily": "روز",
"view_monthly": "ماه",
@@ -365,7 +367,15 @@
"folder": "پوشه",
"new_folder": "پوشهٔ جدید",
"share": "هم‌رسانی",
"view": "مشاهده"
"view": "مشاهده",
"empty_hidden_title": "{{n}} مورد پنهان در این پوشه",
"empty_hidden_hint": "پرونده‌هایی که نامشان با '.' شروع می‌شود پنهان هستند. تنظیم را تغییر دهید تا آن‌ها را ببینید.",
"show_hidden": "نمایش پرونده‌های پنهان",
"upload_dotfile_hidden": "{{n}} فایل بارگذاری شد اما طبق تنظیمات شما پنهان است.",
"rename_dotfile_hidden": "نام به \"{{name}}\" تغییر کرد — اکنون طبق تنظیمات شما پنهان است.",
"new_folder_dotfile_hidden": "پوشه \"{{name}}\" ایجاد شد — طبق تنظیمات شما پنهان است.",
"dotfiles_hidden_toast": "پرونده‌های پنهان مخفی شد",
"dotfiles_shown_toast": "پرونده‌های پنهان نمایش داده شد"
},
"dialogs": {
"rename_folder": "تغییر نام پوشه",
@@ -570,6 +580,8 @@
"accessed": "دسترسی یافته",
"empty_state": "هنوز هیچ پروندهٔ اخیر وجود ندارد",
"empty_hint": "پرونده‌هایی که باز می‌کنید اینجا ظاهر می‌شوند",
"empty_hidden_state": "{{n}} مورد اخیر طبق تنظیمات شما پنهان است",
"empty_hidden_hint": "برای مشاهده آن‌ها \"پنهان کردن پرونده‌های پنهان\" را در پروفایل خود غیرفعال کنید.",
"loadMore": "بارگذاری بیشتر"
},
"batch": {
@@ -862,6 +874,7 @@
"family_name": "نام خانوادگی",
"notify_on_share": "وقتی کسی با من چیزی به اشتراک می‌گذارد، به من ایمیل بزن",
"notify_on_share_hint": "وقتی تیک‌خورده نباشد، اشتراک‌گذاری‌ها همچنان در حساب شما نمایش داده می‌شوند — فقط ایمیلی درباره آنها دریافت نخواهید کرد.",
"hide_dotfiles": "پنهان کردن فایل‌هایی که نامشان با نقطه شروع می‌شود (.env، .git، …)",
"save_profile": "ذخیره تغییرات",
"profile_saved": "نمایه به‌روز شد",
"profile_no_changes": "تغییری برای ذخیره وجود ندارد.",
@@ -999,7 +1012,17 @@
"notifyRateLimited": "اعلان‌های زیادی برای این گیرنده — بعداً دوباره تلاش کنید.",
"removeAccess": "حذف دسترسی",
"resendInvitation": "ارسال مجدد ایمیل دعوت",
"publicLinks": "Public links"
"publicLinks": "Public links",
"filter": {
"button": "انواع",
"title": "فیلتر بر اساس نوع",
"files": "پرونده‌ها",
"folders": "پوشه‌ها",
"drives": "درایوها",
"emptyTitle": "هیچ اشتراکی با فیلتر فعلی مطابقت ندارد",
"emptyHint": "فیلتر نوع را تنظیم کنید یا آن را به حالت پیش‌فرض (پرونده‌ها + پوشه‌ها) بازنشانی کنید.",
"reset": "بازنشانی فیلتر"
}
},
"sort": {
"asc": "ascending",
@@ -1129,5 +1152,8 @@
"view": {
"grid": "نمای شبکه‌ای",
"list": "نمای فهرستی"
},
"preferences": {
"save_failed": "ذخیره ترجیح شما ممکن نشد. لطفاً دوباره تلاش کنید."
}
}