feat: bulk delete, team dispatch, calendar views, timeline colors
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:
fahed
2026-03-01 14:55:36 +03:00
parent 20d76dea8b
commit 42a5f17d0b
40 changed files with 3050 additions and 1625 deletions
+158 -1
View File
@@ -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"
}