* [pdm-devel] [PATCH datacenter-manager] ui: main menu: use initial remote list value from context
@ 2025-09-10 6:58 Dominik Csapak
2025-09-10 7:24 ` [pdm-devel] applied: " Wolfgang Bumiller
0 siblings, 1 reply; 2+ messages in thread
From: Dominik Csapak @ 2025-09-10 6:58 UTC (permalink / raw)
To: pdm-devel
if the main menu was created after the first update of the remote list,
we don't see the changes there as long as the remote list stays the
same.
So instead of discarding the initial value, use it to update the list
here once in create.
Reported-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
ui/src/main_menu.rs | 45 +++++++++++++++++++++++++--------------------
1 file changed, 25 insertions(+), 20 deletions(-)
diff --git a/ui/src/main_menu.rs b/ui/src/main_menu.rs
index 7eac775..d9e8f7c 100644
--- a/ui/src/main_menu.rs
+++ b/ui/src/main_menu.rs
@@ -109,23 +109,43 @@ fn register_submenu(
);
}
-impl PdmMainMenu {}
+impl PdmMainMenu {
+ fn update_remote_list(&mut self, remote_list: RemoteList) -> bool {
+ let remote_list_cache: Vec<RemoteListCacheEntry> = remote_list
+ .into_iter()
+ .map(|item| RemoteListCacheEntry {
+ id: item.id.clone(),
+ ty: item.ty,
+ })
+ .collect();
+
+ if *self.remote_list_cache != remote_list_cache {
+ self.remote_list_cache.update(remote_list_cache);
+ true
+ } else {
+ false
+ }
+ }
+}
impl Component for PdmMainMenu {
type Message = Msg;
type Properties = MainMenu;
fn create(ctx: &Context<Self>) -> Self {
- let (_remote_list, _remote_list_observer) = ctx
+ let (remote_list, _remote_list_observer) = ctx
.link()
.context(ctx.link().callback(Msg::RemoteListChanged))
.unwrap_throw();
- Self {
+ let mut this = Self {
active: Key::from("dashboard"),
menu_selection: Selection::new(),
remote_list_cache: PersistentState::new("PdmRemoteListCache"),
_remote_list_observer,
- }
+ };
+
+ this.update_remote_list(remote_list);
+ this
}
fn update(&mut self, _ctx: &Context<Self>, msg: Self::Message) -> bool {
@@ -134,22 +154,7 @@ impl Component for PdmMainMenu {
self.active = key;
true
}
- Msg::RemoteListChanged(remote_list) => {
- let remote_list_cache: Vec<RemoteListCacheEntry> = remote_list
- .into_iter()
- .map(|item| RemoteListCacheEntry {
- id: item.id.clone(),
- ty: item.ty,
- })
- .collect();
-
- if *self.remote_list_cache != remote_list_cache {
- self.remote_list_cache.update(remote_list_cache);
- true
- } else {
- false
- }
- }
+ Msg::RemoteListChanged(remote_list) => self.update_remote_list(remote_list),
}
}
--
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] 2+ messages in thread
* [pdm-devel] applied: [PATCH datacenter-manager] ui: main menu: use initial remote list value from context
2025-09-10 6:58 [pdm-devel] [PATCH datacenter-manager] ui: main menu: use initial remote list value from context Dominik Csapak
@ 2025-09-10 7:24 ` Wolfgang Bumiller
0 siblings, 0 replies; 2+ messages in thread
From: Wolfgang Bumiller @ 2025-09-10 7:24 UTC (permalink / raw)
To: Dominik Csapak; +Cc: pdm-devel
applied, thanks
Fixes the menu for me - I do wonder why I'm the only one where this
happens, though.
Am I the only one using the non-debian firefox tarball with reasonable™
settings (That is, the "delete data on quit" with an exception-list
in which the PDM is not 😜 - and ublock & ff containers...)
On Wed, Sep 10, 2025 at 08:58:29AM +0200, Dominik Csapak wrote:
> if the main menu was created after the first update of the remote list,
> we don't see the changes there as long as the remote list stays the
> same.
>
> So instead of discarding the initial value, use it to update the list
> here once in create.
>
> Reported-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> ui/src/main_menu.rs | 45 +++++++++++++++++++++++++--------------------
> 1 file changed, 25 insertions(+), 20 deletions(-)
>
> diff --git a/ui/src/main_menu.rs b/ui/src/main_menu.rs
> index 7eac775..d9e8f7c 100644
> --- a/ui/src/main_menu.rs
> +++ b/ui/src/main_menu.rs
> @@ -109,23 +109,43 @@ fn register_submenu(
> );
> }
>
> -impl PdmMainMenu {}
> +impl PdmMainMenu {
> + fn update_remote_list(&mut self, remote_list: RemoteList) -> bool {
> + let remote_list_cache: Vec<RemoteListCacheEntry> = remote_list
> + .into_iter()
> + .map(|item| RemoteListCacheEntry {
> + id: item.id.clone(),
> + ty: item.ty,
> + })
> + .collect();
> +
> + if *self.remote_list_cache != remote_list_cache {
> + self.remote_list_cache.update(remote_list_cache);
> + true
> + } else {
> + false
> + }
> + }
> +}
>
> impl Component for PdmMainMenu {
> type Message = Msg;
> type Properties = MainMenu;
>
> fn create(ctx: &Context<Self>) -> Self {
> - let (_remote_list, _remote_list_observer) = ctx
> + let (remote_list, _remote_list_observer) = ctx
> .link()
> .context(ctx.link().callback(Msg::RemoteListChanged))
> .unwrap_throw();
> - Self {
> + let mut this = Self {
> active: Key::from("dashboard"),
> menu_selection: Selection::new(),
> remote_list_cache: PersistentState::new("PdmRemoteListCache"),
> _remote_list_observer,
> - }
> + };
> +
> + this.update_remote_list(remote_list);
> + this
> }
>
> fn update(&mut self, _ctx: &Context<Self>, msg: Self::Message) -> bool {
> @@ -134,22 +154,7 @@ impl Component for PdmMainMenu {
> self.active = key;
> true
> }
> - Msg::RemoteListChanged(remote_list) => {
> - let remote_list_cache: Vec<RemoteListCacheEntry> = remote_list
> - .into_iter()
> - .map(|item| RemoteListCacheEntry {
> - id: item.id.clone(),
> - ty: item.ty,
> - })
> - .collect();
> -
> - if *self.remote_list_cache != remote_list_cache {
> - self.remote_list_cache.update(remote_list_cache);
> - true
> - } else {
> - false
> - }
> - }
> + Msg::RemoteListChanged(remote_list) => self.update_remote_list(remote_list),
> }
> }
>
> --
> 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] 2+ messages in thread
end of thread, other threads:[~2025-09-10 7:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-10 6:58 [pdm-devel] [PATCH datacenter-manager] ui: main menu: use initial remote list value from context Dominik Csapak
2025-09-10 7:24 ` [pdm-devel] applied: " Wolfgang Bumiller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.