public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
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

      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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal