From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id A00F91FF179 for ; Wed, 26 Nov 2025 16:20:49 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C0FD6108CA; Wed, 26 Nov 2025 16:21:02 +0100 (CET) Message-ID: <942d1390-bafd-42a9-886c-a4fbcec96cb2@proxmox.com> Date: Wed, 26 Nov 2025 16:20:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta From: Dominik Csapak To: pdm-devel@lists.proxmox.com References: <20251124120758.2636462-1-d.csapak@proxmox.com> Content-Language: en-US In-Reply-To: <20251124120758.2636462-1-d.csapak@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764170382863 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] superseded: [PATCH datacenter-manager v4 00/18] enable custom views on the UI X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" superseded by v5: https://lore.proxmox.com/pdm-devel/20251126151833.3637080-1-d.csapak@proxmox.com/ NOTE: new version depends on lukas changes (see cover-letter) On 11/24/25 1:08 PM, Dominik Csapak wrote: > With this series, users are able to add/edit/delete custom views. > > A new 'Views' menu entry is added where the CRUD ui sits, and an entry > for each view below it. > > The includes/excludes are editable from the CRUD grid, and the layout is > editable in the view itself. > > For now i opted to make the layout part of the `ViewConfig` struct, but > as a simple json-string only, because we're not able to use the > api-macro (for now; the rust enum features i use are currently not > supported there). To verify it regardless, we try to deserialize > the layout in the add/update call, so that no wrong layout can enter > the config (via the api). > > The patch 'ui: dashboard: prepare view for editint custom views' > is adapted from my last series, but all other changes are new, > especially the CRUD api. > > There are still a few parts missing/wrong, namely > * while the api is prepared, clicking on guest status items does not > yet populate the search field with a '+view:foo' term > * subscriptions panels are still added by default when none is in the > layout itself (the plan is to move the subscription notice) > * i'm still working on making the 'resource tree' a full widget that > users can add to their views. > > chnages from v3: > * incorporated most of Shannon's feedback (Thanks!) > see the individual patches for changelog > * rebase on master > > changes from v2: > * fixed 'verbose' property for subscriptions api call > * adapted to PveSdnZone -> PveNetwork renaming > * added validators for filter fields > (so that the user sees it's invalid) > > changes from v1: > * rebase on master, lukas v5 was applied > > Dominik Csapak (18): > lib: pdm-config: views: add locking/saving methods > lib: api-types: add 'layout' property to ViewConfig > server: api: implement CRUD api for views > server: api: resources: add 'view' category to search syntax > ui: remote selector: allow forcing of value > ui: dashboard types: add missing 'default's to de-serialization > ui: dashboard: status row: add optional 'editing state' > ui: dashboard: prepare view for editing custom views > ui: views: implement view loading from api > ui: views: make 'view' name property optional > ui: views: add 'view' parameter to api calls > ui: views: save updated layout to backend > ui: add view list context > ui: configuration: add view CRUD panels > ui: main menu: add optional view_list property > ui: load view list on page init > lib/ui: move views types to pdm-api-types > server: api: views: check layout string for validity > > lib/pdm-api-types/src/resource.rs | 7 + > lib/pdm-api-types/src/views.rs | 90 ++++- > lib/pdm-config/src/views.rs | 22 +- > server/src/api/config/mod.rs | 2 + > server/src/api/config/views.rs | 267 +++++++++++++ > server/src/api/resources.rs | 19 +- > server/src/views/mod.rs | 2 +- > server/src/views/tests.rs | 15 + > ui/Cargo.toml | 2 +- > ui/css/pdm.scss | 4 + > ui/src/configuration/mod.rs | 2 + > ui/src/configuration/views.rs | 335 +++++++++++++++++ > ui/src/dashboard/mod.rs | 2 - > ui/src/dashboard/status_row.rs | 60 ++- > ui/src/dashboard/top_entities.rs | 3 +- > ui/src/dashboard/types.rs | 79 ---- > ui/src/dashboard/view.rs | 410 ++++++++++++-------- > ui/src/dashboard/view/row_element.rs | 130 +++++++ > ui/src/dashboard/view/row_view.rs | 520 +++++++++++++++++++++++++- > ui/src/lib.rs | 3 + > ui/src/main.rs | 48 ++- > ui/src/main_menu.rs | 57 ++- > ui/src/pve/mod.rs | 9 + > ui/src/view_list_context.rs | 31 ++ > ui/src/widget/mod.rs | 6 + > ui/src/widget/remote_selector.rs | 6 + > ui/src/widget/view_filter_selector.rs | 393 +++++++++++++++++++ > ui/src/widget/view_selector.rs | 55 +++ > 28 files changed, 2315 insertions(+), 264 deletions(-) > create mode 100644 server/src/api/config/views.rs > create mode 100644 ui/src/configuration/views.rs > delete mode 100644 ui/src/dashboard/types.rs > create mode 100644 ui/src/dashboard/view/row_element.rs > create mode 100644 ui/src/view_list_context.rs > create mode 100644 ui/src/widget/view_filter_selector.rs > create mode 100644 ui/src/widget/view_selector.rs > _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel