Changeset 0dbb5c1 in Klonkt
- Timestamp:
- 06/18/2026 07:24:25 AM (3 months ago)
- Branches:
- main
- Children:
- 6623453
- Parents:
- 5c261b7
- Location:
- src
- Files:
-
- 2 edited
-
assets/js/audio-player.js (modified) (4 diffs)
-
views/shell.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/audio-player.js
r5c261b7 r0dbb5c1 562 562 if (sheet.classList.contains('is-open')) closeSheet(true); 563 563 }); 564 expandTrigger.addEventListener('click', openSheet); 564 // Mini-player-info aanklikken: 565 // - DESKTOP (≥768px): spring naar de post waar de track vandaan komt (als bekend), 566 // via htmx zodat de audio blijft spelen. Geen post bekend → val terug op de sheet. 567 // - MOBIEL: altijd de uitgebreide speler-sheet openen (huidig gedrag). 568 function goToPost(url) { 569 if (window.htmx && url.charAt(0) === '/') { 570 try { 571 window.htmx.ajax('GET', url, { target: '#pcms-main', swap: 'innerHTML' }); 572 history.pushState({}, '', url); 573 window.scrollTo(0, 0); 574 return; 575 } catch (e) { /* val terug op volledige navigatie */ } 576 } 577 location.href = url; 578 } 579 expandTrigger.addEventListener('click', () => { 580 const t = queue[currentIndex]; 581 const isDesktop = window.matchMedia && window.matchMedia('(min-width: 768px)').matches; 582 if (isDesktop && t && t.postUrl) { goToPost(t.postUrl); return; } 583 openSheet(); 584 }); 565 585 sheetClose.addEventListener('click', () => closeSheet()); 566 586 sheetBackdrop.addEventListener('click', () => closeSheet()); … … 663 683 e.preventDefault(); 664 684 e.stopPropagation(); 685 // De post waar je VANAF afspeelt = de pagina waar je nu bent (de embeds staan 686 // in de post-content). Bewaar 'm op de track(s) zodat de mini-player er op 687 // desktop naartoe kan springen — overleeft ook de sessionStorage-resume. 688 const postUrl = location.pathname + location.search; 665 689 // Resolve metadata: button-first, then closest .post-audio-track wrapper 666 690 // (only inline single-track widgets put the data on the wrapper). … … 676 700 try { 677 701 const tracks = JSON.parse(album.dataset.pcmsAlbum); 702 tracks.forEach((t) => { t.postUrl = postUrl; }); 678 703 // Start at the clicked track if we know its URL, else start at 0 679 704 // (cover-btn and playall both want to start from the beginning). … … 684 709 try { 685 710 const t = JSON.parse(trackData); 711 t.postUrl = postUrl; 686 712 setQueue([t], 0); 687 713 } catch(err) { console.error('[pcms-audio] bad track JSON', err, trackData); } 688 714 } else if (trackUrl) { 689 715 // Fallback: at minimum we have the signed URL 690 setQueue([{ url: trackUrl, title: 'Track', artist: '', cover: '' }], 0);716 setQueue([{ url: trackUrl, title: 'Track', artist: '', cover: '', postUrl }], 0); 691 717 } else { 692 718 console.error('[pcms-audio] no track data or url on button or wrapper', btn); -
src/views/shell.ejs
r5c261b7 r0dbb5c1 300 300 ?v=N — cache-buster: bump bij elke audio-player.js wijziging zodat 301 301 Cloudflare (max-age=1y) niet de oude versie blijft serveren. --> 302 <script src="/assets/js/audio-player.js?v=1 5"></script>302 <script src="/assets/js/audio-player.js?v=16"></script> 303 303 <!-- Eigen custom media-embeds (YouTube/SoundCloud/Spotify) via de echte 304 304 player-API's + gedeelde mutual-exclusion registry met de site-speler. -->
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)