feat: post approval workflow, i18n completion, and multiple fixes
Deploy / deploy (push) Successful in 11s
Deploy / deploy (push) Successful in 11s
- Add approval process to posts (approver multi-select, rejected status column) - Reorganize PostDetailPanel into Content, Scheduling, Approval sections - Fix save button visibility: move to fixed footer via SlidePanel footer prop - Change date picker from datetime-local to date-only - Complete Arabic translations across all panels (Header, Issues, Artefacts) - Fix artefact versioning to start empty (copyFromPrevious defaults to false) - Separate media uploads by type (image, audio, video) in PostDetailPanel - Fix team membership save when editing own profile as superadmin - Server: add approver_ids column to Posts, enrich GET/POST/PATCH responses Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+196
-1
@@ -30,6 +30,7 @@
|
||||
"common.noResults": "No results",
|
||||
"common.loading": "Loading...",
|
||||
"common.unassigned": "Unassigned",
|
||||
"common.close": "Close",
|
||||
"common.required": "Required",
|
||||
"common.saveFailed": "Failed to save. Please try again.",
|
||||
"common.updateFailed": "Failed to update. Please try again.",
|
||||
@@ -130,6 +131,7 @@
|
||||
"posts.status.approved": "Approved",
|
||||
"posts.status.scheduled": "Scheduled",
|
||||
"posts.status.published": "Published",
|
||||
"posts.status.rejected": "Rejected",
|
||||
"tasks.title": "Tasks",
|
||||
"tasks.newTask": "New Task",
|
||||
"tasks.editTask": "Edit Task",
|
||||
@@ -693,5 +695,198 @@
|
||||
"settings.roleName": "Role name",
|
||||
"settings.roleColor": "Color",
|
||||
"settings.deleteRoleConfirm": "Are you sure you want to delete this role?",
|
||||
"settings.noRoles": "No roles defined yet. Add your first role."
|
||||
"settings.noRoles": "No roles defined yet. Add your first role.",
|
||||
|
||||
"header.dashboard": "Dashboard",
|
||||
"header.posts": "Post Production",
|
||||
"header.assets": "Assets",
|
||||
"header.campaigns": "Campaigns",
|
||||
"header.finance": "Finance",
|
||||
"header.projects": "Projects",
|
||||
"header.tasks": "My Tasks",
|
||||
"header.team": "Team",
|
||||
"header.users": "User Management",
|
||||
"header.projectDetails": "Project Details",
|
||||
"header.campaignDetails": "Campaign Details",
|
||||
"header.page": "Page",
|
||||
"header.superadmin": "Superadmin",
|
||||
"header.manager": "Manager",
|
||||
"header.contributor": "Contributor",
|
||||
"header.passwordMismatch": "New passwords do not match",
|
||||
"header.passwordMinLength": "New password must be at least 6 characters",
|
||||
"header.passwordUpdateSuccess": "Password updated successfully",
|
||||
"header.passwordUpdateFailed": "Failed to change password",
|
||||
"header.userManagement": "User Management",
|
||||
"header.changePassword": "Change Password",
|
||||
"header.signOut": "Sign Out",
|
||||
"header.currentPassword": "Current Password",
|
||||
"header.newPassword": "New Password",
|
||||
"header.confirmNewPassword": "Confirm New Password",
|
||||
"header.updatePassword": "Update Password",
|
||||
"header.saving": "Saving...",
|
||||
|
||||
"issues.title": "Issues",
|
||||
"issues.subtitle": "Track and manage issue submissions",
|
||||
"issues.searchPlaceholder": "Search issues...",
|
||||
"issues.allStatuses": "All Statuses",
|
||||
"issues.allCategories": "All Categories",
|
||||
"issues.allTypes": "All Types",
|
||||
"issues.allBrands": "All Brands",
|
||||
"issues.allPriorities": "All Priorities",
|
||||
"issues.clearAll": "Clear All",
|
||||
"issues.noIssuesFound": "No issues found",
|
||||
"issues.tryAdjustingFilters": "Try adjusting your filters",
|
||||
"issues.noIssuesSubmitted": "No issues have been submitted yet",
|
||||
"issues.issuesDeleted": "Issues deleted",
|
||||
"issues.tableTitle": "Title",
|
||||
"issues.tableSubmitter": "Submitter",
|
||||
"issues.tableBrand": "Brand",
|
||||
"issues.tableCategory": "Category",
|
||||
"issues.tableType": "Type",
|
||||
"issues.tablePriority": "Priority",
|
||||
"issues.tableStatus": "Status",
|
||||
"issues.tableAssignedTo": "Assigned To",
|
||||
"issues.tableCreated": "Created",
|
||||
|
||||
"issues.typeRequest": "Request",
|
||||
"issues.typeCorrection": "Correction",
|
||||
"issues.typeComplaint": "Complaint",
|
||||
"issues.typeSuggestion": "Suggestion",
|
||||
"issues.typeOther": "Other",
|
||||
|
||||
"issues.priorityLow": "Low",
|
||||
"issues.priorityMedium": "Medium",
|
||||
"issues.priorityHigh": "High",
|
||||
"issues.priorityUrgent": "Urgent",
|
||||
|
||||
"issues.submitterInfo": "Submitter Information",
|
||||
"issues.nameLabel": "Name:",
|
||||
"issues.emailLabel": "Email:",
|
||||
"issues.phoneLabel": "Phone:",
|
||||
"issues.submittedLabel": "Submitted:",
|
||||
"issues.description": "Description",
|
||||
"issues.noDescription": "No description provided",
|
||||
"issues.assignedTo": "Assigned To",
|
||||
"issues.unassigned": "Unassigned",
|
||||
"issues.brandLabel": "Brand",
|
||||
"issues.noBrand": "No brand",
|
||||
"issues.internalNotes": "Internal Notes (Staff Only)",
|
||||
"issues.internalNotesPlaceholder": "Internal notes not visible to submitter...",
|
||||
"issues.resolutionSummary": "Resolution Summary (Public)",
|
||||
"issues.resolvedOn": "Resolved on",
|
||||
"issues.acknowledge": "Acknowledge",
|
||||
"issues.startWork": "Start Work",
|
||||
"issues.resolve": "Resolve",
|
||||
"issues.decline": "Decline",
|
||||
"issues.publicTrackingLink": "Public Tracking Link",
|
||||
"issues.updatesTimeline": "Updates Timeline",
|
||||
"issues.addUpdatePlaceholder": "Add an update...",
|
||||
"issues.makePublic": "Make public (visible to submitter)",
|
||||
"issues.addUpdate": "Add Update",
|
||||
"issues.noUpdates": "No updates yet",
|
||||
"issues.attachments": "Attachments",
|
||||
"issues.clickToUpload": "Click to upload file",
|
||||
"issues.uploading": "Uploading...",
|
||||
"issues.download": "Download",
|
||||
"issues.noAttachments": "No attachments",
|
||||
"issues.resolveIssue": "Resolve Issue",
|
||||
"issues.resolveSummaryHint": "Provide a resolution summary that will be visible to the submitter.",
|
||||
"issues.resolutionPlaceholder": "Explain how this issue was resolved...",
|
||||
"issues.markAsResolved": "Mark as Resolved",
|
||||
"issues.resolving": "Resolving...",
|
||||
"issues.declineIssue": "Decline Issue",
|
||||
"issues.declineReasonHint": "Provide a reason for declining this issue. This will be visible to the submitter.",
|
||||
"issues.declinePlaceholder": "Explain why this issue cannot be addressed...",
|
||||
"issues.declining": "Declining...",
|
||||
|
||||
"artefacts.descriptionLabel": "Description",
|
||||
"artefacts.descriptionFieldPlaceholder": "Add a description...",
|
||||
"artefacts.approversLabel": "Approvers",
|
||||
"artefacts.versions": "Versions",
|
||||
"artefacts.newVersion": "New Version",
|
||||
"artefacts.languages": "Languages",
|
||||
"artefacts.addLanguage": "Add Language",
|
||||
"artefacts.noLanguages": "No languages added yet",
|
||||
"artefacts.imagesLabel": "Images",
|
||||
"artefacts.uploadImage": "Upload Image",
|
||||
"artefacts.uploading": "Uploading...",
|
||||
"artefacts.noImages": "No images uploaded yet",
|
||||
"artefacts.videosLabel": "Videos",
|
||||
"artefacts.addVideoBtn": "Add Video",
|
||||
"artefacts.noVideos": "No videos added yet",
|
||||
"artefacts.comments": "Comments",
|
||||
"artefacts.sendComment": "Send",
|
||||
"artefacts.addCommentPlaceholder": "Add a comment...",
|
||||
"artefacts.submitForReview": "Submit for Review",
|
||||
"artefacts.submitting": "Submitting...",
|
||||
"artefacts.reviewLinkTitle": "Review Link (expires in 7 days)",
|
||||
"artefacts.feedbackTitle": "Feedback",
|
||||
"artefacts.approvedByLabel": "Approved by",
|
||||
"artefacts.saveDraft": "Save",
|
||||
"artefacts.savingDraft": "Saving...",
|
||||
"artefacts.versionNotes": "Version Notes",
|
||||
"artefacts.whatChanged": "What changed in this version?",
|
||||
"artefacts.copyLanguages": "Copy languages from previous version",
|
||||
"artefacts.createVersion": "Create Version",
|
||||
"artefacts.creatingVersion": "Creating...",
|
||||
"artefacts.languageLabel": "Language",
|
||||
"artefacts.contentLabel": "Content",
|
||||
"artefacts.selectLanguage": "Select a language...",
|
||||
"artefacts.enterContent": "Enter the content in this language...",
|
||||
"artefacts.addVideoTitle": "Add Video",
|
||||
"artefacts.uploadFile": "Upload File",
|
||||
"artefacts.chooseVideoFile": "Choose video file",
|
||||
"artefacts.videoFormats": "MP4, MOV, AVI, etc.",
|
||||
"artefacts.googleDriveLink": "Google Drive Link",
|
||||
"artefacts.googleDriveUrl": "Google Drive URL",
|
||||
"artefacts.driveUrlPlaceholder": "https://drive.google.com/file/d/...",
|
||||
"artefacts.publiclyAccessible": "Paste a Google Drive share link. Make sure the file is publicly accessible.",
|
||||
"artefacts.addLink": "Add Link",
|
||||
"artefacts.adding": "Adding...",
|
||||
"artefacts.googleDriveVideo": "Google Drive Video",
|
||||
"artefacts.deleteArtefactTooltip": "Delete artefact",
|
||||
"artefacts.saveDraftTooltip": "Save draft",
|
||||
"artefacts.createNewVersion": "Create New Version",
|
||||
"artefacts.failedLoadVersions": "Failed to load versions",
|
||||
"artefacts.failedLoadVersionData": "Failed to load version data",
|
||||
"artefacts.versionCreated": "New version created",
|
||||
"artefacts.failedCreateVersion": "Failed to create version",
|
||||
"artefacts.languageAdded": "Language added",
|
||||
"artefacts.allFieldsRequired": "All fields are required",
|
||||
"artefacts.failedAddLanguage": "Failed to add language",
|
||||
"artefacts.languageDeleted": "Language deleted",
|
||||
"artefacts.failedDeleteLanguage": "Failed to delete language",
|
||||
"artefacts.fileUploaded": "File uploaded",
|
||||
"artefacts.uploadFailed": "Upload failed",
|
||||
"artefacts.videoLinkAdded": "Video link added",
|
||||
"artefacts.failedAddVideoLink": "Failed to add video link",
|
||||
"artefacts.enterDriveUrl": "Please enter a Google Drive URL",
|
||||
"artefacts.attachmentDeleted": "Attachment deleted",
|
||||
"artefacts.failedDeleteAttachment": "Failed to delete attachment",
|
||||
"artefacts.submittedForReview": "Submitted for review!",
|
||||
"artefacts.failedSubmitReview": "Failed to submit for review",
|
||||
"artefacts.linkCopied": "Link copied to clipboard",
|
||||
"artefacts.commentAdded": "Comment added",
|
||||
"artefacts.failedAddComment": "Failed to add comment",
|
||||
"artefacts.updated": "Updated",
|
||||
"artefacts.failedUpdate": "Failed to update",
|
||||
"artefacts.draftSaved": "Draft saved",
|
||||
"artefacts.failedSaveDraft": "Failed to save draft",
|
||||
"artefacts.titleRequired": "Title is required",
|
||||
"artefacts.failedDelete": "Failed to delete",
|
||||
|
||||
"posts.images": "Images",
|
||||
"posts.audio": "Audio",
|
||||
"posts.videos": "Videos",
|
||||
"posts.otherFiles": "Other Files",
|
||||
"posts.addImage": "Add Image",
|
||||
"posts.addAudio": "Add Audio",
|
||||
"posts.addVideo": "Add Video",
|
||||
"posts.dragToUpload": "Drag files here to upload",
|
||||
"posts.assignedTo": "Assigned To",
|
||||
"posts.approval": "Approval",
|
||||
"posts.approvers": "Approvers",
|
||||
"posts.selectApprovers": "Select approvers...",
|
||||
"posts.scheduling": "Scheduling & Assignment",
|
||||
"posts.content": "Content"
|
||||
}
|
||||
Reference in New Issue
Block a user