Skip to content

Feat/epinio 479 trailhand table#538

Open
Hannahbird wants to merge 2 commits into1.14.0from
feat/EPINIO-479__trailhand_table
Open

Feat/epinio 479 trailhand table#538
Hannahbird wants to merge 2 commits into1.14.0from
feat/EPINIO-479__trailhand_table

Conversation

@Hannahbird
Copy link
Contributor

@Hannahbird Hannahbird commented Mar 5, 2026

PR Checklist

  • Linting Test is passing
  • Code is well documented
  • If applicable, a PR in the epinio/docs repository has been opened

Summary

Fixes #

Adopt the trailhand data-table web component across all Epinio UI list, detail, and page views, replacing the legacy custom DataTable.vue and Rancher SortableTable components.

Occurred changes and/or fixed issues

  • Replaced all table implementations in list/, detail/, and pages/ with web component
  • Extracted all shared cell renderer logic into utils/table-formatters.ts — state tags, router links, commit SHA/author cells, app routes, bound services, and build progress cells
  • Applied dark mode hover CSS variables (--sortable-table-row-hover-bg, --sortable-table-header-hover-bg) to every data-table instance
  • Created a local copy of GitPicker.vue using the shared formatters

Technical notes summary

Areas or cases that should be tested

  • All list views: Applications, Configurations, Services, Namespaces, App Charts
  • Applications detail page — git commit picker, bound resources, action menu
  • Catalog Services detail page
  • About page — versions table and CLI downloads table
  • Epinio cluster index page — state tags, available/unavailable cluster links
  • Namespace create modal (still inline in list/namespaces.vue)
  • Dark mode — hover states on all tables
  • Table sorting, search, and pagination where enabled

Areas which could experience regressions

Screenshot/Video

Light mode - Applications Page

image --- #### Dark Mode - Applications Page image

@Hannahbird Hannahbird requested review from dcharles525 and johnlcos and removed request for dcharles525 March 5, 2026 21:05
@Hannahbird Hannahbird force-pushed the feat/EPINIO-479__trailhand_table branch from 4bafade to 6d65ea6 Compare March 5, 2026 21:24
@dcharles525 dcharles525 changed the base branch from 1.14.0 to development March 5, 2026 21:26
@dcharles525 dcharles525 changed the base branch from development to 1.14.0 March 5, 2026 21:26
Replace custom DataTable.vue and Rancher SortableTable across all
list, detail, and page views with the trailhand data-table web
component for consistency with the design system.

Extract all shared cell renderers into utils/table-formatters.ts,
eliminating duplicated DOM construction logic across components.
Helpers cover state tags, router links, commit SHA/author cells,
app routes, and build progress cells.

Apply dark mode hover CSS variables to every data-table instance.
Configure vue.config.js isCustomElement to suppress Vue compiler
warnings for web component tag names.
@Hannahbird Hannahbird force-pushed the feat/EPINIO-479__trailhand_table branch from 6d65ea6 to 5b9de2e Compare March 5, 2026 21:37
:row-actions="false"
default-sort-by="epinio-name"
:search="false"
<data-table
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should have called this out in trailhand, but I think we should add "trailhand-" to the component name for consistency.

label: t('tableHeaders.description'),
width: '450px',
sortable: false,
formatter: (_v: any, row: any) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there is some formatting issues here.

Image


<DataTable
:rows="apps"
<data-table
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This applies to all tables, but the bg color state for the top row behaves a bit strangely after sorting. It is especially noticeable on dark mode

Image

</template>
</Masthead>
<DataTable
<data-table
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need an action to delete the namespace
(pic of old table)

Image

</template>
</Masthead>
<DataTable
<data-table
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like services is also missing its actions

Image

</template>
</Masthead>
<DataTable
<data-table
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As well as configs

Image


<template>
<DataTable
<data-table
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if there is a case where there are supposed to be actions

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants