Skip to content

Improve VPS lifecycle UX and match legacy permissions #105

Description

@Kerrycek

Goal

Improve the VPS lifecycle experience so it is closer to the legacy vpsAdmin UI, while keeping the new WebUI Next design clean and usable.

Context

The current lifecycle section is too long and form-heavy. It feels like a pile of unrelated forms. In the legacy UI, lifecycle actions are separate, focused workflows. The new UI should expose the actions from the VPS detail as a clear action menu/list, and then route the user to a focused page/panel for the chosen action.

Reference old UI behavior from Kerrycek/vpsadmin, especially:

  • webui/pages/page_adminvps.php
  • webui/forms/vps.forms.php

Do not modify upstream vpsfreecz/* repos.

Required behavior

  • On VPS detail, provide a clearer lifecycle/action entry point, e.g. an "Actions" dropdown or slide-out action list.
  • Selecting an action such as Reinstall, Clone, Swap, Delete, Rescue boot, Migrate, or Replace should open a focused workflow for that specific action, not dump all lifecycle forms on one long page.
  • Match legacy permission parity as closely as possible:
    • regular users can perform actions allowed in old UI, especially reinstall, clone, swap, and delete where applicable,
    • admin-only actions such as migrate/replace and admin-specific controls remain admin-only,
    • do not hide user-allowed actions just because they feel dangerous; use confirmations instead.
  • Migration must use a node selector by node name/fqdn, not a raw node ID input.
  • Swap should be redesigned to be closer to legacy UI: show likely staging/playground targets, preview what resources/IPs will be swapped, and make the confirmation explicit.
  • Keep dangerous actions behind clear confirmation UX.
  • Do not make large unrelated refactors.

Verification

  • Run typecheck/build.
  • Add or update Playwright coverage for at least:
    • user sees user-allowed lifecycle actions,
    • admin sees admin-only lifecycle actions,
    • migrate uses selectable node names instead of a raw ID input,
    • lifecycle action selection opens the focused workflow.
  • If real API side effects cannot be safely tested in CI, use mocked E2E tests and document a manual test path.

Expected PR notes

Include what was compared with legacy UI, what permissions were matched, what remains different, and why.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-fixLet the Codex issue runner propose a fixai-in-progressCodex issue runner is working on thisai-prCodex opened a pull requestenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions