Various UX improvements and bug fixes

- Fix mustChangePassword session flag for users with pw=NULL
- Add PrF (Private Führung) as new ArtFuehrung type
- Split datetime-local into separate date + TimePicker5 (5-min steps, auto-repeat)
- Responsive Beginn/Ende layout: stacked on mobile, inline on desktop
- Sort BEOs alphabetically by Kürzel in selector
- Title shows active kuppel; hide user display in header
- Selected BEOs show Kürzel only (name stays in dropdown)
- Session timeout reduced to 1 hour
- Add CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-29 18:02:47 +02:00
parent 2469715756
commit a0fb6d8089
10 changed files with 189 additions and 44 deletions

View File

@@ -20,7 +20,9 @@ export default function BeoSelector({ selected, onChange }: Props) {
}, []);
const selectedIds = new Set(selected.map((b) => b.ID));
const available = all.filter((b) => !selectedIds.has(b.ID));
const available = all
.filter((b) => !selectedIds.has(b.ID))
.sort((a, b) => a.Kuerzel.localeCompare(b.Kuerzel));
function add(value: string) {
const beo = all.find((b) => b.ID === parseInt(value));
@@ -39,7 +41,7 @@ export default function BeoSelector({ selected, onChange }: Props) {
key={b.ID}
className="inline-flex items-center gap-2 bg-blue-100 text-blue-800 text-base px-3 py-1.5 rounded-full"
>
{b.Kuerzel} {b.Name}
{b.Kuerzel}
<button
type="button"
onClick={() => remove(b.ID)}