feat: bulk delete, team dispatch, calendar views, timeline colors
Deploy / deploy (push) Successful in 11s
Deploy / deploy (push) Successful in 11s
- Multi-select bulk delete in all 5 list views (Artefacts, Posts, Tasks, Issues, Assets) with cascade deletes and confirmation modals - Team-based issue dispatch: team picker on public issue form, team filter on Issues page, copy public link from Team page and Issues header, team assignment in IssueDetailPanel - Month/Week toggle on PostCalendar and TaskCalendarView - Month/Week/Day zoom on project and campaign timelines (InteractiveTimeline) and ProjectDetail GanttView, with Month as default - Custom timeline bar colors: clickable color dot with 12-color palette popover on project, campaign, and task timeline bars - Artefacts default view changed to list - BulkSelectBar reusable component - i18n keys for all new features (en + ar) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+158
-1
@@ -486,5 +486,162 @@
|
||||
"artefacts.sortRecentlyUpdated": "آخر تحديث",
|
||||
"artefacts.sortNewest": "الأحدث أولاً",
|
||||
"artefacts.sortOldest": "الأقدم أولاً",
|
||||
"artefacts.sortTitleAZ": "العنوان أ-ي"
|
||||
"artefacts.sortTitleAZ": "العنوان أ-ي",
|
||||
|
||||
"login.initialSetup": "الإعداد الأولي",
|
||||
"login.initialSetupDesc": "أنشئ حساب المسؤول للبدء",
|
||||
"login.createAccount": "إنشاء حساب",
|
||||
"login.signIn": "تسجيل الدخول",
|
||||
"login.fullName": "الاسم الكامل",
|
||||
"login.fullNamePlaceholder": "اسمك",
|
||||
"login.email": "البريد الإلكتروني",
|
||||
"login.password": "كلمة المرور",
|
||||
"login.passwordPlaceholder": "اختر كلمة مرور قوية",
|
||||
"login.confirmPassword": "تأكيد كلمة المرور",
|
||||
"login.confirmPasswordPlaceholder": "أعد إدخال كلمة المرور",
|
||||
"login.passwordMismatch": "كلمات المرور غير متطابقة",
|
||||
"login.setupFailed": "فشل الإعداد",
|
||||
"login.accountCreated": "تم إنشاء الحساب. يمكنك الآن تسجيل الدخول.",
|
||||
"login.welcomeBack": "مرحباً بعودتك",
|
||||
"login.signInDesc": "سجل الدخول للمتابعة",
|
||||
"login.invalidCredentials": "البريد الإلكتروني أو كلمة المرور غير صحيحة",
|
||||
"login.creatingAccount": "جاري إنشاء الحساب...",
|
||||
|
||||
"users.title": "إدارة المستخدمين",
|
||||
"users.addUser": "إضافة مستخدم",
|
||||
"users.addNewUser": "إضافة مستخدم جديد",
|
||||
"users.editUser": "تعديل المستخدم",
|
||||
"users.deleteUser": "حذف المستخدم",
|
||||
"users.deleteUserConfirmTitle": "حذف المستخدم؟",
|
||||
"users.deleteConfirm": "هل أنت متأكد من حذف هذا المستخدم؟ لا يمكن التراجع.",
|
||||
"users.userSingular": "مستخدم",
|
||||
"users.usersPlural": "مستخدمين",
|
||||
"users.noUsers": "لم يتم العثور على مستخدمين",
|
||||
"users.you": "أنت",
|
||||
"users.name": "الاسم",
|
||||
"users.fullNamePlaceholder": "الاسم الكامل",
|
||||
"users.email": "البريد الإلكتروني",
|
||||
"users.password": "كلمة المرور",
|
||||
"users.confirmPassword": "تأكيد كلمة المرور",
|
||||
"users.role": "الدور",
|
||||
"users.created": "تاريخ الإنشاء",
|
||||
"users.actions": "الإجراءات",
|
||||
"users.leaveBlankToKeep": "اتركه فارغاً للإبقاء على الحالي",
|
||||
"users.saveChanges": "حفظ التغييرات",
|
||||
"users.passwordMismatch": "كلمات المرور غير متطابقة",
|
||||
"users.passwordRequired": "كلمة المرور مطلوبة للمستخدمين الجدد",
|
||||
"users.saveFailed": "فشل في حفظ المستخدم",
|
||||
"users.deleteFailed": "فشل في حذف المستخدم",
|
||||
|
||||
"settings.saveFailed": "فشل في الحفظ",
|
||||
"settings.restartTutorialFailed": "فشل في إعادة تشغيل البرنامج التعليمي",
|
||||
|
||||
"artefacts.title": "القطع الإبداعية",
|
||||
"artefacts.subtitle": "سير عمل الموافقة على المحتوى مع إدارة الإصدارات",
|
||||
"artefacts.newArtefact": "محتوى جديد",
|
||||
"artefacts.createArtefact": "إنشاء محتوى",
|
||||
"artefacts.searchArtefacts": "البحث في المحتوى...",
|
||||
"artefacts.allBrands": "جميع العلامات التجارية",
|
||||
"artefacts.allStatuses": "جميع الحالات",
|
||||
"artefacts.allTypes": "جميع الأنواع",
|
||||
"artefacts.noArtefacts": "لم يتم العثور على محتوى",
|
||||
"artefacts.titleLabel": "العنوان",
|
||||
"artefacts.titlePlaceholder": "عنوان المحتوى",
|
||||
"artefacts.type": "النوع",
|
||||
"artefacts.status": "الحالة",
|
||||
"artefacts.brand": "العلامة التجارية",
|
||||
"artefacts.creator": "المنشئ",
|
||||
"artefacts.approvers": "المعتمدون",
|
||||
"artefacts.version": "الإصدار",
|
||||
"artefacts.updated": "آخر تحديث",
|
||||
"artefacts.description": "الوصف",
|
||||
"artefacts.descriptionPlaceholder": "وصف مختصر",
|
||||
"artefacts.titleRequired": "العنوان مطلوب",
|
||||
"artefacts.created": "تم إنشاء المحتوى",
|
||||
"artefacts.createFailed": "فشل في إنشاء المحتوى",
|
||||
"artefacts.deleted": "تم حذف المحتوى",
|
||||
"artefacts.deleteFailed": "فشل في حذف المحتوى",
|
||||
"artefacts.loadFailed": "فشل في تحميل المحتوى",
|
||||
"artefacts.creating": "جاري الإنشاء...",
|
||||
"artefacts.status.draft": "مسودة",
|
||||
"artefacts.status.pendingReview": "بانتظار المراجعة",
|
||||
"artefacts.status.approved": "مُعتمد",
|
||||
"artefacts.status.rejected": "مرفوض",
|
||||
"artefacts.status.revisionRequested": "مطلوب تعديل",
|
||||
|
||||
"review.contentReview": "مراجعة المحتوى",
|
||||
"review.yourReview": "مراجعتك",
|
||||
"review.approve": "موافقة",
|
||||
"review.reject": "رفض",
|
||||
"review.requestRevision": "طلب تعديل",
|
||||
"review.reviewer": "المراجع",
|
||||
"review.selectYourName": "اختر اسمك...",
|
||||
"review.enterYourName": "أدخل اسمك",
|
||||
"review.feedbackOptional": "ملاحظات (اختياري)",
|
||||
"review.feedbackPlaceholder": "شارك أفكارك أو اقتراحاتك أو التغييرات المطلوبة...",
|
||||
"review.thankYou": "شكراً لك!",
|
||||
"review.notAvailable": "المراجعة غير متاحة",
|
||||
"review.alreadyReviewed": "تمت مراجعة هذا المحتوى بالفعل.",
|
||||
"review.statusLabel": "الحالة",
|
||||
"review.reviewedBy": "تمت المراجعة بواسطة",
|
||||
"review.poweredBy": "مدعوم بواسطة Samaya Digital Hub",
|
||||
"review.loadFailed": "فشل في تحميل المحتوى",
|
||||
"review.actionFailed": "فشل الإجراء",
|
||||
"review.actionCompleted": "تم الإجراء بنجاح",
|
||||
"review.enterName": "يرجى اختيار أو إدخال اسمك",
|
||||
"review.confirmApprove": "هل تريد الموافقة على هذا المحتوى؟",
|
||||
"review.confirmReject": "هل تريد رفض هذا المحتوى؟",
|
||||
"review.feedbackRequired": "يرجى تقديم ملاحظات لطلب التعديل",
|
||||
"review.contentLanguages": "لغات المحتوى",
|
||||
"review.content": "المحتوى",
|
||||
"review.designFiles": "ملفات التصميم",
|
||||
"review.videos": "الفيديوهات",
|
||||
"review.googleDriveVideo": "فيديو Google Drive",
|
||||
"review.attachments": "المرفقات",
|
||||
"review.previousComments": "التعليقات السابقة",
|
||||
"review.version": "الإصدار",
|
||||
|
||||
"common.failedToSave": "فشل في الحفظ",
|
||||
"common.copiedToClipboard": "تم النسخ إلى الحافظة!",
|
||||
"team.failedToSaveTeam": "فشل في حفظ الفريق",
|
||||
"posts.canOnlyEditOwn": "يمكنك فقط تعديل منشوراتك الخاصة",
|
||||
"assets.uploadFailed": "فشل في الرفع",
|
||||
"assets.failedToDelete": "فشل في حذف الملف",
|
||||
"issues.failedToAddComment": "فشل في إضافة التعليق",
|
||||
"issues.failedToUploadFile": "فشل في رفع الملف",
|
||||
"issues.failedToSubmit": "فشل في إرسال المشكلة. حاول مجدداً.",
|
||||
"issues.failedToUpdateStatus": "فشل في تحديث الحالة",
|
||||
"issues.failedToResolve": "فشل في حل المشكلة",
|
||||
"issues.failedToDecline": "فشل في رفض المشكلة",
|
||||
"issues.failedToUpdateAssignment": "فشل في تحديث التعيين",
|
||||
"issues.failedToSaveNotes": "فشل في حفظ الملاحظات",
|
||||
"issues.failedToAddUpdate": "فشل في إضافة التحديث",
|
||||
"issues.failedToDeleteAttachment": "فشل في حذف المرفق",
|
||||
"issues.trackingLinkCopied": "تم نسخ رابط التتبع!",
|
||||
"issues.deleteAttachment": "حذف المرفق؟",
|
||||
"issues.deleteAttachmentDesc": "لا يمكن التراجع عن هذا الإجراء.",
|
||||
"artefacts.deleteLanguage": "حذف هذه اللغة؟",
|
||||
"artefacts.deleteLanguageDesc": "سيتم إزالة المحتوى لهذه اللغة.",
|
||||
"artefacts.deleteAttachment": "حذف هذا المرفق؟",
|
||||
"artefacts.deleteAttachmentDesc": "لا يمكن التراجع عن هذا الإجراء.",
|
||||
"artefacts.deleteArtefact": "حذف هذا المحتوى؟",
|
||||
"artefacts.deleteArtefactDesc": "لا يمكن التراجع عن هذا الإجراء.",
|
||||
"review.confirmApproveDesc": "هل أنت متأكد من الموافقة على هذا المحتوى؟",
|
||||
"review.confirmRejectDesc": "هل أنت متأكد من رفض هذا المحتوى؟",
|
||||
|
||||
"common.selected": "محدد",
|
||||
"common.deleteSelected": "حذف المحدد",
|
||||
"common.clearSelection": "إلغاء التحديد",
|
||||
"common.bulkDeleteConfirm": "حذف {count} عناصر؟",
|
||||
"common.bulkDeleteDesc": "لا يمكن التراجع عن هذا الإجراء.",
|
||||
"common.selectAll": "تحديد الكل",
|
||||
|
||||
"issues.team": "الفريق",
|
||||
"issues.allTeams": "جميع الفرق",
|
||||
"issues.copyPublicLink": "نسخ الرابط العام",
|
||||
"issues.linkCopied": "تم نسخ الرابط!",
|
||||
"issues.selectTeam": "اختر فريقاً",
|
||||
"issues.publicSubmitTeam": "أي فريق يجب أن يتولى مشكلتك؟",
|
||||
"team.copyIssueLink": "نسخ رابط المشكلة",
|
||||
"team.copyGenericIssueLink": "نسخ رابط المشاكل العام"
|
||||
}
|
||||
+158
-1
@@ -486,5 +486,162 @@
|
||||
"artefacts.sortRecentlyUpdated": "Recently Updated",
|
||||
"artefacts.sortNewest": "Newest First",
|
||||
"artefacts.sortOldest": "Oldest First",
|
||||
"artefacts.sortTitleAZ": "Title A-Z"
|
||||
"artefacts.sortTitleAZ": "Title A-Z",
|
||||
|
||||
"login.initialSetup": "Initial Setup",
|
||||
"login.initialSetupDesc": "Create your admin account to get started",
|
||||
"login.createAccount": "Create Account",
|
||||
"login.signIn": "Sign In",
|
||||
"login.fullName": "Full Name",
|
||||
"login.fullNamePlaceholder": "Your name",
|
||||
"login.email": "Email",
|
||||
"login.password": "Password",
|
||||
"login.passwordPlaceholder": "Choose a strong password",
|
||||
"login.confirmPassword": "Confirm Password",
|
||||
"login.confirmPasswordPlaceholder": "Re-enter your password",
|
||||
"login.passwordMismatch": "Passwords do not match",
|
||||
"login.setupFailed": "Setup failed",
|
||||
"login.accountCreated": "Account created. You can now log in.",
|
||||
"login.welcomeBack": "Welcome Back",
|
||||
"login.signInDesc": "Sign in to continue",
|
||||
"login.invalidCredentials": "Invalid email or password",
|
||||
"login.creatingAccount": "Creating account...",
|
||||
|
||||
"users.title": "User Management",
|
||||
"users.addUser": "Add User",
|
||||
"users.addNewUser": "Add New User",
|
||||
"users.editUser": "Edit User",
|
||||
"users.deleteUser": "Delete User",
|
||||
"users.deleteUserConfirmTitle": "Delete User?",
|
||||
"users.deleteConfirm": "Are you sure you want to delete this user? This action cannot be undone.",
|
||||
"users.userSingular": "user",
|
||||
"users.usersPlural": "users",
|
||||
"users.noUsers": "No users found",
|
||||
"users.you": "You",
|
||||
"users.name": "Name",
|
||||
"users.fullNamePlaceholder": "Full name",
|
||||
"users.email": "Email",
|
||||
"users.password": "Password",
|
||||
"users.confirmPassword": "Confirm Password",
|
||||
"users.role": "Role",
|
||||
"users.created": "Created",
|
||||
"users.actions": "Actions",
|
||||
"users.leaveBlankToKeep": "leave blank to keep current",
|
||||
"users.saveChanges": "Save Changes",
|
||||
"users.passwordMismatch": "Passwords do not match",
|
||||
"users.passwordRequired": "Password is required for new users",
|
||||
"users.saveFailed": "Failed to save user",
|
||||
"users.deleteFailed": "Failed to delete user",
|
||||
|
||||
"settings.saveFailed": "Failed to save",
|
||||
"settings.restartTutorialFailed": "Failed to restart tutorial",
|
||||
|
||||
"artefacts.title": "Artefacts",
|
||||
"artefacts.subtitle": "Content approval workflow with versioning",
|
||||
"artefacts.newArtefact": "New Artefact",
|
||||
"artefacts.createArtefact": "Create Artefact",
|
||||
"artefacts.searchArtefacts": "Search artefacts...",
|
||||
"artefacts.allBrands": "All Brands",
|
||||
"artefacts.allStatuses": "All Statuses",
|
||||
"artefacts.allTypes": "All Types",
|
||||
"artefacts.noArtefacts": "No artefacts found",
|
||||
"artefacts.titleLabel": "Title",
|
||||
"artefacts.titlePlaceholder": "Artefact title",
|
||||
"artefacts.type": "Type",
|
||||
"artefacts.status": "Status",
|
||||
"artefacts.brand": "Brand",
|
||||
"artefacts.creator": "Creator",
|
||||
"artefacts.approvers": "Approvers",
|
||||
"artefacts.version": "Version",
|
||||
"artefacts.updated": "Updated",
|
||||
"artefacts.description": "Description",
|
||||
"artefacts.descriptionPlaceholder": "Brief description",
|
||||
"artefacts.titleRequired": "Title is required",
|
||||
"artefacts.created": "Artefact created",
|
||||
"artefacts.createFailed": "Failed to create artefact",
|
||||
"artefacts.deleted": "Artefact deleted",
|
||||
"artefacts.deleteFailed": "Failed to delete artefact",
|
||||
"artefacts.loadFailed": "Failed to load artefacts",
|
||||
"artefacts.creating": "Creating...",
|
||||
"artefacts.status.draft": "Draft",
|
||||
"artefacts.status.pendingReview": "Pending Review",
|
||||
"artefacts.status.approved": "Approved",
|
||||
"artefacts.status.rejected": "Rejected",
|
||||
"artefacts.status.revisionRequested": "Revision Requested",
|
||||
|
||||
"review.contentReview": "Content Review",
|
||||
"review.yourReview": "Your Review",
|
||||
"review.approve": "Approve",
|
||||
"review.reject": "Reject",
|
||||
"review.requestRevision": "Request Revision",
|
||||
"review.reviewer": "Reviewer",
|
||||
"review.selectYourName": "Select your name...",
|
||||
"review.enterYourName": "Enter your name",
|
||||
"review.feedbackOptional": "Feedback (optional)",
|
||||
"review.feedbackPlaceholder": "Share your thoughts, suggestions, or required changes...",
|
||||
"review.thankYou": "Thank You!",
|
||||
"review.notAvailable": "Review Not Available",
|
||||
"review.alreadyReviewed": "This artefact has already been reviewed.",
|
||||
"review.statusLabel": "Status",
|
||||
"review.reviewedBy": "Reviewed by",
|
||||
"review.poweredBy": "Powered by Samaya Digital Hub",
|
||||
"review.loadFailed": "Failed to load artefact",
|
||||
"review.actionFailed": "Action failed",
|
||||
"review.actionCompleted": "Action completed successfully",
|
||||
"review.enterName": "Please select or enter your name",
|
||||
"review.confirmApprove": "Approve this artefact?",
|
||||
"review.confirmReject": "Reject this artefact?",
|
||||
"review.feedbackRequired": "Please provide feedback for revision request",
|
||||
"review.contentLanguages": "Content Languages",
|
||||
"review.content": "Content",
|
||||
"review.designFiles": "Design Files",
|
||||
"review.videos": "Videos",
|
||||
"review.googleDriveVideo": "Google Drive Video",
|
||||
"review.attachments": "Attachments",
|
||||
"review.previousComments": "Previous Comments",
|
||||
"review.version": "Version",
|
||||
|
||||
"common.failedToSave": "Failed to save",
|
||||
"common.copiedToClipboard": "Copied to clipboard!",
|
||||
"team.failedToSaveTeam": "Failed to save team",
|
||||
"posts.canOnlyEditOwn": "You can only edit your own posts",
|
||||
"assets.uploadFailed": "Upload failed",
|
||||
"assets.failedToDelete": "Failed to delete asset",
|
||||
"issues.failedToAddComment": "Failed to add comment",
|
||||
"issues.failedToUploadFile": "Failed to upload file",
|
||||
"issues.failedToSubmit": "Failed to submit issue. Please try again.",
|
||||
"issues.failedToUpdateStatus": "Failed to update status",
|
||||
"issues.failedToResolve": "Failed to resolve issue",
|
||||
"issues.failedToDecline": "Failed to decline issue",
|
||||
"issues.failedToUpdateAssignment": "Failed to update assignment",
|
||||
"issues.failedToSaveNotes": "Failed to save notes",
|
||||
"issues.failedToAddUpdate": "Failed to add update",
|
||||
"issues.failedToDeleteAttachment": "Failed to delete attachment",
|
||||
"issues.trackingLinkCopied": "Tracking link copied to clipboard!",
|
||||
"issues.deleteAttachment": "Delete attachment?",
|
||||
"issues.deleteAttachmentDesc": "This action cannot be undone.",
|
||||
"artefacts.deleteLanguage": "Delete this language?",
|
||||
"artefacts.deleteLanguageDesc": "The content for this language will be removed.",
|
||||
"artefacts.deleteAttachment": "Delete this attachment?",
|
||||
"artefacts.deleteAttachmentDesc": "This action cannot be undone.",
|
||||
"artefacts.deleteArtefact": "Delete this artefact?",
|
||||
"artefacts.deleteArtefactDesc": "This action cannot be undone.",
|
||||
"review.confirmApproveDesc": "Are you sure you want to approve this artefact?",
|
||||
"review.confirmRejectDesc": "Are you sure you want to reject this artefact?",
|
||||
|
||||
"common.selected": "selected",
|
||||
"common.deleteSelected": "Delete Selected",
|
||||
"common.clearSelection": "Clear selection",
|
||||
"common.bulkDeleteConfirm": "Delete {count} items?",
|
||||
"common.bulkDeleteDesc": "This action cannot be undone.",
|
||||
"common.selectAll": "Select all",
|
||||
|
||||
"issues.team": "Team",
|
||||
"issues.allTeams": "All Teams",
|
||||
"issues.copyPublicLink": "Copy Public Link",
|
||||
"issues.linkCopied": "Link copied!",
|
||||
"issues.selectTeam": "Select a team",
|
||||
"issues.publicSubmitTeam": "Which team should handle your issue?",
|
||||
"team.copyIssueLink": "Copy Issue Link",
|
||||
"team.copyGenericIssueLink": "Copy Public Issue Link"
|
||||
}
|
||||
Reference in New Issue
Block a user