public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pdm-devel] [PATCH datacenter-manager v5 00/26] enable custom views on the UI
@ 2025-11-26 15:17 Dominik Csapak
  2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 01/26] lib: pdm-config: views: add locking/saving methods Dominik Csapak
                   ` (27 more replies)
  0 siblings, 28 replies; 29+ messages in thread
From: Dominik Csapak @ 2025-11-26 15:17 UTC (permalink / raw)
  To: pdm-devel

With this series, users are able to add/edit/delete custom views.

NOTE: this series is based on lukas follow up series to the views[0]
but needs the change i mentioned in [1] to completely work.

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 is still one part wrong, namely
* subscriptions panels are still added by default when none is in the
  layout itself (the plan is to move the subscription notice)

changes from v4:
* add `+view:<VIEW>` when clicking on a searchable item from within
  the view
* adapt to lukas' changes regarding filters (so include-all, etc.)
* add the ability to add a 'resource tree' to a custom view, which
  is basically the tree from the global search but limited for the
  specific view
* some general improvements to the resource tree

changelogs in the relevant patches,and patches 19-26 are new

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

0: https://lore.proxmox.com/pdm-devel/20251117141122.328559-1-l.wagner@proxmox.com/
1: https://lore.proxmox.com/pdm-devel/ae0e2d08-cc13-4c40-a1b3-802136a58ed4@proxmox.com/

Dominik Csapak (26):
  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
  ui: dashboard: add current view to search terms
  ui: resource tree: fix loading logic
  ui: resource tree: move error message into first column
  ui: resource tree: use `ViewContext` to limit the api calls to a view
  ui: resource tree: show guest tags
  api-types/ui: add ResourceTree variant for WidgetType
  ui: dashboard view: refactor widget rendering arguments into struct
  ui: resource tree/view: reload tree in a view on refresh

 lib/pdm-api-types/src/resource.rs        |   7 +
 lib/pdm-api-types/src/views.rs           |  91 +++-
 lib/pdm-config/src/views.rs              |  22 +-
 lib/pdm-search/src/lib.rs                |   9 +
 server/src/api/config/mod.rs             |   2 +
 server/src/api/config/views.rs           | 274 ++++++++++++
 server/src/api/resources.rs              |  19 +-
 server/src/views/mod.rs                  |   2 +-
 ui/Cargo.toml                            |   2 +-
 ui/css/pdm.scss                          |   4 +
 ui/src/configuration/mod.rs              |   2 +
 ui/src/configuration/views.rs            | 370 ++++++++++++++++
 ui/src/dashboard/guest_panel.rs          |   4 +-
 ui/src/dashboard/mod.rs                  |   5 +-
 ui/src/dashboard/node_status_panel.rs    |   4 +-
 ui/src/dashboard/pbs_datastores_panel.rs |   4 +-
 ui/src/dashboard/remote_panel.rs         |   4 +-
 ui/src/dashboard/resource_tree.rs        |  53 +++
 ui/src/dashboard/sdn_zone_panel.rs       |   8 +-
 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                 | 492 +++++++++++++--------
 ui/src/dashboard/view/row_element.rs     | 130 ++++++
 ui/src/dashboard/view/row_view.rs        | 524 ++++++++++++++++++++++-
 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                     |   8 +-
 ui/src/widget/remote_selector.rs         |   6 +
 ui/src/widget/resource_tree.rs           |  99 ++++-
 ui/src/widget/view_filter_selector.rs    | 421 ++++++++++++++++++
 ui/src/widget/view_selector.rs           |  55 +++
 35 files changed, 2604 insertions(+), 307 deletions(-)
 create mode 100644 server/src/api/config/views.rs
 create mode 100644 ui/src/configuration/views.rs
 create mode 100644 ui/src/dashboard/resource_tree.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

-- 
2.47.3



_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-11-26 21:17 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-26 15:17 [pdm-devel] [PATCH datacenter-manager v5 00/26] enable custom views on the UI Dominik Csapak
2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 01/26] lib: pdm-config: views: add locking/saving methods Dominik Csapak
2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 02/26] lib: api-types: add 'layout' property to ViewConfig Dominik Csapak
2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 03/26] server: api: implement CRUD api for views Dominik Csapak
2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 04/26] server: api: resources: add 'view' category to search syntax Dominik Csapak
2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 05/26] ui: remote selector: allow forcing of value Dominik Csapak
2025-11-26 15:17 ` [pdm-devel] [PATCH datacenter-manager v5 06/26] ui: dashboard types: add missing 'default's to de-serialization Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 07/26] ui: dashboard: status row: add optional 'editing state' Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 08/26] ui: dashboard: prepare view for editing custom views Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 09/26] ui: views: implement view loading from api Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 10/26] ui: views: make 'view' name property optional Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 11/26] ui: views: add 'view' parameter to api calls Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 12/26] ui: views: save updated layout to backend Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 13/26] ui: add view list context Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 14/26] ui: configuration: add view CRUD panels Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 15/26] ui: main menu: add optional view_list property Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 16/26] ui: load view list on page init Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 17/26] lib/ui: move views types to pdm-api-types Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 18/26] server: api: views: check layout string for validity Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 19/26] ui: dashboard: add current view to search terms Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 20/26] ui: resource tree: fix loading logic Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 21/26] ui: resource tree: move error message into first column Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 22/26] ui: resource tree: use `ViewContext` to limit the api calls to a view Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 23/26] ui: resource tree: show guest tags Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 24/26] api-types/ui: add ResourceTree variant for WidgetType Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 25/26] ui: dashboard view: refactor widget rendering arguments into struct Dominik Csapak
2025-11-26 15:18 ` [pdm-devel] [PATCH datacenter-manager v5 26/26] ui: resource tree/view: reload tree in a view on refresh Dominik Csapak
2025-11-26 21:15 ` [pdm-devel] applied: [PATCH datacenter-manager v5 00/26] enable custom views on the UI Thomas Lamprecht
2025-11-26 21:17 ` [pdm-devel] " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal