feat(oxibadge): add settings screen for shifts, rounding and language
Check, format and test / build (push) Successful in 10m22s
Check, format and test / build (push) Successful in 10m22s
Add a settings screen (gear button on the month-confirmation screen) to configure the expected shift times, the rounding step, the interface language, and the time clock address — replacing the old onboarding-only connection flow. Settings persist to the same preferences.toml as the reader address, under a single load_settings/ save_settings command pair. The review screen's "fix shifts" action now redistributes stacked punches by nearest configured shift time instead of blind position, and a stacked cell manually cleared down to one entry no longer leaves a dangling empty input. Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -115,5 +115,47 @@
|
||||
"back_to_review": "Back to review",
|
||||
"round_and_export": "Round and export",
|
||||
"export_anyway": "Export anyway"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
"device_title": "Time clock",
|
||||
"device_desc": "The time clock Oxibadge downloads punches from.",
|
||||
"device_label": "Address",
|
||||
"status_testing": "Checking…",
|
||||
"status_ok": "Reachable",
|
||||
"status_idle": "Not verified",
|
||||
"edit_address": "Edit address",
|
||||
"test_connection": "Test connection",
|
||||
"ip_label": "IP address",
|
||||
"port_label": "Port",
|
||||
"ip_invalid": "Invalid format, e.g. 192.168.1.100",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"shifts_title": "Expected shifts",
|
||||
"shifts_desc": "The standard work schedule. The break between the two shifts is the one used by \"Add lunch break\" in the review.",
|
||||
"shift_1": "1st shift",
|
||||
"shift_2": "2nd shift",
|
||||
"shift_in": "In",
|
||||
"shift_out": "Out",
|
||||
"shift_error_format": "Enter all times in HH:MM format.",
|
||||
"shift_error_out1": "The 1st shift's clock-out must be after its clock-in.",
|
||||
"shift_error_in2": "The 2nd shift must start after the 1st one ends.",
|
||||
"shift_error_out2": "The 2nd shift's clock-out must be after its clock-in.",
|
||||
"hours_per_day_label": "Expected hours",
|
||||
"per_day": "per day",
|
||||
"break_label": "Break",
|
||||
"round_title": "Time rounding",
|
||||
"round_desc": "Times are rounded to the nearest multiple.",
|
||||
"round_example": "E.g. {from} → {to}.",
|
||||
"round_label": "Minutes",
|
||||
"minutes_short": "min",
|
||||
"round_range": "From 1 to 60 minutes",
|
||||
"language_title": "Language",
|
||||
"language_desc": "Oxibadge's interface language.",
|
||||
"save_idle": "Changes are saved automatically",
|
||||
"save_saving": "Saving…",
|
||||
"save_saved": "Changes saved",
|
||||
"save_invalid": "Not saved: fix the error",
|
||||
"save_failed": "Save failed"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user