feat: confirm dialog before power actions (v0.10.0)
Reboot/shutdown buttons triggered immediately on click. Now show an inline confirmation prompt, mirroring moonlock's show_power_confirm. - i18n: reboot_confirm, shutdown_confirm, confirm_yes, confirm_no (DE/EN) - greeter: confirm_area in login_box, handlers route through show_power_confirm/dismiss_power_confirm; execute_power_action drops the now-redundant button-disable guard - style: .confirm-label/-yes/-no classes
This commit is contained in:
+18
@@ -16,6 +16,12 @@ pub struct Strings {
|
||||
pub reboot_tooltip: &'static str,
|
||||
pub shutdown_tooltip: &'static str,
|
||||
|
||||
// Power confirmation prompts
|
||||
pub reboot_confirm: &'static str,
|
||||
pub shutdown_confirm: &'static str,
|
||||
pub confirm_yes: &'static str,
|
||||
pub confirm_no: &'static str,
|
||||
|
||||
// Error messages
|
||||
pub no_session_selected: &'static str,
|
||||
pub greetd_sock_not_set: &'static str,
|
||||
@@ -39,6 +45,10 @@ const STRINGS_DE: Strings = Strings {
|
||||
password_placeholder: "Passwort",
|
||||
reboot_tooltip: "Neustart",
|
||||
shutdown_tooltip: "Herunterfahren",
|
||||
reboot_confirm: "Wirklich neu starten?",
|
||||
shutdown_confirm: "Wirklich herunterfahren?",
|
||||
confirm_yes: "Ja",
|
||||
confirm_no: "Abbrechen",
|
||||
no_session_selected: "Keine Session ausgewählt",
|
||||
greetd_sock_not_set: "GREETD_SOCK nicht gesetzt",
|
||||
greetd_sock_not_absolute: "GREETD_SOCK ist kein absoluter Pfad",
|
||||
@@ -59,6 +69,10 @@ const STRINGS_EN: Strings = Strings {
|
||||
password_placeholder: "Password",
|
||||
reboot_tooltip: "Reboot",
|
||||
shutdown_tooltip: "Shut down",
|
||||
reboot_confirm: "Really reboot?",
|
||||
shutdown_confirm: "Really shut down?",
|
||||
confirm_yes: "Yes",
|
||||
confirm_no: "Cancel",
|
||||
no_session_selected: "No session selected",
|
||||
greetd_sock_not_set: "GREETD_SOCK not set",
|
||||
greetd_sock_not_absolute: "GREETD_SOCK is not an absolute path",
|
||||
@@ -276,6 +290,10 @@ mod tests {
|
||||
assert!(!s.password_placeholder.is_empty(), "{locale}: password_placeholder");
|
||||
assert!(!s.reboot_tooltip.is_empty(), "{locale}: reboot_tooltip");
|
||||
assert!(!s.shutdown_tooltip.is_empty(), "{locale}: shutdown_tooltip");
|
||||
assert!(!s.reboot_confirm.is_empty(), "{locale}: reboot_confirm");
|
||||
assert!(!s.shutdown_confirm.is_empty(), "{locale}: shutdown_confirm");
|
||||
assert!(!s.confirm_yes.is_empty(), "{locale}: confirm_yes");
|
||||
assert!(!s.confirm_no.is_empty(), "{locale}: confirm_no");
|
||||
assert!(!s.no_session_selected.is_empty(), "{locale}: no_session_selected");
|
||||
assert!(!s.greetd_sock_not_set.is_empty(), "{locale}: greetd_sock_not_set");
|
||||
assert!(!s.auth_failed.is_empty(), "{locale}: auth_failed");
|
||||
|
||||
Reference in New Issue
Block a user