Terminplaner: Portal-Ansicht – Fokus und aria-busy

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-03 08:17:44 +00:00
1 parent 3ad056f261
commit 4be886a4de
3 files changed
+85 -21

No files matched your search

+23 -16
View File
@@ -188,22 +188,29 @@ function kalenderLink(t, r) {
allgemeinerFehler(),
zeile)
// exklusiv wie ein Speichern: das Erzeugen aendert die Version, ein gleichzeitiges Speichern bekaeme sonst die alte
box.addEventListener('submit', () => t.sp.exklusiv(async () => {
try {
const antwort = await ctx.api.send('POST', `/ressourcen/${encodeURIComponent(r.id)}/feed`)
if (!ctx.aktuell() || !eingabe.isConnected) return
ctx.daten.version = antwort.version // das Erzeugen zaehlt die Version hoch: das naechste Speichern baut darauf auf
ctx.daten.feeds = { ...ctx.daten.feeds, [r.id]: antwort.url }
eingabe.value = antwort.url
frageBox.replaceChildren()
status.textContent = 'Der neue Link ist da. Der alte funktioniert nicht mehr.'
ctx.meldung(`Neuer Kalender-Link für „${r.name}“ erzeugt.`)
ausloeser.focus()
} catch (err) {
if (!ctx.aktuell() || !eingabe.isConnected) return
zeigeFehler(box, err)
}
}))
box.addEventListener('submit', async () => {
const erzeugt = await t.sp.exklusiv(async () => {
try {
const antwort = await ctx.api.send('POST', `/ressourcen/${encodeURIComponent(r.id)}/feed`)
if (!ctx.aktuell()) return false
ctx.daten.version = antwort.version // das Erzeugen zaehlt die Version hoch: das naechste Speichern baut darauf auf
ctx.daten.feeds = { ...ctx.daten.feeds, [r.id]: antwort.url }
if (!eingabe.isConnected) return true // der Reiter wurde inzwischen neu gezeichnet und zeigt schon den neuen Link
eingabe.value = antwort.url
frageBox.replaceChildren()
status.textContent = 'Der neue Link ist da. Der alte funktioniert nicht mehr.'
ctx.meldung(`Neuer Kalender-Link für „${r.name}“ erzeugt.`)
return true
} catch (err) {
if (ctx.aktuell() && eingabe.isConnected) zeigeFehler(box, err)
return false
}
})
// Fokus erst nach dem Freigeben der Knoepfe (im gesperrten Zustand nimmt ein Knopf keinen Fokus an); ersetzt, den Knopf derselben Person suchen
if (!erzeugt || !t.sp.nochHier()) return
const knopf = ausloeser.isConnected ? ausloeser : t.wurzel.querySelector(`li[data-id="${r.id}"] [data-aktion="link-neu"]`)
knopf?.focus()
})
frageBox.replaceChildren(box)
box.focus()
}