public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pdm-devel] [PATCH datacenter-manager 00/18] enable custom views on the UI
@ 2025-11-12 16:11 Dominik Csapak
  2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 01/18] lib: pdm-config: views: add locking/saving methods Dominik Csapak
                   ` (19 more replies)
  0 siblings, 20 replies; 22+ messages in thread
From: Dominik Csapak @ 2025-11-12 16:11 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' series (v4) for the backend[0]

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.

0: https://lore.proxmox.com/pdm-devel/20251112103510.158127-1-l.wagner@proxmox.com/T/#t

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' 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        | 265 +++++++++++++
 server/src/api/resources.rs           |  17 +
 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/view_edit.rs     |   4 +
 ui/src/configuration/views.rs         | 320 ++++++++++++++++
 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              | 387 +++++++++++--------
 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                        |  47 ++-
 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 | 378 +++++++++++++++++++
 ui/src/widget/view_selector.rs        |  55 +++
 29 files changed, 2270 insertions(+), 255 deletions(-)
 create mode 100644 server/src/api/config/views.rs
 create mode 100644 ui/src/configuration/view_edit.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

-- 
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] 22+ messages in thread

end of thread, other threads:[~2025-11-14 12:12 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-12 16:11 [pdm-devel] [PATCH datacenter-manager 00/18] enable custom views on the UI Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 01/18] lib: pdm-config: views: add locking/saving methods Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 02/18] lib: api-types: add 'layout' property to ViewConfig Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 03/18] server: api: implement CRUD api for views Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 04/18] server: api: resources: add 'view' category to search syntax Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 05/18] ui: remote selector: allow forcing of value Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 06/18] ui: dashboard types: add missing 'default' to de-serialization Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 07/18] ui: dashboard: status row: add optional 'editing state' Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 08/18] ui: dashboard: prepare view for editing custom views Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 09/18] ui: views: implement view loading from api Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 10/18] ui: views: make 'view' name property optional Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 11/18] ui: views: add 'view' parameter to api calls Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 12/18] ui: views: save updated layout to backend Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 13/18] ui: add view list context Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 14/18] ui: configuration: add view CRUD panels Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 15/18] ui: main menu: add optional view_list property Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 16/18] ui: load view list on page init Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 17/18] lib/ui: move views types to pdm-api-types Dominik Csapak
2025-11-12 16:11 ` [pdm-devel] [PATCH datacenter-manager 18/18] server: api: views: check layout string for validity Dominik Csapak
2025-11-14 10:20 ` [pdm-devel] [PATCH datacenter-manager 00/18] enable custom views on the UI Lukas Wagner
2025-11-14 10:56   ` Dominik Csapak
2025-11-14 12:13 ` [pdm-devel] superseded: " Dominik Csapak

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