From eda8ab5948d74d770a7d962c116235cc54e50df4 Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:02:38 +0530 Subject: [PATCH 1/8] Populate updatedOn for case search and make it mandatory --- apps/customer-portal/backend/modules/entity/types.bal | 2 ++ apps/customer-portal/backend/modules/types/types.bal | 2 ++ apps/customer-portal/backend/openapi.yaml | 4 ++++ apps/customer-portal/backend/utils.bal | 1 + 4 files changed, 9 insertions(+) diff --git a/apps/customer-portal/backend/modules/entity/types.bal b/apps/customer-portal/backend/modules/entity/types.bal index 201f2a88bb..21e8252749 100644 --- a/apps/customer-portal/backend/modules/entity/types.bal +++ b/apps/customer-portal/backend/modules/entity/types.bal @@ -379,6 +379,8 @@ public type Case record {| string number; # Created date and time string createdOn; + # Updated date and time + string updatedOn; # Created by (User email) string createdBy; # Case title diff --git a/apps/customer-portal/backend/modules/types/types.bal b/apps/customer-portal/backend/modules/types/types.bal index 6139421c02..e56dcbb26c 100644 --- a/apps/customer-portal/backend/modules/types/types.bal +++ b/apps/customer-portal/backend/modules/types/types.bal @@ -136,6 +136,8 @@ public type Case record {| string number; # Created date and time string createdOn; + # Updated date and time + string updatedOn; # Created by (User email) string createdBy; # Case title diff --git a/apps/customer-portal/backend/openapi.yaml b/apps/customer-portal/backend/openapi.yaml index aa25540ec5..c6f8c06857 100644 --- a/apps/customer-portal/backend/openapi.yaml +++ b/apps/customer-portal/backend/openapi.yaml @@ -3581,6 +3581,7 @@ components: - assignedTeam - createdBy - createdOn + - updatedOn - description - duration - id @@ -3605,6 +3606,9 @@ components: createdOn: type: string description: Created date and time + updatedOn: + type: string + description: Updated date and time createdBy: type: string description: Created by (User email) diff --git a/apps/customer-portal/backend/utils.bal b/apps/customer-portal/backend/utils.bal index 9650d5dc93..ffb6d03658 100644 --- a/apps/customer-portal/backend/utils.bal +++ b/apps/customer-portal/backend/utils.bal @@ -100,6 +100,7 @@ public isolated function searchCases(string idToken, string projectId, types:Cas number: case.number, title: case.title, createdOn: case.createdOn, + updatedOn: case.updatedOn, createdBy: case.createdBy, description: case.description, duration: case.duration, From 8dbf474e96dabc8a8b6b238ba5b246bfdf6ca546 Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:03:09 +0530 Subject: [PATCH 2/8] Drop createdOn fallback for case updated time --- .../webapp/src/components/list-view/ListCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/customer-portal/webapp/src/components/list-view/ListCard.tsx b/apps/customer-portal/webapp/src/components/list-view/ListCard.tsx index fda3aa2515..749650d2d4 100644 --- a/apps/customer-portal/webapp/src/components/list-view/ListCard.tsx +++ b/apps/customer-portal/webapp/src/components/list-view/ListCard.tsx @@ -213,7 +213,7 @@ export default function ListCard({ color="text.secondary" sx={{ lineHeight: 1, overflowWrap: "anywhere" }} > - Updated {formatDateTime(caseItem.updatedOn ?? caseItem.createdOn) || "--"} + Updated {formatDateTime(caseItem.updatedOn) || "--"} {caseItem.createdBy && ( From ca8061ae15ad323db49a81843a325ea3d3c04e5b Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:03:27 +0530 Subject: [PATCH 3/8] Drop createdOn fallback for announcement updated time; show placeholder when absent --- .../announcements/components/AnnouncementDetailsPanel.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementDetailsPanel.tsx b/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementDetailsPanel.tsx index f9f51e41bb..a30c389435 100644 --- a/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementDetailsPanel.tsx +++ b/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementDetailsPanel.tsx @@ -114,9 +114,7 @@ export default function AnnouncementDetailsPanel({ const statusLabel = data.status?.label; const statusColorPath = getStatusColor(statusLabel ?? undefined); const resolvedStatusColor = resolveColorFromTheme(statusColorPath, theme); - const updatedOnLabel = formatAnnouncementDateDisplay( - data.updatedOn ?? data.createdOn, - ); + const updatedOnLabel = formatAnnouncementDateDisplay(data.updatedOn); return ( @@ -225,7 +223,7 @@ export default function AnnouncementDetailsPanel({ aria-hidden /> - {updatedOnLabel} + {updatedOnLabel || "--"} {data.issueType?.label && ( From 9fd4f241382442c60688e93f5aa7c08380182a70 Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:03:40 +0530 Subject: [PATCH 4/8] Drop createdOn fallback for announcement updated time; show placeholder when absent --- .../features/announcements/components/AnnouncementList.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementList.tsx b/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementList.tsx index 169b625fea..8cb1813d5a 100644 --- a/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementList.tsx +++ b/apps/customer-portal/webapp/src/features/announcements/components/AnnouncementList.tsx @@ -97,7 +97,7 @@ export default function AnnouncementList({ const statusColor = getStatusColor(statusLabel); const resolvedStatusColor = resolveColorFromTheme(statusColor, theme); const updatedOnLabel = formatAnnouncementDateDisplay( - caseItem.updatedOn ?? caseItem.createdOn, + caseItem.updatedOn, ); const cardContent = ( @@ -195,7 +195,7 @@ export default function AnnouncementList({ color="text.secondary" sx={{ lineHeight: 1 }} > - Updated {updatedOnLabel} + Updated {updatedOnLabel || "--"} {caseItem.issueType?.label && ( From 057561ed9509714c57c25ec102bf37b5a761d8ff Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:03:52 +0530 Subject: [PATCH 5/8] Drop createdOn fallback for case updated time in dashboard table --- .../features/dashboard/components/cases-table/CasesList.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/customer-portal/webapp/src/features/dashboard/components/cases-table/CasesList.tsx b/apps/customer-portal/webapp/src/features/dashboard/components/cases-table/CasesList.tsx index 714aa74de8..3ade6cadb1 100644 --- a/apps/customer-portal/webapp/src/features/dashboard/components/cases-table/CasesList.tsx +++ b/apps/customer-portal/webapp/src/features/dashboard/components/cases-table/CasesList.tsx @@ -163,7 +163,7 @@ const CasesList = ({ {formatBackendTimestampForDisplay( - row.updatedOn ?? row.createdOn, + row.updatedOn, { month: "short", day: "numeric", @@ -176,7 +176,7 @@ const CasesList = ({ color="text.secondary" > {formatBackendTimestampForDisplay( - row.updatedOn ?? row.createdOn, + row.updatedOn, { hour: "numeric", minute: "2-digit", From d0085d9e36aa248f5c156b6d8b9257db38f35eb8 Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:04:05 +0530 Subject: [PATCH 6/8] Drop createdOn fallback for change request updated time --- .../components/change-requests/ChangeRequestsList.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/customer-portal/webapp/src/features/operations/components/change-requests/ChangeRequestsList.tsx b/apps/customer-portal/webapp/src/features/operations/components/change-requests/ChangeRequestsList.tsx index fa22d4de3c..70f92e592c 100644 --- a/apps/customer-portal/webapp/src/features/operations/components/change-requests/ChangeRequestsList.tsx +++ b/apps/customer-portal/webapp/src/features/operations/components/change-requests/ChangeRequestsList.tsx @@ -319,7 +319,7 @@ export default function ChangeRequestsList({ )} - {(item.updatedOn ?? item.createdOn) && ( + {item.updatedOn && ( - {formatDateTime(item.updatedOn ?? item.createdOn)} + {formatDateTime(item.updatedOn)} )} - {(item.updatedOn ?? item.createdOn) && (item.startDate || item.endDate) && ( + {item.updatedOn && (item.startDate || item.endDate) && ( | From 4ad6b5d868d98926826e1121fb72eb69c4c903e7 Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:04:20 +0530 Subject: [PATCH 7/8] Drop createdOn fallback for service request updated time --- .../components/service-requests/ServiceRequestsList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/customer-portal/webapp/src/features/operations/components/service-requests/ServiceRequestsList.tsx b/apps/customer-portal/webapp/src/features/operations/components/service-requests/ServiceRequestsList.tsx index 5a240f396a..732e5fbfb1 100644 --- a/apps/customer-portal/webapp/src/features/operations/components/service-requests/ServiceRequestsList.tsx +++ b/apps/customer-portal/webapp/src/features/operations/components/service-requests/ServiceRequestsList.tsx @@ -232,7 +232,7 @@ export default function ServiceRequestsList({ color="text.secondary" sx={{ lineHeight: 1 }} > - {formatDateTime(sr.updatedOn ?? sr.createdOn) || NULL_PLACEHOLDER} + {formatDateTime(sr.updatedOn) || NULL_PLACEHOLDER} {environmentLabel && ( From 1874af3d169ac5c3cb648df7cf0477f03550c38e Mon Sep 17 00:00:00 2001 From: cloby99 Date: Wed, 22 Jul 2026 21:04:31 +0530 Subject: [PATCH 8/8] Drop createdOn fallback for outstanding case updated time --- .../components/support-overview-cards/OutstandingCasesList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/customer-portal/webapp/src/features/support/components/support-overview-cards/OutstandingCasesList.tsx b/apps/customer-portal/webapp/src/features/support/components/support-overview-cards/OutstandingCasesList.tsx index 27737ee256..e8bda18423 100644 --- a/apps/customer-portal/webapp/src/features/support/components/support-overview-cards/OutstandingCasesList.tsx +++ b/apps/customer-portal/webapp/src/features/support/components/support-overview-cards/OutstandingCasesList.tsx @@ -260,7 +260,7 @@ export default function OutstandingCasesList({ color="text.secondary" sx={{ flexShrink: 0 }} > - {formatRelativeTime(c.updatedOn ?? c.createdOn ?? undefined)} + {formatRelativeTime(c.updatedOn ?? undefined)}