Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Containers to table component #4843

Closed
deboer-tim opened this issue Nov 16, 2023 · 2 comments · Fixed by #7424
Closed

Move Containers to table component #4843

deboer-tim opened this issue Nov 16, 2023 · 2 comments · Fixed by #7424
Assignees
Labels
area/dashboard 📊 Concern the dashboard from Container Desktop kind/enhancement ✨ Issue for requesting an improvement
Milestone

Comments

@deboer-tim
Copy link
Collaborator

Is your enhancement related to a problem? Please describe

We have a new table component, Containers page should switch.

Describe the solution you'd like

The Containers page should be based on the new table component, and most columns should be sortable. Unlike the other pages we'll need some new capability in the Table component to be able to group (by pods and compose).

Describe alternatives you've considered

No response

Additional context

No response

Copy link
Contributor

This issue has been automatically marked as stale because it has not had activity in the last 6 months. It will be closed in 30 days if no further activity occurs. Please feel free to leave a comment if you believe the issue is still relevant. Thank you for your contributions!

@deboer-tim
Copy link
Collaborator Author

Still valid.

deboer-tim added a commit to deboer-tim/desktop that referenced this issue Jun 3, 2024
Switch the Containers page to use the Table component. This is a final piece
of technical debt adopting the Table component, and gives a few advantages:
- Table expands/collapses to fit the display width (used to extend off the
  right edge with a scrollbar).
- Sorting of most columns.
- Consistent table UI with other pages.
- Basic support for light mode.

Fixes containers#4843.

Signed-off-by: Tim deBoer <git@tdeboer.ca>
deboer-tim added a commit to deboer-tim/desktop that referenced this issue Jun 7, 2024
A previous PR added support for having child items in tables, but the type
of the parent and child objects is the same.

For the Containers page, the parents are always ContainerGroupInfoUI and
the children are always ContainerInfoUI. This change just adds an optional
second type (identically to how we did rendering types in Column) so that
you can declare the different types naturally as:
  `ContainerGroupInfoUI, ContainerInfoUI`
instead of having to do:
  `ContainerGroupInfoUI | ContainerInfoUI`
and deal with typing issues in the client code.

Part of containers#4843.

Signed-off-by: Tim deBoer <git@tdeboer.ca>
deboer-tim added a commit that referenced this issue Jun 7, 2024
A previous PR added support for having child items in tables, but the type
of the parent and child objects is the same.

For the Containers page, the parents are always ContainerGroupInfoUI and
the children are always ContainerInfoUI. This change just adds an optional
second type (identically to how we did rendering types in Column) so that
you can declare the different types naturally as:
  `ContainerGroupInfoUI, ContainerInfoUI`
instead of having to do:
  `ContainerGroupInfoUI | ContainerInfoUI`
and deal with typing issues in the client code.

Part of #4843.

Signed-off-by: Tim deBoer <git@tdeboer.ca>
@deboer-tim deboer-tim added this to the 1.11.0 milestone Jun 10, 2024
deboer-tim added a commit to deboer-tim/desktop that referenced this issue Jun 11, 2024
Switch the Containers page to use the Table component. This is a final piece
of technical debt adopting the Table component, and gives a few advantages:
- Table expands/collapses to fit the display width (used to extend off the
  right edge with a scrollbar).
- Sorting of name column to start (wanted to focus on core aspects and get
  this in before sorting other columns).
- Consistent table UI with other pages.
- Basic support for light mode.

The containers table included ContainerGroupInfoUI parents of three types
(pods, compose groups, and standalone containers), all with ContainerInfoUI
children. To avoid UI issues the parent ContainerGroupInfoUI was skipped
when drawing standalone containers (i.e. it only draws the child container
object in this one case).

Since the Table component doesn't support this unique behaviour, the least
invasive/simplest option was to create a derived list where standalone
containers are mapped to actual containers.

Found an issue where Svelte was updating constantly; turns out this was
an existing bug in the timeout when no containers are running.

Ignore changes to Table - reviewed separately under containers#7587.

Fixes containers#4843.

Signed-off-by: Tim deBoer <git@tdeboer.ca>
deboer-tim added a commit to deboer-tim/desktop that referenced this issue Jun 11, 2024
Switch the Containers page to use the Table component. This is a final piece
of technical debt adopting the Table component, and gives a few advantages:
- Table expands/collapses to fit the display width (used to extend off the
  right edge with a scrollbar).
- Sorting of name column to start (wanted to focus on core aspects and get
  this in before sorting other columns).
- Consistent table UI with other pages.
- Basic support for light mode.

The containers table included ContainerGroupInfoUI parents of three types
(pods, compose groups, and standalone containers), all with ContainerInfoUI
children. To avoid UI issues the parent ContainerGroupInfoUI was skipped
when drawing standalone containers (i.e. it only draws the child container
object in this one case).

Since the Table component doesn't support this unique behaviour, the least
invasive/simplest option was to create a derived list where standalone
containers are mapped to actual containers.

Found an issue where Svelte was updating constantly; turns out this was
an existing bug in the timeout when no containers are running.

Ignore changes to Table - reviewed separately under containers#7587.

Fixes containers#4843.

Signed-off-by: Tim deBoer <git@tdeboer.ca>
deboer-tim added a commit to deboer-tim/desktop that referenced this issue Jun 13, 2024
Switch the Containers page to use the Table component. This is a final piece
of technical debt adopting the Table component, and gives a few advantages:
- Table expands/collapses to fit the display width (used to extend off the
  right edge with a scrollbar).
- Sorting of name column to start (wanted to focus on core aspects and get
  this in before sorting other columns).
- Consistent table UI with other pages.
- Basic support for light mode.

The containers table included ContainerGroupInfoUI parents of three types
(pods, compose groups, and standalone containers), all with ContainerInfoUI
children. To avoid UI issues the parent ContainerGroupInfoUI was skipped
when drawing standalone containers (i.e. it only draws the child container
object in this one case).

Since the Table component doesn't support this unique behaviour, the least
invasive/simplest option was to create a derived list where standalone
containers are mapped to actual containers.

Found an issue where Svelte was updating constantly; turns out this was
an existing bug in the timeout when no containers are running.

Ignore changes to Table - reviewed separately under containers#7587.

Fixes containers#4843.

Signed-off-by: Tim deBoer <git@tdeboer.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dashboard 📊 Concern the dashboard from Container Desktop kind/enhancement ✨ Issue for requesting an improvement
Projects
Status: ✔️ Done
Development

Successfully merging a pull request may close this issue.

3 participants