Terminplaner: Portal-Ansicht – Fokus und aria-busy
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3ad056f261
commit
4be886a4de
3 files changed
+85
-21
No files matched your search
+23
-16
@@ -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()
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user