feat(rfa-ai): Complete RFA Approval Refactor and AI Model Revision
CI / CD Pipeline / build (push) Successful in 4m54s
CI / CD Pipeline / deploy (push) Failing after 12m9s

This commit is contained in:
2026-05-16 10:59:53 +07:00
parent 6cb3ae10ee
commit 1a162bf320
105 changed files with 5088 additions and 1083 deletions
+21 -1
View File
@@ -70,5 +70,25 @@
"ai.staging.body": "Body",
"ai.staging.approve": "Approve",
"ai.staging.approveSuccess": "Staging record approved.",
"ai.staging.approveError": "Unable to approve staging record."
"ai.staging.approveError": "Unable to approve staging record.",
"ai.staging.queueTab": "Work Queue",
"ai.staging.analyticsTab": "AI Analytics",
"ai.staging.analyticsError": "Unable to load analytics data.",
"ai.staging.avgConfidence": "Avg. Confidence",
"ai.staging.overrideRate": "Human Override Rate",
"ai.staging.rejectedRate": "Rejection Rate",
"ai.staging.byDocumentType": "Stats by Document Type",
"ai.staging.byDocumentTypeDesc": "Compare AI performance across different document categories.",
"ai.staging.documents": "docs",
"ai.staging.confidence": "Confidence",
"ai.staging.override": "Override",
"ai.staging.rejected": "Rejected",
"ai.staging.thresholdRecalibration": "Threshold Recalibration",
"ai.staging.thresholdDesc": "Verify confidence thresholds for auto-approval vs human review.",
"ai.staging.highThreshold": "High Threshold (Auto-approve)",
"ai.staging.midThreshold": "Mid Threshold (Human Review)",
"ai.staging.thresholdWarning": "Improvement Recommended",
"ai.staging.thresholdWarningDesc": "Override rate reached {{rate}}% in recent records.",
"ai.staging.thresholdNote": "* Threshold values must be set via Backend Environment Variables.",
"ai.staging.thresholdDocs": "View Configuration Guide"
}
@@ -0,0 +1,72 @@
{
"title": "Task Delegation",
"subtitle": "Manage delegation of review tasks to others",
"list": {
"title": "Delegation List",
"createButton": "Create Delegation",
"noActive": "No active delegations",
"historyButton": "Delegation History"
},
"form": {
"createTitle": "Create Delegation",
"editTitle": "Edit Delegation",
"delegateTo": "Delegate To",
"delegateToPlaceholder": "Select user...",
"startDate": "Start Date",
"endDate": "End Date",
"scope": "Delegation Scope",
"scopeOptions": {
"ALL": "All",
"DISCIPLINE": "Discipline Only",
"PROJECT": "Project Only"
},
"reason": "Reason",
"reasonPlaceholder": "Enter reason for delegation...",
"saveButton": "Save",
"cancelButton": "Cancel",
"revokeButton": "Revoke Delegation"
},
"status": {
"active": "Active",
"expired": "Expired",
"revoked": "Revoked",
"upcoming": "Starting Soon"
},
"badge": {
"delegatedFrom": "Delegated from: {{name}}",
"delegatedTo": "Delegated to: {{name}}",
"until": "Until: {{date}}"
},
"notifications": {
"createdTitle": "Delegation Received",
"createdBody": "{{delegator}} has delegated review tasks to you",
"expiringTitle": "Delegation Expiring Soon",
"expiringBody": "Delegation will expire in {{days}} days",
"expiredTitle": "Delegation Expired",
"expiredBody": "Delegation has expired. Tasks returned to delegator"
},
"errors": {
"delegateToRequired": "Please select delegatee",
"startDateRequired": "Start date is required",
"endDateRequired": "End date is required",
"invalidDateRange": "End date must be after start date",
"circularDelegation": "Circular delegation not allowed ({{path}})",
"selfDelegation": "Cannot delegate to yourself",
"overlapExists": "Overlapping delegation already exists",
"loadFailed": "Failed to load data",
"saveFailed": "Failed to save delegation",
"revokeFailed": "Failed to revoke delegation"
},
"success": {
"created": "Delegation created successfully",
"updated": "Delegation updated successfully",
"revoked": "Delegation revoked successfully"
}
}
@@ -0,0 +1,79 @@
{
"title": "Response Codes",
"subtitle": "Manage review response codes and implications",
"list": {
"title": "Response Code List",
"createButton": "Create New Code",
"searchPlaceholder": "Search codes...",
"noResults": "No response codes found",
"filterByCategory": "Filter by Category"
},
"categories": {
"ENGINEERING": "Engineering",
"CONTRACT": "Contract",
"QUALITY": "Quality",
"SAFETY": "Safety",
"PROCUREMENT": "Procurement",
"GENERAL": "General"
},
"form": {
"createTitle": "Create Response Code",
"editTitle": "Edit Response Code",
"code": "Code",
"codePlaceholder": "e.g., 1A, 1B, 2",
"subStatus": "Sub-status",
"subStatusPlaceholder": "e.g., A, B, C",
"category": "Category",
"description": "Description",
"descriptionPlaceholder": "Description of response code",
"descriptionThai": "Description (Thai)",
"implications": "Implications",
"implicationsPlaceholder": "Implications when this code is selected",
"notifyRoles": "Notify Roles",
"isActive": "Active",
"saveButton": "Save",
"cancelButton": "Cancel"
},
"selector": {
"placeholder": "Select response code...",
"filterByDocType": "Filter by Document Type",
"loading": "Loading..."
},
"implications": {
"title": "Code Implications",
"critical": "Critical",
"warning": "Warning",
"info": "Info",
"notificationsSent": "Notifications will be sent to: {{roles}}"
},
"matrix": {
"title": "Master Approval Matrix",
"subtitle": "Define response codes by document type",
"docType": "Document Type",
"applicableCodes": "Applicable Codes",
"projectOverride": "Project Override",
"inheritanceNote": "Inherited from default",
"addOverride": "Add Project Override"
},
"errors": {
"codeRequired": "Code is required",
"codeExists": "Code already exists",
"categoryRequired": "Please select a category",
"invalidCode": "Invalid code format",
"loadFailed": "Failed to load codes",
"saveFailed": "Failed to save code"
},
"success": {
"created": "Code created successfully",
"updated": "Code updated successfully",
"deleted": "Code deleted successfully"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"title": "Review Tasks",
"subtitle": "Manage document review tasks and track status",
"inbox": {
"title": "Review Inbox",
"pending": "Pending",
"inProgress": "In Progress",
"completed": "Completed",
"delegated": "Delegated",
"noTasks": "No review tasks",
"filterAll": "All",
"filterByProject": "Filter by Project",
"filterByDiscipline": "Filter by Discipline"
},
"status": {
"PENDING": "Pending",
"IN_PROGRESS": "In Progress",
"COMPLETED": "Completed",
"DELEGATED": "Delegated",
"OVERDUE": "Overdue"
},
"actions": {
"start": "Start Review",
"complete": "Complete Review",
"delegate": "Delegate",
"return": "Return",
"viewDetails": "View Details",
"addComment": "Add Comment",
"viewDocument": "View Document"
},
"form": {
"completeTitle": "Complete Review",
"responseCode": "Response Code",
"responseCodePlaceholder": "Select code...",
"comments": "Comments",
"commentsPlaceholder": "Enter comments...",
"attachments": "Attachments",
"addAttachment": "Add File",
"confirmComplete": "Confirm completion?",
"saveButton": "Save",
"cancelButton": "Cancel"
},
"progress": {
"title": "Review Progress",
"completedOf": "{{completed}}/{{total}} Completed",
"consensusStatus": "Consensus Status: {{status}}",
"waitingFor": "Waiting for: {{disciplines}}",
"parallelReview": "Parallel Review",
"sequentialReview": "Sequential Review"
},
"veto": {
"button": "Veto Override",
"title": "Veto Override - Force Approval",
"justification": "Justification for Override",
"justificationPlaceholder": "Enter justification for forcing approval...",
"confirm": "Confirm Veto Override",
"warning": "This action will be logged in Audit Log and notify relevant teams",
"pmOnly": "Project Manager Only"
},
"consensus": {
"APPROVED": "Approved",
"APPROVED_WITH_COMMENTS": "Approved with Comments",
"REJECTED": "Rejected",
"PENDING": "Pending",
"VETO_OVERRIDE": "Veto Override",
"calculating": "Calculating consensus..."
},
"reminders": {
"dueSoon": "Due in {{days}} days",
"overdue": "Overdue by {{days}} days",
"escalationLevel1": "Escalation Level 1",
"escalationLevel2": "Escalation Level 2"
},
"confirmation": {
"title": "Confirm Action",
"message": "Are you sure you want to proceed with this action?",
"confirmButton": "Confirm",
"cancelButton": "Cancel"
},
"errors": {
"loadFailed": "Failed to load review tasks",
"completeFailed": "Failed to complete review",
"responseCodeRequired": "Please select a response code",
"raceCondition": "Task status changed, please refresh and try again",
"unauthorized": "You are not authorized for this action"
},
"success": {
"started": "Review started successfully",
"completed": "Review completed successfully",
"delegated": "Delegated successfully",
"commentAdded": "Comment added successfully"
}
}
@@ -0,0 +1,70 @@
{
"title": "Review Team Management",
"subtitle": "Create and manage document review teams by discipline",
"list": {
"title": "Review Team List",
"createButton": "Create New Team",
"searchPlaceholder": "Search teams...",
"noResults": "No review teams found",
"teamCount": "{{count}} teams",
"memberCount": "{{count}} members"
},
"form": {
"createTitle": "Create Review Team",
"editTitle": "Edit Review Team",
"name": "Team Name",
"namePlaceholder": "Enter team name",
"description": "Description",
"descriptionPlaceholder": "Enter team description (optional)",
"disciplines": "Responsible Disciplines",
"disciplinesPlaceholder": "Select disciplines...",
"rfaTypes": "RFA Types to Review",
"rfaTypesPlaceholder": "Select RFA types...",
"isActive": "Active",
"isDefault": "Set as Default",
"saveButton": "Save",
"cancelButton": "Cancel",
"deleteButton": "Delete Team",
"confirmDelete": "Confirm delete this team?"
},
"members": {
"title": "Team Members",
"addButton": "Add Member",
"removeButton": "Remove from Team",
"role": {
"LEAD": "Team Lead",
"REVIEWER": "Reviewer",
"OBSERVER": "Observer"
},
"noMembers": "No members in this team yet",
"searchUserPlaceholder": "Search users..."
},
"status": {
"active": "Active",
"inactive": "Inactive",
"default": "Default"
},
"errors": {
"nameRequired": "Team name is required",
"nameExists": "Team name already exists",
"disciplineRequired": "Please select at least one discipline",
"memberRequired": "Please add at least one member",
"leadRequired": "Team must have at least one lead",
"loadFailed": "Failed to load team data",
"saveFailed": "Failed to save team",
"deleteFailed": "Failed to delete team"
},
"success": {
"created": "Team created successfully",
"updated": "Team updated successfully",
"deleted": "Team deleted successfully",
"memberAdded": "Member added successfully",
"memberRemoved": "Member removed successfully"
}
}