Feature: Gasthund-Zugang für Sitter
- sitting_subscriptions Tabelle (dog_id, owner_id, sitter_id, valid_until) - POST/DELETE/GET /api/sitting-access — Zugang gewähren/widerrufen/auflisten - GET /api/dogs gibt Gasthunde zurück (is_guest=True, sitting_until, owner_name) - Diary POST erlaubt Sitter-Schreibzugang; PATCH/DELETE nur für Besitzer - Dog-Switcher: GAST-Badge bei fremden Hunden - Dog-Profil: Sitter-Zugang-Sektion (nur für Besitzer), Freund auswählen + Datum - Diary Detail-View: Bearbeiten-Button für Gasthunde ausgeblendet
This commit is contained in:
parent
eef787cc72
commit
289158b2cd
10 changed files with 327 additions and 18 deletions
|
|
@ -3,7 +3,7 @@
|
|||
Router, State-Management, Navigation, Initialisierung.
|
||||
============================================================ */
|
||||
|
||||
const APP_VER = '213'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VER = '214'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
|
||||
const App = (() => {
|
||||
|
||||
|
|
@ -611,8 +611,13 @@ const App = (() => {
|
|||
|
||||
const titleClass = ctxId === 'sb' ? 'sidebar-logo-text' : 'header-title';
|
||||
el.innerHTML = `
|
||||
<div class="dog-sw-active" id="dog-sw-active-${ctxId}" title="${UI.escape(dog.name)} bearbeiten">
|
||||
<div class="dog-sw-active" id="dog-sw-active-${ctxId}" title="${UI.escape(dog.name)} bearbeiten"
|
||||
style="position:relative">
|
||||
${avHtml(dog)}
|
||||
${dog.is_guest ? `<span style="position:absolute;bottom:-2px;right:-2px;
|
||||
background:var(--c-primary);color:#fff;border-radius:var(--radius-full);
|
||||
font-size:8px;font-weight:700;padding:1px 4px;line-height:1.4;
|
||||
border:1px solid var(--c-surface)">GAST</span>` : ''}
|
||||
</div>
|
||||
<span class="${titleClass} dog-sw-title" style="cursor:pointer" title="${UI.escape(dog.name)} bearbeiten">${UI.escape(dog.name)}</span>
|
||||
${othersHtml}`;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue