From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 1FF891FF13F for ; Thu, 07 May 2026 10:15:48 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4230BE21D; Thu, 7 May 2026 10:15:47 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 07 May 2026 10:15:13 +0200 Message-Id: Subject: Re: [PATCH 5/8] ui: add subscription registry with key pool and node status From: "Lukas Wagner" To: "Thomas Lamprecht" , X-Mailer: aerc 0.21.0-0-g5549850facc2-dirty References: <20260507072436.2649563-1-t.lamprecht@proxmox.com> <20260507072436.2649563-6-t.lamprecht@proxmox.com> In-Reply-To: <20260507072436.2649563-6-t.lamprecht@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1778141605431 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.054 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 7JL5TPIQN3ZFNNUAB5N4IAHN3ZIISNY7 X-Message-ID-Hash: 7JL5TPIQN3ZFNNUAB5N4IAHN3ZIISNY7 X-MailFrom: l.wagner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Thu May 7, 2026 at 9:17 AM CEST, Thomas Lamprecht wrote: > + > + fn toolbar(&self, ctx: &LoadableComponentContext) -> Option { > + let link =3D ctx.link(); > + Some( > + Toolbar::new() > + .border_bottom(true) > + .with_child( > + Button::new(tr!("Auto-Assign")) > + .icon_class("fa fa-magic") > + .on_activate(link.callback(|_| Msg::AutoAssignPr= eview)), > + ) > + .with_spacer() > + .with_child( > + Button::new(tr!("Apply Pending")) > + .icon_class("fa fa-play") > + .on_activate(link.callback(|_| Msg::ApplyPending= )), > + ) > + .with_child( > + Button::new(tr!("Clear Pending")) > + .icon_class("fa fa-eraser") > + .on_activate( > + link.change_view_callback(|_| Some(ViewState= ::ConfirmClearPending)), > + ), > + ) > + .with_flex_spacer() > + .with_child( > + Button::refresh(ctx.loading()).on_activate({ note: this must be self.loading(), not ctx.loading(), otherwise this does not compile > + let link =3D link.clone(); > + move |_| link.send_reload() > + }), > + ) > + .into(), > + ) > + } > +