From: Lukas Wagner <l.wagner@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [PATCH datacenter-manager] ui: autoinstaller: convert UI labels to title case
Date: Tue, 19 May 2026 17:08:20 +0200 [thread overview]
Message-ID: <20260519150820.398668-1-l.wagner@proxmox.com> (raw)
Some UI elements already used Title Case, while others just started with
a capital letter and then used lower case for the remaining words. In
general, we prefer Title Case for UI element, which is why the other
strings were converted.
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
.../auto_installer/installations_panel.rs | 10 ++---
ui/src/remotes/auto_installer/mod.rs | 2 +-
.../prepared_answer_add_wizard.rs | 6 +--
.../prepared_answer_edit_window.rs | 6 +--
.../auto_installer/prepared_answer_form.rs | 40 +++++++++----------
.../auto_installer/prepared_answers_panel.rs | 2 +-
ui/src/remotes/auto_installer/token_panel.rs | 2 +-
7 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/ui/src/remotes/auto_installer/installations_panel.rs b/ui/src/remotes/auto_installer/installations_panel.rs
index 7c6975a7..5df9a187 100644
--- a/ui/src/remotes/auto_installer/installations_panel.rs
+++ b/ui/src/remotes/auto_installer/installations_panel.rs
@@ -145,12 +145,12 @@ impl LoadableComponent for InstallationsPanelComponent {
.class(Overflow::Hidden)
.class("pwt-border-bottom")
.with_child(
- Button::new(tr!("System information"))
+ Button::new(tr!("System Information"))
.disabled(self.selection.is_empty())
.onclick(link.change_view_callback(|_| Some(ViewState::ShowRawSystemInfo))),
)
.with_child(
- Button::new(tr!("Post-installation webhook data"))
+ Button::new(tr!("Post-Installation Webhook Data"))
.disabled(self.selection.is_empty() || !selection_has_post_hook_data)
.onclick(link.change_view_callback(|_| Some(ViewState::ShowRawPostHookData))),
)
@@ -197,7 +197,7 @@ impl LoadableComponent for InstallationsPanelComponent {
.clone();
Some(match view_state {
- Self::ViewState::ShowRawSystemInfo => DataViewWindow::new(tr!("System information"))
+ Self::ViewState::ShowRawSystemInfo => DataViewWindow::new(tr!("System Information"))
.on_done(on_done)
.loader({
move || {
@@ -213,7 +213,7 @@ impl LoadableComponent for InstallationsPanelComponent {
.resizable(true)
.into(),
Self::ViewState::ShowRawPostHookData => {
- DataViewWindow::new(tr!("Post-installation webhook data"))
+ DataViewWindow::new(tr!("Post-Installation Webhook Data"))
.on_done(on_done)
.loader({
move || {
@@ -291,7 +291,7 @@ fn columns() -> Vec<DataTableHeader<Installation>> {
})
.sorter(|a: &Installation, b: &Installation| a.status.cmp(&b.status))
.into(),
- DataTableColumn::new(tr!("Matched answer"))
+ DataTableColumn::new(tr!("Matched Answer"))
.flex(1)
.render(|item: &Installation| match &item.answer_id {
Some(s) => s.into(),
diff --git a/ui/src/remotes/auto_installer/mod.rs b/ui/src/remotes/auto_installer/mod.rs
index 447c04f2..08030e27 100644
--- a/ui/src/remotes/auto_installer/mod.rs
+++ b/ui/src/remotes/auto_installer/mod.rs
@@ -56,7 +56,7 @@ impl Component for AutoInstallerPanelComponent {
.gap(2)
.class(AlignItems::Baseline)
.with_child(Fa::new("key"))
- .with_child(tr!("Authentication tokens"))
+ .with_child(tr!("Authentication Tokens"))
.into();
Container::new()
diff --git a/ui/src/remotes/auto_installer/prepared_answer_add_wizard.rs b/ui/src/remotes/auto_installer/prepared_answer_add_wizard.rs
index deb069a2..f1b443e6 100644
--- a/ui/src/remotes/auto_installer/prepared_answer_add_wizard.rs
+++ b/ui/src/remotes/auto_installer/prepared_answer_add_wizard.rs
@@ -169,11 +169,11 @@ impl LoadableComponent for AddAnswerWizardComponent {
}
})
.on_close(props.on_close.clone())
- .with_page(TabBarItem::new().label(tr!("Global options")), {
+ .with_page(TabBarItem::new().label(tr!("Global Options")), {
let config = props.config.clone();
move |_: &WizardPageRenderInfo| render_global_options_form(&config, true)
})
- .with_page(TabBarItem::new().label(tr!("Network options")), {
+ .with_page(TabBarItem::new().label(tr!("Network Options")), {
let config = props.config.clone();
move |p: &WizardPageRenderInfo| render_network_options_form(&p.form_ctx, &config)
})
@@ -181,7 +181,7 @@ impl LoadableComponent for AddAnswerWizardComponent {
let config = props.config.clone();
move |p: &WizardPageRenderInfo| render_disk_setup_form(&p.form_ctx, &config)
})
- .with_page(TabBarItem::new().label(tr!("Target filter")), {
+ .with_page(TabBarItem::new().label(tr!("Target Filter")), {
let config = props.config.clone();
move |p: &WizardPageRenderInfo| render_target_filter_form(&p.form_ctx, &config)
})
diff --git a/ui/src/remotes/auto_installer/prepared_answer_edit_window.rs b/ui/src/remotes/auto_installer/prepared_answer_edit_window.rs
index 4bdbab1b..dce6f57b 100644
--- a/ui/src/remotes/auto_installer/prepared_answer_edit_window.rs
+++ b/ui/src/remotes/auto_installer/prepared_answer_edit_window.rs
@@ -190,11 +190,11 @@ fn render_tabpanel(
.class(FlexFit)
.force_render_all(true)
.with_item(
- TabBarItem::new().label(tr!("Global options")),
+ TabBarItem::new().label(tr!("Global Options")),
render_global_options_form(&props.config, false),
)
.with_item(
- TabBarItem::new().label(tr!("Network options")),
+ TabBarItem::new().label(tr!("Network Options")),
render_network_options_form(form_ctx, &props.config),
)
.with_item(
@@ -202,7 +202,7 @@ fn render_tabpanel(
render_disk_setup_form(form_ctx, &props.config),
)
.with_item(
- TabBarItem::new().label(tr!("Target filter")),
+ TabBarItem::new().label(tr!("Target Filter")),
render_target_filter_form(form_ctx, &props.config),
)
.with_item(
diff --git a/ui/src/remotes/auto_installer/prepared_answer_form.rs b/ui/src/remotes/auto_installer/prepared_answer_form.rs
index d6120d09..75f4613e 100644
--- a/ui/src/remotes/auto_installer/prepared_answer_form.rs
+++ b/ui/src/remotes/auto_installer/prepared_answer_form.rs
@@ -182,7 +182,7 @@ pub fn render_global_options_form(
.required(true),
)
.with_field(
- tr!("Root password"),
+ tr!("Root Password"),
Field::new()
.name("root-password")
.input_type(InputType::Password)
@@ -210,7 +210,7 @@ pub fn render_global_options_form(
.required(true),
)
.with_field(
- tr!("Administrator email address"),
+ tr!("Administrator Email Address"),
Field::new()
.name("mailto")
.placeholder(EMAIL_DEFAULT_PLACEHOLDER.to_owned())
@@ -227,7 +227,7 @@ pub fn render_global_options_form(
.required(true),
)
.with_field(
- tr!("Root SSH public keys"),
+ tr!("Root SSH Public Keys"),
TextArea::new()
.name("root-ssh-keys")
.class("pwt-w-100")
@@ -237,11 +237,11 @@ pub fn render_global_options_form(
.value(config.root_ssh_keys.join("\n")),
)
.with_field(
- tr!("Reboot on error"),
+ tr!("Reboot on Error"),
Checkbox::new().name("reboot-on-error"),
)
.with_field(
- tr!("Post-Installation action"),
+ tr!("Post-Installation Action"),
Combobox::new()
.name("reboot-mode")
.items(Rc::new(
@@ -287,7 +287,7 @@ pub fn render_network_options_form(
Checkbox::new().name("use-dhcp-network").default(true),
)
.with_field(
- tr!("IP address (CIDR)"),
+ tr!("IP Address (CIDR)"),
Field::new()
.name("cidr")
.placeholder(tr!("E.g. 192.168.0.100/24"))
@@ -296,7 +296,7 @@ pub fn render_network_options_form(
.required(!use_dhcp_network),
)
.with_field(
- tr!("Gateway address"),
+ tr!("Gateway Address"),
Field::new()
.name("gateway")
.placeholder(tr!("E.g. 192.168.0.1"))
@@ -305,7 +305,7 @@ pub fn render_network_options_form(
.required(!use_dhcp_network),
)
.with_field(
- tr!("DNS server address"),
+ tr!("DNS Server Address"),
Field::new()
.name("dns")
.placeholder(tr!("E.g. 192.168.0.254"))
@@ -318,7 +318,7 @@ pub fn render_network_options_form(
Checkbox::new().name("use-dhcp-fqdn").default(false),
)
.with_right_field(
- tr!("Fully-qualified domain name (FQDN)"),
+ tr!("Fully-Qualified Domain Name (FQDN)"),
Field::new()
.name("fqdn")
.placeholder("{{product.product}}{{installation_nr}}.example.com")
@@ -331,14 +331,14 @@ pub fn render_network_options_form(
)
.with_right_field("", DisplayField::new().key("dummy"))
.with_right_field(
- tr!("Pin network interfaces"),
+ tr!("Pin Network Interfaces"),
Checkbox::new()
.name("netif-name-pinning-enabled")
.default(config.netif_name_pinning_enabled),
)
.with_advanced_spacer()
.with_large_advanced_field(
- tr!("Network device filters"),
+ tr!("Network Device Filters"),
KeyValueList::new()
.value(
config
@@ -402,7 +402,7 @@ pub fn render_disk_setup_form(
.show_filter(false),
)
.with_right_field(
- tr!("Disk selection mode"),
+ tr!("Disk Selection Mode"),
Combobox::new()
.name("disk-mode")
.with_item("fixed")
@@ -417,7 +417,7 @@ pub fn render_disk_setup_form(
.value(serde_variant_name(config.disk_mode)),
)
.with_field(
- tr!("Disk names"),
+ tr!("Disk Names"),
Field::new()
.name("disk-list")
.placeholder("sda, sdb")
@@ -428,7 +428,7 @@ pub fn render_disk_setup_form(
)
.with_spacer()
.with_field(
- tr!("Disk udev filter mode"),
+ tr!("Disk udev Filter Mode"),
Combobox::new()
.name("disk-filter-match")
.items(Rc::new(
@@ -447,7 +447,7 @@ pub fn render_disk_setup_form(
.disabled(disk_mode != DiskSelectionMode::Filter),
)
.with_large_field(
- tr!("Disk udev filters"),
+ tr!("Disk udev Filters"),
KeyValueList::new()
.value(
config
@@ -716,7 +716,7 @@ pub fn render_target_filter_form(
panel
.with_field(
- tr!("Default answer"),
+ tr!("Default Answer"),
Checkbox::new()
.name("is-default")
.tip(tr!(
@@ -726,7 +726,7 @@ pub fn render_target_filter_form(
)
.with_spacer()
.with_large_field(
- tr!("Target filters"),
+ tr!("Target Filters"),
KeyValueList::new()
.value(
config
@@ -824,7 +824,7 @@ pub fn render_auth_form(
Container::from_tag("span")
.key("authorized-tokens-title")
.class("pwt-font-title-medium")
- .with_child(tr!("Authorized tokens")),
+ .with_child(tr!("Authorized Tokens")),
)
.with_large_custom_child(
TokenSelector::new(tokens)
@@ -849,7 +849,7 @@ pub fn render_auth_form(
panel
.with_spacer()
.with_large_field(
- tr!("Proxmox Datacenter Manager base URL"),
+ tr!("Proxmox Datacenter Manager Base URL"),
Field::new()
.name("post-hook-base-url")
.tip(tr!(
@@ -859,7 +859,7 @@ pub fn render_auth_form(
.value(config.post_hook_base_url.clone()),
)
.with_large_field(
- tr!("SHA256 certificate fingerprint"),
+ tr!("SHA256 Certificate Fingerprint"),
Field::new()
.name("post-hook-cert-fp")
.tip(tr!("Optional certificate fingerprint"))
diff --git a/ui/src/remotes/auto_installer/prepared_answers_panel.rs b/ui/src/remotes/auto_installer/prepared_answers_panel.rs
index 0fa6970e..0cff7fd6 100644
--- a/ui/src/remotes/auto_installer/prepared_answers_panel.rs
+++ b/ui/src/remotes/auto_installer/prepared_answers_panel.rs
@@ -303,7 +303,7 @@ fn columns() -> Vec<DataTableHeader<PreparedInstallationConfig>> {
}
})
.into(),
- DataTableColumn::new(tr!("Authorized tokens"))
+ DataTableColumn::new(tr!("Authorized Tokens"))
.flex(1)
.render(|item: &PreparedInstallationConfig| item.authorized_tokens.join(", ").into())
.into(),
diff --git a/ui/src/remotes/auto_installer/token_panel.rs b/ui/src/remotes/auto_installer/token_panel.rs
index 972e3b18..06aed7bc 100644
--- a/ui/src/remotes/auto_installer/token_panel.rs
+++ b/ui/src/remotes/auto_installer/token_panel.rs
@@ -270,7 +270,7 @@ fn columns() -> Vec<DataTableHeader<AnswerToken>> {
.sorter(|a: &AnswerToken, b: &AnswerToken| a.id.cmp(&b.id))
.sort_order(true)
.into(),
- DataTableColumn::new(tr!("Created by"))
+ DataTableColumn::new(tr!("Created By"))
.width("150px")
.render(|item: &AnswerToken| html! { &item.created_by })
.sorter(|a: &AnswerToken, b: &AnswerToken| a.created_by.cmp(&b.created_by))
--
2.47.3
next reply other threads:[~2026-05-19 15:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-19 15:08 Lukas Wagner [this message]
2026-05-19 21:33 ` applied: [PATCH datacenter-manager] ui: autoinstaller: convert UI labels to title case Thomas Lamprecht
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=20260519150820.398668-1-l.wagner@proxmox.com \
--to=l.wagner@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 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.