public inbox for yew-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Shannon Sterz <s.sterz@proxmox.com>
To: yew-devel@lists.proxmox.com
Subject: [PATCH yew-mobile-gui v2 21/21] resources page: map subscription level analogous to dashboard
Date: Fri,  8 May 2026 17:57:22 +0200	[thread overview]
Message-ID: <20260508155722.464564-22-s.sterz@proxmox.com> (raw)
In-Reply-To: <20260508155722.464564-1-s.sterz@proxmox.com>

and unify the mapping logic.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
Tested-by: Shan Shaji <s.shaji@proxmox.com>
---

Notes:
    i couldn't find a similar helper anyway in yew-comp yet, so i added
    this here for now. Thomas' recent series [1] added something like
    that, but that would only be available for pdm. maybe we should have
    something like this in yew-comp?

    [1]: https://lore.proxmox.com/pdm-devel/20260507082943.2749725-3-t.lamprecht@proxmox.com/

 src/pages/mod.rs            | 13 +++++++++++++
 src/pages/page_dashboard.rs | 13 ++-----------
 src/pages/page_resources.rs |  8 +++-----
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/src/pages/mod.rs b/src/pages/mod.rs
index bc5ff97..3d945a0 100644
--- a/src/pages/mod.rs
+++ b/src/pages/mod.rs
@@ -45,3 +45,16 @@ pub use page_cluster_firewall::PageClusterFirewall;

 mod page_not_found;
 pub use page_not_found::PageNotFound;
+
+fn map_subscription(level: &Option<String>) -> &str {
+    match level.as_deref() {
+        Some("") | None => "no subscription",
+        Some(level) => match level {
+            "c" => "Community",
+            "b" => "Basic",
+            "s" => "Standard",
+            "p" => "Premium",
+            _ => "-",
+        },
+    }
+}
diff --git a/src/pages/page_dashboard.rs b/src/pages/page_dashboard.rs
index 1e0243f..fe2f5b4 100644
--- a/src/pages/page_dashboard.rs
+++ b/src/pages/page_dashboard.rs
@@ -20,7 +20,7 @@ use proxmox_yew_comp::layout::list_tile::{icon_list_tile, list_tile_usage};
 use proxmox_yew_comp::layout::render_loaded_data;
 use proxmox_yew_comp::{SubscriptionAlert, http_get};

-use crate::pages::ResourceFilter;
+use crate::pages::{ResourceFilter, map_subscription};
 use crate::widgets::TopNavBar;

 #[derive(Clone, PartialEq, Properties)]
@@ -202,16 +202,7 @@ impl PvePageDashboard {
                     let navigator = navigator.clone();
                     let item = &nodes[pos as usize];
                     let nodename = item.node.clone();
-                    let subtitle = match item.level.as_deref() {
-                        Some("") | None => "no subscription",
-                        Some(level) => match level {
-                            "c" => "Community",
-                            "b" => "Basic",
-                            "s" => "Standard",
-                            "p" => "Premium",
-                            _ => "-",
-                        },
-                    };
+                    let subtitle = map_subscription(&item.level);

                     icon_list_tile(
                         Fa::new("server").class(
diff --git a/src/pages/page_resources.rs b/src/pages/page_resources.rs
index 469bbf3..470a054 100644
--- a/src/pages/page_resources.rs
+++ b/src/pages/page_resources.rs
@@ -23,6 +23,8 @@ use proxmox_yew_comp::layout::render_loaded_data;

 use pve_api_types::{ClusterResource, ClusterResourceType};

+use crate::pages::map_subscription;
+
 #[derive(Clone, PartialEq, Properties)]
 pub struct PageResources {}

@@ -119,11 +121,7 @@ impl PvePageResources {
             Fa::new("server")
                 .class((item.status.as_deref() == Some("online")).then_some("pwt-color-primary")),
             nodename.clone(),
-            match item.level.as_deref() {
-                Some("") | None => "no subscription",
-                Some(level) => level,
-            }
-            .to_string(),
+            map_subscription(&item.level),
             item.status.clone(),
         )
         .interactive(true)
--
2.47.3





      parent reply	other threads:[~2026-05-08 15:57 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-08 15:57 [PATCH yew-comp/yew-mobile-gui v2 00/21] firewall tabs and clean up for pve-yew-mobile-gui Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-comp v2 01/21] firewall rules panel: correct the url for the pve cluster firewall rules Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 02/21] cargo.toml: globally ignore certain clippy lints Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 03/21] main: avoid unnecessary clones Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 04/21] tree-wide: collapse if statements Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 05/21] tree-wide: implement the `From` trait instead of the `Into` trait Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 06/21] tree-wide: implement `Default` for types with an `new()` constructor Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 07/21] tree-wide: remove unnecessary lazy evaluations Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 08/21] tree-wide: remove needless borrows Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 09/21] configuration page: remove redundant static lifetimes Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 10/21] resources/configuration page: remove useless `.into()` calls Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 11/21] tree-wide: fix several clippy lints Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 12/21] dashboard: use proper plural translation string instead of "CPU(s)" Shannon Sterz
2026-05-08 16:11   ` Shan Shaji
2026-05-08 16:13   ` Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 13/21] configuration: clarify that "Firewall" shows the cluster's firewall Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 14/21] cluster/qemu firewall: use rules panel and comment out unused tabs Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 15/21] qemu status page: align icons better with tabs Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 16/21] lxc page: align layout for lxc guest with qemu guests Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 17/21] lxc: add support for a rudimentary firewall tab for lxc guests Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 18/21] node status: align layout for node status with guest pages Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 19/21] node: add a rudimentary firewall tab for cluster nodes Shannon Sterz
2026-05-08 15:57 ` [PATCH yew-mobile-gui v2 20/21] api types: remove unused file Shannon Sterz
2026-05-08 15:57 ` Shannon Sterz [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260508155722.464564-22-s.sterz@proxmox.com \
    --to=s.sterz@proxmox.com \
    --cc=yew-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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