diff --git a/packages/ecc-client-ga4gh-drs/src/components/objects-list/objects.ts b/packages/ecc-client-ga4gh-drs/src/components/objects-list/objects.ts index ce113378..8937d67f 100644 --- a/packages/ecc-client-ga4gh-drs/src/components/objects-list/objects.ts +++ b/packages/ecc-client-ga4gh-drs/src/components/objects-list/objects.ts @@ -95,7 +95,9 @@ export class ECCClientGa4ghDrsObjects extends LitElement { this.pageSize, this.currentPage - 1 ); - this.objects = result.objects; + this.objects = ECCClientGa4ghDrsObjects.sortObjectsByLastUpdated( + result.objects + ); // Update total objects and pages from API response if (result.pagination?.total !== undefined) { @@ -166,6 +168,17 @@ export class ECCClientGa4ghDrsObjects extends LitElement { this.loadData(); } + private static sortObjectsByLastUpdated(objects: DrsObject[]): DrsObject[] { + return [...objects].sort((a, b) => { + // Use updated_time if available, otherwise fall back to created_time + const aTime = a.updated_time || a.created_time; + const bTime = b.updated_time || b.created_time; + + // Sort in reverse chronological order (most recent first) + return new Date(bTime).getTime() - new Date(aTime).getTime(); + }); + } + private renderPagination() { return html` @@ -299,7 +312,7 @@ export class ECCClientGa4ghDrsObjects extends LitElement { .map( () => html` - +
- + - + @@ -341,9 +354,17 @@ export class ECCClientGa4ghDrsObjects extends LitElement { return `${parseFloat((bytes / k ** i).toFixed(2))} ${sizes[i]}`; } - private static formatDate(dateString: string): string { + private static formatDateTime(dateString: string): string { try { - return new Date(dateString).toLocaleDateString(); + return new Date(dateString).toLocaleString("en-US", { + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + hour12: false, + }); } catch { return dateString; } @@ -403,18 +424,18 @@ export class ECCClientGa4ghDrsObjects extends LitElement { - Object Info Size - Created - + Last Updated @@ -426,7 +447,7 @@ export class ECCClientGa4ghDrsObjects extends LitElement { return html` No objects found @@ -437,7 +458,7 @@ export class ECCClientGa4ghDrsObjects extends LitElement { return this.objects.map( (object) => html` - +
- + ${ECCClientGa4ghDrsObjects.formatDate( + >${ECCClientGa4ghDrsObjects.formatDateTime( object.created_time )} - - - this.handleObjectSelect(object.id)} - > - View Details - - + + ${ECCClientGa4ghDrsObjects.formatDateTime( + object.updated_time || object.created_time + )} ` diff --git a/packages/ecc-client-ga4gh-wes/src/components/run/run.ts b/packages/ecc-client-ga4gh-wes/src/components/run/run.ts index 90db3e66..8eed25c3 100644 --- a/packages/ecc-client-ga4gh-wes/src/components/run/run.ts +++ b/packages/ecc-client-ga4gh-wes/src/components/run/run.ts @@ -243,9 +243,16 @@ export class ECCClientGa4ghWesRun extends LitElement {
- - ${stateInfo.label} - + ${(() => { + const stateInfo = ECCClientGa4ghWesRun.getStateInfo( + this.run.state + ); + return html` + + ${stateInfo.label} + + `; + })()} ${this.run.request.workflow_type}