v2.0.2 — English tag aliases, English-only website, undo-body flaky fix
- tags: accept #birthday and #appointment as English synonyms for
#geburtstag and #termin. Normalised to the German canonical form at
extractTags() write-time so every downstream check (parseTags /
calendar logic / board filters) keeps working without per-call-site
aliasing. Editor body-regex extended so the "new appointment"
heuristic and auto-sync trigger on either variant.
- website: replace #termin/#geburtstag with #appointment/#birthday in
tag chips, calendar feature list, and calendar legend.
- tests: fix flaky "Undo: Editor Save → Ctrl+Z reverts body change"
that raced doSave(). The test polled the server for the patched body
and fired Ctrl+Z as soon as it landed, but the undo shortcut is
guarded by !guards.isOpen('modal'), and closeModal() only runs after
the post-patch _reloadAll — on fast servers the key was swallowed.
Poll now also waits for the modal `.open` class to drop.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
89d84d3538
commit
48b5907f4c
6 files changed
+25
-12
No files matched your search
+8
-1
@@ -273,7 +273,14 @@ if (str_starts_with($route, '/api/')) {
|
||||
function validInt($v, $default = 0) { return is_numeric($v) ? (int)$v : $default; }
|
||||
function extractTags($body) {
|
||||
preg_match_all('/(?<=\s|^)#([a-zA-Z0-9_\/-][a-zA-Z0-9_\/-]*[a-zA-Z0-9_-]|[a-zA-Z0-9_-]+)/m', $body ?? '', $matches);
|
||||
return implode(',', array_unique(array_map('strtolower', $matches[1] ?? [])));
|
||||
// English ↔ German tag aliases: the calendar + journal logic is
|
||||
// hardcoded against 'geburtstag' / 'termin', so accept the English
|
||||
// synonyms and normalise to the canonical German form at write
|
||||
// time. Keeps every downstream check (card.tags includes 'geburtstag')
|
||||
// working without touching dozens of JS call sites.
|
||||
$aliases = ['birthday' => 'geburtstag', 'appointment' => 'termin'];
|
||||
$tags = array_map(fn($t) => $aliases[$t] ?? $t, array_map('strtolower', $matches[1] ?? []));
|
||||
return implode(',', array_unique($tags));
|
||||
}
|
||||
|
||||
// Plugin route handlers (registered by plugin backend.php files).
|
||||
|
||||
Reference in new issue
Block a user