* [PATCH datacenter-manager] ui: autoinstaller: convert UI labels to title case
@ 2026-05-19 15:08 Lukas Wagner
2026-05-19 21:33 ` applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Lukas Wagner @ 2026-05-19 15:08 UTC (permalink / raw)
To: pdm-devel
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* applied: [PATCH datacenter-manager] ui: autoinstaller: convert UI labels to title case
2026-05-19 15:08 [PATCH datacenter-manager] ui: autoinstaller: convert UI labels to title case Lukas Wagner
@ 2026-05-19 21:33 ` Thomas Lamprecht
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2026-05-19 21:33 UTC (permalink / raw)
To: pdm-devel, Lukas Wagner
On Tue, 19 May 2026 17:08:20 +0200, Lukas Wagner wrote:
> 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.
Applied, thanks!
[1/1] ui: autoinstaller: convert UI labels to title case
commit: 83350a4d78cdca3d5738b66bbb4fe4ac0bc9a450
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-19 21:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-19 15:08 [PATCH datacenter-manager] ui: autoinstaller: convert UI labels to title case Lukas Wagner
2026-05-19 21:33 ` applied: " Thomas Lamprecht
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.