From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: Dominik Csapak <d.csapak@proxmox.com>
Cc: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] applied: [PATCH datacenter-manager] ui: main menu: use initial remote list value from context
Date: Wed, 10 Sep 2025 09:24:29 +0200 [thread overview]
Message-ID: <hp3w6cuh2q3obxrjy6m2kn42l23arfxrtoxjslnxzu65hqrr2i@oeudqcc6wi26> (raw)
In-Reply-To: <20250910065857.386827-1-d.csapak@proxmox.com>
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
prev parent reply other threads:[~2025-09-10 7:24 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-10 6:58 [pdm-devel] " Dominik Csapak
2025-09-10 7:24 ` Wolfgang Bumiller [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=hp3w6cuh2q3obxrjy6m2kn42l23arfxrtoxjslnxzu65hqrr2i@oeudqcc6wi26 \
--to=w.bumiller@proxmox.com \
--cc=d.csapak@proxmox.com \
--cc=pdm-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