shopping: #shopping tag, help section, tests, client-side proxy
Three follow-ups:
- Accept #shopping as an alias for #einkauf. Either tag now makes
a card show up in the picker; the help blurb in the dialog says
so explicitly.
- Add a proper help-overlay section covering the trigger tags,
how to pick an active list, the phone URL, sync cadence, and
why phone is check-only.
- Add a client-side proxy in public/index.php for /api/shopping
and /api/shopping/check — shopping.js was calling api('api/...')
which went to hyprcrd, but only the relay had handlers. Without
this forwarder, push/pull just 404'd. Proxy mirrors the pattern
used by /api/relay/push.
- New shopping.test.js: asserts the proxy returns a JSON shape
with `ok` (works whether or not a relay is configured), the
hamburger menu toggles as expected, and the picker lists both
#einkauf + #shopping cards while excluding untagged ones.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
670f125627
commit
e086db0c2c
6 files changed
+143
-6
No files matched your search
@@ -19,7 +19,8 @@ const LAST_PUSHED_KEY = 'hyprcrd-shopping-last-pushed-ts';
|
||||
const LAST_SERVER_KEY = 'hyprcrd-shopping-last-server-ts';
|
||||
|
||||
function hasEinkaufTag(card) {
|
||||
return (card.tags || '').split(',').map(s => s.trim()).includes('einkauf');
|
||||
const tags = (card.tags || '').split(',').map(s => s.trim());
|
||||
return tags.includes('einkauf') || tags.includes('shopping');
|
||||
}
|
||||
|
||||
function getActiveId() {
|
||||
@@ -59,9 +60,10 @@ function openDialog() {
|
||||
<button class="shopping-picker-close text-t-muted hover:text-t-danger"><i class="ph ph-x text-sm"></i></button>
|
||||
</div>
|
||||
<div class="px-5 py-3 text-[11px] text-t-muted leading-relaxed">
|
||||
Karten mit dem Tag <span class="text-t-accent">#einkauf</span> können als aktive Liste
|
||||
fürs Telefon gewählt werden. Nur eine ist aktiv; ihr Body wird bei jedem Sync zum
|
||||
Relay geschickt und unter <span class="text-t-accent">/shopping</span> angezeigt.
|
||||
Karten mit Tag <span class="text-t-accent">#einkauf</span> oder
|
||||
<span class="text-t-accent">#shopping</span> können als aktive Liste fürs Telefon
|
||||
gewählt werden. Nur eine ist aktiv; ihr Body wird bei jedem Sync zum Relay geschickt
|
||||
und unter <span class="text-t-accent">/shopping</span> angezeigt.
|
||||
</div>
|
||||
<div class="flex-1 overflow-y-auto px-2 py-2" id="shopping-picker-list"></div>
|
||||
<div class="flex items-center gap-2 px-5 py-3 border-t border-t-border">
|
||||
|
||||
Reference in new issue
Block a user