diff --git a/bin/main/de/oaa/xxx/admin/AdminController.class b/bin/main/de/oaa/xxx/admin/AdminController.class index ac8efa6..8be8ade 100644 Binary files a/bin/main/de/oaa/xxx/admin/AdminController.class and b/bin/main/de/oaa/xxx/admin/AdminController.class differ diff --git a/bin/main/de/oaa/xxx/config/SecurityConfig.class b/bin/main/de/oaa/xxx/config/SecurityConfig.class index dee7a62..ead76e2 100644 Binary files a/bin/main/de/oaa/xxx/config/SecurityConfig.class and b/bin/main/de/oaa/xxx/config/SecurityConfig.class differ diff --git a/bin/main/de/oaa/xxx/feedback/FeedbackController$FeedbackRequest.class b/bin/main/de/oaa/xxx/feedback/FeedbackController$FeedbackRequest.class index e99c5e6..db0d0f5 100644 Binary files a/bin/main/de/oaa/xxx/feedback/FeedbackController$FeedbackRequest.class and b/bin/main/de/oaa/xxx/feedback/FeedbackController$FeedbackRequest.class differ diff --git a/bin/main/de/oaa/xxx/feedback/FeedbackController.class b/bin/main/de/oaa/xxx/feedback/FeedbackController.class index 3f13c06..2845318 100644 Binary files a/bin/main/de/oaa/xxx/feedback/FeedbackController.class and b/bin/main/de/oaa/xxx/feedback/FeedbackController.class differ diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/AboController.class b/bin/main/de/oaa/xxx/games/bdsm/controller/AboController.class index 81268fd..4859963 100644 Binary files a/bin/main/de/oaa/xxx/games/bdsm/controller/AboController.class and b/bin/main/de/oaa/xxx/games/bdsm/controller/AboController.class differ diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/AufgabenGruppeController.class b/bin/main/de/oaa/xxx/games/bdsm/controller/AufgabenGruppeController.class index 0a7ab6d..9b18d3b 100644 Binary files a/bin/main/de/oaa/xxx/games/bdsm/controller/AufgabenGruppeController.class and b/bin/main/de/oaa/xxx/games/bdsm/controller/AufgabenGruppeController.class differ diff --git a/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppe.class b/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppe.class index 4e77a24..c776833 100644 Binary files a/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppe.class and b/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppe.class differ diff --git a/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppeDisplay.class b/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppeDisplay.class index 0c10e72..2141bbc 100644 Binary files a/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppeDisplay.class and b/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppeDisplay.class differ diff --git a/bin/main/de/oaa/xxx/games/common/entity/AufgabenGruppeEntity.class b/bin/main/de/oaa/xxx/games/common/entity/AufgabenGruppeEntity.class index 84301f8..f1d78b3 100644 Binary files a/bin/main/de/oaa/xxx/games/common/entity/AufgabenGruppeEntity.class and b/bin/main/de/oaa/xxx/games/common/entity/AufgabenGruppeEntity.class differ diff --git a/bin/main/de/oaa/xxx/games/common/repository/AufgabenGruppeRepository.class b/bin/main/de/oaa/xxx/games/common/repository/AufgabenGruppeRepository.class index b991929..12ad477 100644 Binary files a/bin/main/de/oaa/xxx/games/common/repository/AufgabenGruppeRepository.class and b/bin/main/de/oaa/xxx/games/common/repository/AufgabenGruppeRepository.class differ diff --git a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAboController.class b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAboController.class index d908d9d..8a3a2f4 100644 Binary files a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAboController.class and b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAboController.class differ diff --git a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAufgabenGruppeController.class b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAufgabenGruppeController.class index b247ecf..8c670c8 100644 Binary files a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAufgabenGruppeController.class and b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAufgabenGruppeController.class differ diff --git a/bin/main/de/oaa/xxx/social/NotificationController.class b/bin/main/de/oaa/xxx/social/NotificationController.class index 6d15c3d..98b59a6 100644 Binary files a/bin/main/de/oaa/xxx/social/NotificationController.class and b/bin/main/de/oaa/xxx/social/NotificationController.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class b/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class index 312c4c6..b4e9d51 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class and b/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class b/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class index 417cafd..8f40b45 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class and b/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class differ diff --git a/bin/main/de/oaa/xxx/user/UserController.class b/bin/main/de/oaa/xxx/user/UserController.class index 46c4cb7..e7a5ce3 100644 Binary files a/bin/main/de/oaa/xxx/user/UserController.class and b/bin/main/de/oaa/xxx/user/UserController.class differ diff --git a/bin/main/static/admin/admin.html b/bin/main/static/admin/admin.html index e676490..cadf95c 100644 --- a/bin/main/static/admin/admin.html +++ b/bin/main/static/admin/admin.html @@ -120,7 +120,8 @@ .gruppe-info { font-size:0.75rem; color:var(--color-muted); margin-top:0.2rem; } .gruppe-badges { display:flex; gap:0.3rem; margin-top:0.25rem; flex-wrap:wrap; } .gruppe-badge { font-size:0.65rem; padding:0.1rem 0.4rem; border-radius:20px; background:rgba(255,255,255,0.07); color:var(--color-muted); } - .gruppe-badge-public { background:rgba(46,204,113,0.15); color:var(--color-success); } + .gruppe-badge-public { background:rgba(46,204,113,0.15); color:var(--color-success); } + .gruppe-badge-vanilla { background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; } .gruppe-toggle { font-size:0.75rem; color:var(--color-muted); flex-shrink:0; transition:transform 0.2s; } .gruppe-card.open .gruppe-toggle { transform:rotate(90deg); } .gruppe-body { border-top:1px solid var(--color-secondary); padding:1rem 1rem 0.75rem; } @@ -277,6 +278,12 @@ Aktuelles Bild – neues wählen zum Ersetzen + @@ -1262,6 +1269,7 @@ function openGruppeModal(editId) { document.getElementById('gName').value = g.name || ''; document.getElementById('gVon').value = g.von || ''; document.getElementById('gDesc').value = g.beschreibung || ''; + document.getElementById('gVanilla').checked = g.vanillaAvailable || false; const imgWrap = document.getElementById('gCurrentImgWrap'); if (g.bild) { document.getElementById('gCurrentImg').src = 'data:image/png;base64,' + g.bild; imgWrap.style.display = 'flex'; } else imgWrap.style.display = 'none'; @@ -1270,6 +1278,7 @@ function openGruppeModal(editId) { document.getElementById('gName').value = ''; document.getElementById('gVon').value = ''; document.getElementById('gDesc').value = ''; + document.getElementById('gVanilla').checked = false; document.getElementById('gCurrentImgWrap').style.display = 'none'; } gruppeModal.classList.add('open'); @@ -1348,7 +1357,7 @@ gruppeModalSave.addEventListener('click', async () => { let bildBase64 = null; const fi = document.getElementById('gBild'); if (fi.files.length > 0) bildBase64 = await toBase64(fi.files[0]); - const payload = { name, von: document.getElementById('gVon').value.trim() || null, beschreibung: document.getElementById('gDesc').value.trim() || null, bild: bildBase64 }; + const payload = { name, von: document.getElementById('gVon').value.trim() || null, beschreibung: document.getElementById('gDesc').value.trim() || null, vanillaAvailable: document.getElementById('gVanilla').checked, bild: bildBase64 }; const isEdit = currentEditGruppeId != null; fetch(isEdit ? `/admin/aufgabengruppen/${currentEditGruppeId}` : '/admin/aufgabengruppen', { method: isEdit ? 'PUT' : 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) diff --git a/bin/main/static/community/event-detail.html b/bin/main/static/community/event-detail.html index 4d8fa3b..63b13f4 100644 --- a/bin/main/static/community/event-detail.html +++ b/bin/main/static/community/event-detail.html @@ -195,6 +195,7 @@ function renderPage(evt) { const totalAttendees = (evt.attendees || []).length; const attending = evt.attendingMe; + const isPast = new Date(evt.startAt) < new Date(); document.getElementById('content').innerHTML = `
@@ -211,11 +212,13 @@ function renderPage(evt) {
` : ''}
- + ${isPast + ? `Veranstaltung bereits beendet` + : ``} ${totalAttendees} Teilnehmer*in(nen)
diff --git a/bin/main/static/community/location-detail.html b/bin/main/static/community/location-detail.html index 9e32f6d..ea8e21a 100644 --- a/bin/main/static/community/location-detail.html +++ b/bin/main/static/community/location-detail.html @@ -445,6 +445,9 @@ function renderPage() { ${isOwner ? `` : ''}

Wird geladen…

+ ` : ''; + const authorUrl = p.posterType === 'LOCATION' + ? `/community/location-detail.html?id=${p.locationId || p.authorId}` + : `/community/benutzer.html?userId=${p.authorId}`; + return `
-
${avHtml}
+
${avHtml}
- +
${adminBtns} @@ -1401,11 +1420,15 @@ function openLpLb(postId) { + ' ' + new Date(p.createdAt).toLocaleTimeString('de-DE', { hour:'2-digit', minute:'2-digit' }); const editedHtml = p.editedAt ? ' (bearbeitet)' : ''; + const lbAuthorUrl = p.posterType === 'LOCATION' + ? `/community/location-detail.html?id=${p.locationId || p.authorId}` + : `/community/benutzer.html?userId=${p.authorId}`; + document.getElementById('lbPostBody').innerHTML = `
-
${avHtml}
+
${avHtml}
- +
diff --git a/bin/main/static/community/location-events.html b/bin/main/static/community/location-events.html new file mode 100644 index 0000000..11dcc80 --- /dev/null +++ b/bin/main/static/community/location-events.html @@ -0,0 +1,164 @@ + + + + + + + Alle Events – xXx Sphere + + + + + + + +
+
+ + ‹ Zurück zur Location + +
Alle Events
+ +
+

Wird geladen…

+
+ + + +
+
+ + + + + diff --git a/bin/main/static/games/bdsm/aufgaben.html b/bin/main/static/games/bdsm/aufgaben.html index 51a768f..c37af00 100644 --- a/bin/main/static/games/bdsm/aufgaben.html +++ b/bin/main/static/games/bdsm/aufgaben.html @@ -95,6 +95,7 @@ } .gruppe-badge-private { background: rgba(233,69,96,0.15); color: var(--color-primary); } .gruppe-badge-public { background: rgba(46,204,113,0.15); color: var(--color-success); } + .gruppe-badge-vanilla { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; } .gruppe-toggle { font-size: 0.75rem; color: var(--color-muted); flex-shrink: 0; transition: transform 0.2s; } .gruppe-card.open .gruppe-toggle { transform: rotate(90deg); } @@ -367,6 +368,12 @@ Gruppe veröffentlichen (für alle sichtbar) +

Wird geladen…

+ ` : ''; + const authorUrl = p.posterType === 'LOCATION' + ? `/community/location-detail.html?id=${p.locationId || p.authorId}` + : `/community/benutzer.html?userId=${p.authorId}`; + return `
-
${avHtml}
+
${avHtml}
- +
${adminBtns} @@ -1401,11 +1420,15 @@ function openLpLb(postId) { + ' ' + new Date(p.createdAt).toLocaleTimeString('de-DE', { hour:'2-digit', minute:'2-digit' }); const editedHtml = p.editedAt ? ' (bearbeitet)' : ''; + const lbAuthorUrl = p.posterType === 'LOCATION' + ? `/community/location-detail.html?id=${p.locationId || p.authorId}` + : `/community/benutzer.html?userId=${p.authorId}`; + document.getElementById('lbPostBody').innerHTML = `
-
${avHtml}
+
${avHtml}
- +
diff --git a/src/main/resources/static/community/location-events.html b/src/main/resources/static/community/location-events.html new file mode 100644 index 0000000..11dcc80 --- /dev/null +++ b/src/main/resources/static/community/location-events.html @@ -0,0 +1,164 @@ + + + + + + + Alle Events – xXx Sphere + + + + + + + +
+
+ + ‹ Zurück zur Location + +
Alle Events
+ +
+

Wird geladen…

+
+ + + +
+
+ + + + + diff --git a/src/main/resources/static/games/bdsm/aufgaben.html b/src/main/resources/static/games/bdsm/aufgaben.html index 51a768f..c37af00 100644 --- a/src/main/resources/static/games/bdsm/aufgaben.html +++ b/src/main/resources/static/games/bdsm/aufgaben.html @@ -95,6 +95,7 @@ } .gruppe-badge-private { background: rgba(233,69,96,0.15); color: var(--color-primary); } .gruppe-badge-public { background: rgba(46,204,113,0.15); color: var(--color-success); } + .gruppe-badge-vanilla { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; } .gruppe-toggle { font-size: 0.75rem; color: var(--color-muted); flex-shrink: 0; transition: transform 0.2s; } .gruppe-card.open .gruppe-toggle { transform: rotate(90deg); } @@ -367,6 +368,12 @@ Gruppe veröffentlichen (für alle sichtbar) +