Page MenuHomePhabricator

Implementing new PatchDemo multi-environment-deletion UI
Closed, ResolvedPublic5 Estimated Story Points

Assigned To
Authored By
thcipriani
Jun 2 2025, 4:20 PM
Referenced Files
F63967173: screenshot.png
Jul 12 2025, 10:48 AM
F63968632: screenshot.png
Jul 12 2025, 10:48 AM
F63968144: screenshot.png
Jul 12 2025, 10:48 AM
F63967454: screenshot.png
Jul 12 2025, 10:48 AM
F63966985: screenshot.png
Jul 12 2025, 10:48 AM

Description

For T388936 we worked through design decisions for the user experience when deleting multiple environments and mocked up some options.

Now we're ready to implement based on those decisions.

In T388936 one design was based around Codex CSS (notably not the Vue portion). This is optional for the purposes of this task. Moving towards Codex is already covered by T395162: Template-ify Patch Demo index page.

This also requires work to delete.php to:

  • Handle multiple wikis passed to the deletion confirmation
  • When you click confirm
    • this should tie in to the new catalyst API
    • and ensure that multiple patchdemo wikis can be deleted with the existing logic
    • also delete log screens should look normal :)

Details

Related Changes in GitLab:
TitleReferenceAuthorSource BranchDest Branch
Implementation of Patch demo Multi-delete + Fixrepos/test-platform/catalyst/patchdemo!176ebomaniMultiDelete-UIFixmain
Fix Multi-delete UIrepos/test-platform/catalyst/patchdemo!175ebomaniMulti-Delete-Fixmain
Correct rebase of multi-delete branchrepos/test-platform/catalyst/patchdemo!170jhuneidiT395820-B-rebasemain
Implementing Patchdemo multi-delete MVPrepos/test-platform/catalyst/patchdemo!162ebomaniT395820-Bmain
Updating Patchdemo wikis table using Codex CSS only.repos/test-platform/catalyst/patchdemo!160ebomaniT395820-WIPmain
Customize query in GitLab

Event Timeline

thcipriani triaged this task as Medium priority.
thcipriani updated the task description. (Show Details)
thcipriani set the point value for this task to 5.
thcipriani moved this task from Backlog to Ready on the Catalyst (Namako Mani) board.

Talked to some codex folks. Pulling in codex for CSS only requires manually adding a lot of classes, which fights how codex is meant to work with vue components handling css/css class add/remove transitions. As a result, we're not planning to use codex for this change.

For more context regarding our decision to not use codex for this change, here are some notes from my talks with Codex folks :

"Beyond maybe re-using a few colour tokens I'm not sure there's a lot of benefit in converting just that table to Codex - the rest of the app still uses OOUI pretty heavily (and it would be very complex to convert). You'll probably just end up loading both UI libraries indefinitely.
Note also that most of the complexity in the Patchdemo table are the styles implement sticky headers, and that make it responsive (on mobile devices the rows convert to cards) "

and

if you are trying to generate markup for complex Codex components like tables, and you're trying to do it in PHP, I'd recommend looking into the following approaches: consider using a template language (twig, mustache, etc) – might make the code much easier to follow and maintain
use Codex PHP, a (still experimental) PHP composer package that can programmatically produce Codex-compatible markup for CSS-only components

From these comments, it seems our decision to go the Codex CSS only route might not be the best bet. Although we still want to Codexify our front-end we do have to plan out the right way to go about implementation since the PHP is still experimental and the CSS only implementation requires further tweaking to make functional.

Our decision to do the Codex CSS only route was driven by the thought that it would be a relatively straight-forward addition in order to improve our UI and get us closer to the eventual goal of it being fully Codex, which we have determined to not quite be the case from my implementation attempts and the discussions with the Codex team.

A_smart_kitten subscribed.

Thanks for the work that's been done on this! :)
A few notes from some things I noticed with the new UI elements (let me know if you'd like me to file any/all of these as separate tasks!):

1) At the moment, it seems like the checkboxes are slightly vertically-misaligned with the linked wiki-IDs. It also feels (IMO) like there could be a little bit of extra padding added to the right of each checkbox, before each wiki's ID:

screenshot.png (692×308 px, 21 KB)

2) When scrolling down the page, the checkboxes overlap the sticky table headers at the top of the page:

screenshot.png (507×274 px, 20 KB)

3) When hovering over the "Delete selected" link, it doesn't become underlined, which makes it feel different from the other links on the page/less like a link:

comparing this (hovering over the linked wiki ID)to this (hovering over the "Delete selected" link)
screenshot.png (233×135 px, 6 KB)
screenshot.png (249×94 px, 4 KB)

4) My browser's developer tools complains to me that the checkbox elements don't have labels. (I don't know whether or not this presents any issues within the UI, but I thought it might be worth noting):

screenshot.png (634×111 px, 16 KB)
jeena edited projects, added: Catalyst (Kulupu Olin); removed: Catalyst.

Thanks for the detailed write up @A_smart_kitten moved that to T399479 so we could triage it separately. Everything you noted is small enough to be bundled in a single task, we think :)

Going to resolve this one as the feature exists and work on tweaks in the follow on task.