From f205cce04445938f67029b6e746b9a52b26131c8 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Fri, 8 May 2026 13:32:44 +0200 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20Phase=205f-ii=20=E2=80=94=20i?= =?UTF-8?q?nbound=20list=20table=20+=20search/filter=20+=20auto-refresh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fleshes out the inbound list with the full column set, search & filter toolbar, row enable toggle wired to /panel/api/inbounds/setEnable/:id, and a per-row action dropdown that emits events the parent will route to modals as those land in 5f-iii through 5f-vii. - InboundList.vue (new): toolbar (Add inbound + General actions dropdown + Refresh + auto-refresh popover), search-or-filter switch with the legacy radio buttons (Active/Disabled/Depleted/Depleting/ Online), and a a-table with desktop and mobile column variants. Cells use AD-Vue 4's #bodyCell slot — protocol/clients/traffic/ allTime/expiry/info cells render the same popovers and tags as legacy. Row enable switch is optimistic with rollback on POST failure. - visibleInbounds computed mirrors the legacy search and filter projection: deep search through dbInbound + clients, or filter reduces inbound.settings.clients to the selected bucket so the table only shows matching client rows. - Auto-refresh interval is read/written to localStorage with the same keys (`isRefreshEnabled`, `refreshInterval`) as the legacy panel. WebSocket delta updates are still deferred. - Action menu emits event payloads {key, dbInbound}; the parent currently shows a "coming in later 5f subphase" toast for each. Modals (edit/qr/clone/delete/reset/info/clients) land in 5f-iii through 5f-vii. Co-Authored-By: Claude Opus 4.7 --- frontend/src/pages/inbounds/InboundList.vue | 516 +++++++++++++++++++ frontend/src/pages/inbounds/InboundsPage.vue | 89 ++-- 2 files changed, 553 insertions(+), 52 deletions(-) create mode 100644 frontend/src/pages/inbounds/InboundList.vue diff --git a/frontend/src/pages/inbounds/InboundList.vue b/frontend/src/pages/inbounds/InboundList.vue new file mode 100644 index 00000000..020a9aaa --- /dev/null +++ b/frontend/src/pages/inbounds/InboundList.vue @@ -0,0 +1,516 @@ + + + + + diff --git a/frontend/src/pages/inbounds/InboundsPage.vue b/frontend/src/pages/inbounds/InboundsPage.vue index 111cb224..57ba0740 100644 --- a/frontend/src/pages/inbounds/InboundsPage.vue +++ b/frontend/src/pages/inbounds/InboundsPage.vue @@ -1,13 +1,12 @@