feat: slide panels, task calendar, team management, project editing, collapsible sections

- Add SlidePanel, TaskDetailPanel, PostDetailPanel, TeamPanel, TeamMemberPanel
- Add ProjectEditPanel, CollapsibleSection, DatePresetPicker, TaskCalendarView
- Update App, AuthContext, i18n (ar/en), PostProduction, ProjectDetail, Projects
- Update Settings, Tasks, Team pages
- Update InteractiveTimeline, MemberCard, ProjectCard, TaskCard components
- Update server API utilities
- Remove tracked server/node_modules (now properly gitignored)
This commit is contained in:
fahed
2026-02-19 11:35:42 +03:00
parent e76be78498
commit 4522edeea8
2207 changed files with 3767 additions and 831225 deletions
+9 -32
View File
@@ -16,7 +16,6 @@
"nav.logout": "تسجيل الخروج",
"nav.brands": "العلامات التجارية",
"nav.collapse": "طي",
"common.save": "حفظ",
"common.cancel": "إلغاء",
"common.delete": "حذف",
@@ -33,13 +32,11 @@
"common.updateFailed": "فشل التحديث. حاول مجدداً.",
"common.deleteFailed": "فشل الحذف. حاول مجدداً.",
"common.clearFilters": "مسح الفلاتر",
"auth.login": "تسجيل الدخول",
"auth.email": "البريد الإلكتروني",
"auth.password": "كلمة المرور",
"auth.loginBtn": "دخول",
"auth.signingIn": "جاري تسجيل الدخول...",
"dashboard.title": "لوحة التحكم",
"dashboard.welcomeBack": "مرحباً بعودتك",
"dashboard.happeningToday": "إليك ما يحدث مع تسويقك اليوم.",
@@ -70,7 +67,6 @@
"dashboard.upcomingDeadlines": "المواعيد النهائية القادمة",
"dashboard.noUpcomingDeadlines": "لا توجد مواعيد نهائية هذا الأسبوع. 🎉",
"dashboard.loadingHub": "جاري تحميل المركز الرقمي...",
"posts.title": "إنتاج المحتوى",
"posts.newPost": "منشور جديد",
"posts.editPost": "تعديل المنشور",
@@ -126,13 +122,11 @@
"posts.periodFrom": "من",
"posts.periodTo": "إلى",
"posts.tryDifferentFilter": "جرب تعديل الفلاتر لرؤية المزيد من المنشورات.",
"posts.status.draft": "مسودة",
"posts.status.in_review": "قيد المراجعة",
"posts.status.approved": "مُعتمد",
"posts.status.scheduled": "مجدول",
"posts.status.published": "منشور",
"tasks.title": "المهام",
"tasks.newTask": "مهمة جديدة",
"tasks.editTask": "تعديل المهمة",
@@ -163,7 +157,6 @@
"tasks.task": "مهمة",
"tasks.tasks": "مهام",
"tasks.of": "من",
"tasks.priority.low": "منخفض",
"tasks.priority.medium": "متوسط",
"tasks.priority.high": "عالي",
@@ -206,12 +199,10 @@
"tasks.removeThumbnail": "إزالة الصورة المصغرة",
"tasks.thumbnail": "الصورة المصغرة",
"tasks.dropOrClick": "اسحب ملفاً أو انقر للرفع",
"projects.thumbnail": "الصورة المصغرة",
"projects.uploadThumbnail": "رفع صورة مصغرة",
"projects.changeThumbnail": "تغيير الصورة المصغرة",
"projects.removeThumbnail": "إزالة الصورة المصغرة",
"team.title": "الفريق",
"team.members": "أعضاء الفريق",
"team.addMember": "إضافة عضو",
@@ -243,15 +234,12 @@
"team.noTasks": "لا توجد مهام",
"team.toDo": "للتنفيذ",
"team.inProgress": "قيد التنفيذ",
"campaigns.title": "الحملات",
"campaigns.newCampaign": "حملة جديدة",
"campaigns.noCampaigns": "لا توجد حملات",
"assets.title": "الأصول",
"assets.upload": "رفع",
"assets.noAssets": "لا توجد أصول",
"brands.title": "العلامات التجارية",
"brands.addBrand": "إضافة علامة",
"brands.editBrand": "تعديل العلامة",
@@ -266,7 +254,6 @@
"brands.uploadLogo": "رفع الشعار",
"brands.changeLogo": "تغيير الشعار",
"brands.manageBrands": "إدارة العلامات التجارية لمؤسستك",
"settings.title": "الإعدادات",
"settings.language": "اللغة",
"settings.english": "English",
@@ -294,7 +281,6 @@
"settings.currency": "العملة",
"settings.currencyHint": "ستُستخدم هذه العملة في جميع الصفحات المالية.",
"settings.preferences": "إدارة تفضيلاتك وإعدادات التطبيق",
"tutorial.skip": "تخطي",
"tutorial.next": "التالي",
"tutorial.prev": "السابق",
@@ -317,12 +303,10 @@
"tutorial.newPost.desc": "ابدأ إنشاء المحتوى من هنا. اختر علامتك التجارية والمنصات وأسنده لعضو فريق.",
"tutorial.filters.title": "التصفية والتركيز",
"tutorial.filters.desc": "استخدم الفلاتر للتركيز على علامات أو منصات أو أعضاء فريق محددين.",
"login.title": "المركز الرقمي",
"login.subtitle": "سجل دخولك للمتابعة",
"login.forgotPassword": "نسيت كلمة المرور؟",
"login.defaultCreds": "بيانات الدخول الافتراضية:",
"comments.title": "النقاش",
"comments.noComments": "لا توجد تعليقات بعد. ابدأ المحادثة.",
"comments.placeholder": "اكتب تعليقاً...",
@@ -330,12 +314,10 @@
"comments.minutesAgo": "منذ {n} دقيقة",
"comments.hoursAgo": "منذ {n} ساعة",
"comments.daysAgo": "منذ {n} يوم",
"profile.completeYourProfile": "أكمل ملفك الشخصي",
"profile.completeDesc": "يرجى إكمال ملفك الشخصي للوصول إلى جميع الميزات ومساعدة فريقك في العثور عليك.",
"profile.completeProfileBtn": "إكمال الملف",
"profile.later": "لاحقاً",
"timeline.title": "الجدول الزمني",
"timeline.day": "يوم",
"timeline.week": "أسبوع",
@@ -347,11 +329,9 @@
"timeline.addItems": "أضف عناصر بتواريخ لعرض الجدول الزمني",
"timeline.tracks": "المسارات",
"timeline.timeline": "الجدول الزمني",
"posts.details": "التفاصيل",
"posts.platformsLinks": "المنصات والروابط",
"posts.discussion": "النقاش",
"campaigns.details": "التفاصيل",
"campaigns.performance": "الأداء",
"campaigns.discussion": "النقاش",
@@ -374,7 +354,6 @@
"campaigns.editCampaign": "تعديل الحملة",
"campaigns.deleteCampaign": "حذف الحملة؟",
"campaigns.deleteConfirm": "هل أنت متأكد من حذف هذه الحملة؟ سيتم حذف جميع البيانات المرتبطة. لا يمكن التراجع.",
"tracks.details": "التفاصيل",
"tracks.metrics": "المقاييس",
"tracks.trackName": "اسم المسار",
@@ -389,7 +368,6 @@
"tracks.editTrack": "تعديل المسار",
"tracks.deleteTrack": "حذف المسار؟",
"tracks.deleteConfirm": "هل أنت متأكد من حذف هذا المسار؟ لا يمكن التراجع.",
"projects.details": "التفاصيل",
"projects.discussion": "النقاش",
"projects.name": "الاسم",
@@ -402,7 +380,6 @@
"projects.editProject": "تعديل المشروع",
"projects.deleteProject": "حذف المشروع؟",
"projects.deleteConfirm": "هل أنت متأكد من حذف هذا المشروع؟ لا يمكن التراجع.",
"team.details": "التفاصيل",
"team.workload": "عبء العمل",
"team.recentTasks": "المهام الأخيرة",
@@ -412,11 +389,9 @@
"team.gridView": "عرض الشبكة",
"team.teamsView": "عرض الفرق",
"team.unassigned": "غير مُعيّن",
"modules.marketing": "التسويق",
"modules.projects": "المشاريع",
"modules.finance": "المالية",
"teams.title": "الفرق",
"teams.teams": "الفرق",
"teams.createTeam": "إنشاء فريق",
@@ -429,7 +404,6 @@
"teams.details": "التفاصيل",
"teams.noTeams": "لا توجد فرق بعد",
"teams.selectMembers": "بحث عن أعضاء...",
"dates.today": "اليوم",
"dates.yesterday": "أمس",
"dates.thisWeek": "هذا الأسبوع",
@@ -440,16 +414,13 @@
"dates.thisYear": "هذا العام",
"dates.customRange": "نطاق مخصص",
"dates.clearDates": "مسح التواريخ",
"dashboard.myTasks": "مهامي",
"dashboard.projectProgress": "تقدم المشاريع",
"dashboard.noProjectsYet": "لا توجد مشاريع بعد",
"finance.project": "المشروع",
"finance.projectBudget": "ميزانية المشروع",
"finance.projectBreakdown": "توزيع المشاريع",
"finance.budgetFor": "ميزانية لـ",
"budgets.title": "الميزانيات",
"budgets.subtitle": "إضافة وإدارة سجلات الميزانية — تتبع المصدر والوجهة والتخصيص",
"budgets.addEntry": "إضافة سجل",
@@ -487,7 +458,13 @@
"budgets.allTypes": "الكل",
"budgets.net": "صافي",
"budgets.dateExpensed": "التاريخ",
"dashboard.expenses": "المصروفات",
"finance.expenses": "إجمالي المصروفات"
}
"finance.expenses": "إجمالي المصروفات",
"settings.uploads": "الرفع",
"settings.maxFileSize": "الحد الأقصى لحجم الملف",
"settings.maxFileSizeHint": "الحد الأقصى المسموح لحجم المرفقات (١-٥٠٠ ميجابايت)",
"settings.mb": "ميجابايت",
"settings.saved": "تم حفظ الإعدادات!",
"tasks.maxFileSize": "الحد الأقصى: {size} ميجابايت",
"tasks.fileTooLarge": "الملف \"{name}\" كبير جداً ({size} ميجابايت). الحد المسموح: {max} ميجابايت."
}
+9 -32
View File
@@ -16,7 +16,6 @@
"nav.logout": "Logout",
"nav.brands": "Brands",
"nav.collapse": "Collapse",
"common.save": "Save",
"common.cancel": "Cancel",
"common.delete": "Delete",
@@ -33,13 +32,11 @@
"common.updateFailed": "Failed to update. Please try again.",
"common.deleteFailed": "Failed to delete. Please try again.",
"common.clearFilters": "Clear Filters",
"auth.login": "Sign In",
"auth.email": "Email",
"auth.password": "Password",
"auth.loginBtn": "Sign In",
"auth.signingIn": "Signing in...",
"dashboard.title": "Dashboard",
"dashboard.welcomeBack": "Welcome back",
"dashboard.happeningToday": "Here's what's happening with your marketing today.",
@@ -70,7 +67,6 @@
"dashboard.upcomingDeadlines": "Upcoming Deadlines",
"dashboard.noUpcomingDeadlines": "No upcoming deadlines this week. 🎉",
"dashboard.loadingHub": "Loading Digital Hub...",
"posts.title": "Post Production",
"posts.newPost": "New Post",
"posts.editPost": "Edit Post",
@@ -126,13 +122,11 @@
"posts.periodFrom": "From",
"posts.periodTo": "To",
"posts.tryDifferentFilter": "Try adjusting your filters to see more posts.",
"posts.status.draft": "Draft",
"posts.status.in_review": "In Review",
"posts.status.approved": "Approved",
"posts.status.scheduled": "Scheduled",
"posts.status.published": "Published",
"tasks.title": "Tasks",
"tasks.newTask": "New Task",
"tasks.editTask": "Edit Task",
@@ -163,7 +157,6 @@
"tasks.task": "task",
"tasks.tasks": "tasks",
"tasks.of": "of",
"tasks.priority.low": "Low",
"tasks.priority.medium": "Medium",
"tasks.priority.high": "High",
@@ -206,12 +199,10 @@
"tasks.removeThumbnail": "Remove thumbnail",
"tasks.thumbnail": "Thumbnail",
"tasks.dropOrClick": "Drop file or click to upload",
"projects.thumbnail": "Thumbnail",
"projects.uploadThumbnail": "Upload Thumbnail",
"projects.changeThumbnail": "Change Thumbnail",
"projects.removeThumbnail": "Remove Thumbnail",
"team.title": "Team",
"team.members": "Team Members",
"team.addMember": "Add Member",
@@ -243,15 +234,12 @@
"team.noTasks": "No tasks",
"team.toDo": "To Do",
"team.inProgress": "In Progress",
"campaigns.title": "Campaigns",
"campaigns.newCampaign": "New Campaign",
"campaigns.noCampaigns": "No campaigns",
"assets.title": "Assets",
"assets.upload": "Upload",
"assets.noAssets": "No assets",
"brands.title": "Brands",
"brands.addBrand": "Add Brand",
"brands.editBrand": "Edit Brand",
@@ -266,7 +254,6 @@
"brands.uploadLogo": "Upload Logo",
"brands.changeLogo": "Change Logo",
"brands.manageBrands": "Manage your organization's brands",
"settings.title": "Settings",
"settings.language": "Language",
"settings.english": "English",
@@ -294,7 +281,6 @@
"settings.currency": "Currency",
"settings.currencyHint": "This currency will be used across all financial pages.",
"settings.preferences": "Manage your preferences and app settings",
"tutorial.skip": "Skip Tutorial",
"tutorial.next": "Next",
"tutorial.prev": "Back",
@@ -317,12 +303,10 @@
"tutorial.newPost.desc": "Start creating content here. Pick your brand, platforms, and assign it to a team member.",
"tutorial.filters.title": "Filter & Focus",
"tutorial.filters.desc": "Use filters to focus on specific brands, platforms, or team members.",
"login.title": "Digital Hub",
"login.subtitle": "Sign in to continue",
"login.forgotPassword": "Forgot password?",
"login.defaultCreds": "Default credentials:",
"comments.title": "Discussion",
"comments.noComments": "No comments yet. Start the conversation.",
"comments.placeholder": "Write a comment...",
@@ -330,12 +314,10 @@
"comments.minutesAgo": "{n}m ago",
"comments.hoursAgo": "{n}h ago",
"comments.daysAgo": "{n}d ago",
"profile.completeYourProfile": "Complete Your Profile",
"profile.completeDesc": "Please complete your profile to access all features and help your team find you.",
"profile.completeProfileBtn": "Complete Profile",
"profile.later": "Later",
"timeline.title": "Timeline",
"timeline.day": "Day",
"timeline.week": "Week",
@@ -347,11 +329,9 @@
"timeline.addItems": "Add items with dates to see the timeline",
"timeline.tracks": "Tracks",
"timeline.timeline": "Timeline",
"posts.details": "Details",
"posts.platformsLinks": "Platforms & Links",
"posts.discussion": "Discussion",
"campaigns.details": "Details",
"campaigns.performance": "Performance",
"campaigns.discussion": "Discussion",
@@ -374,7 +354,6 @@
"campaigns.editCampaign": "Edit Campaign",
"campaigns.deleteCampaign": "Delete Campaign?",
"campaigns.deleteConfirm": "Are you sure you want to delete this campaign? All associated data will be removed. This action cannot be undone.",
"tracks.details": "Details",
"tracks.metrics": "Metrics",
"tracks.trackName": "Track Name",
@@ -389,7 +368,6 @@
"tracks.editTrack": "Edit Track",
"tracks.deleteTrack": "Delete Track?",
"tracks.deleteConfirm": "Are you sure you want to delete this track? This action cannot be undone.",
"projects.details": "Details",
"projects.discussion": "Discussion",
"projects.name": "Name",
@@ -402,7 +380,6 @@
"projects.editProject": "Edit Project",
"projects.deleteProject": "Delete Project?",
"projects.deleteConfirm": "Are you sure you want to delete this project? This action cannot be undone.",
"team.details": "Details",
"team.workload": "Workload",
"team.recentTasks": "Recent Tasks",
@@ -412,11 +389,9 @@
"team.gridView": "Grid View",
"team.teamsView": "Teams View",
"team.unassigned": "Unassigned",
"modules.marketing": "Marketing",
"modules.projects": "Projects",
"modules.finance": "Finance",
"teams.title": "Teams",
"teams.teams": "Teams",
"teams.createTeam": "Create Team",
@@ -429,7 +404,6 @@
"teams.details": "Details",
"teams.noTeams": "No teams yet",
"teams.selectMembers": "Search members...",
"dates.today": "Today",
"dates.yesterday": "Yesterday",
"dates.thisWeek": "This Week",
@@ -440,16 +414,13 @@
"dates.thisYear": "This Year",
"dates.customRange": "Custom Range",
"dates.clearDates": "Clear Dates",
"dashboard.myTasks": "My Tasks",
"dashboard.projectProgress": "Project Progress",
"dashboard.noProjectsYet": "No projects yet",
"finance.project": "Project",
"finance.projectBudget": "Project Budget",
"finance.projectBreakdown": "Project Breakdown",
"finance.budgetFor": "Budget for",
"budgets.title": "Budgets",
"budgets.subtitle": "Add and manage budget entries — track source, destination, and allocation",
"budgets.addEntry": "Add Entry",
@@ -487,7 +458,13 @@
"budgets.allTypes": "All Types",
"budgets.net": "Net",
"budgets.dateExpensed": "Date",
"dashboard.expenses": "Expenses",
"finance.expenses": "Total Expenses"
}
"finance.expenses": "Total Expenses",
"settings.uploads": "Uploads",
"settings.maxFileSize": "Maximum File Size",
"settings.maxFileSizeHint": "Maximum allowed file size for attachments (1-500 MB)",
"settings.mb": "MB",
"settings.saved": "Settings saved!",
"tasks.maxFileSize": "Max file size: {size} MB",
"tasks.fileTooLarge": "File \"{name}\" is too large ({size} MB). Maximum allowed: {max} MB."
}