2026-03-24 16:46:46 -04:00
|
|
|
<section id="id_applet_billboard_scroll" class="applet-billboard-scroll">
|
|
|
|
|
<h2>{{ room.name }}</h2>
|
|
|
|
|
{% include "core/_partials/_scroll.html" %}
|
|
|
|
|
</section>
|
2026-03-24 17:44:34 -04:00
|
|
|
<script>
|
|
|
|
|
(function() {
|
|
|
|
|
var scroll = document.getElementById('id_drama_scroll');
|
|
|
|
|
if (!scroll) return;
|
|
|
|
|
|
|
|
|
|
// Restore saved position
|
|
|
|
|
scroll.scrollTop = {{ scroll_position }};
|
|
|
|
|
|
|
|
|
|
// Debounced save on scroll
|
|
|
|
|
var saveTimer;
|
|
|
|
|
scroll.addEventListener('scroll', function() {
|
|
|
|
|
clearTimeout(saveTimer);
|
|
|
|
|
saveTimer = setTimeout(function() {
|
|
|
|
|
var csrfToken = document.querySelector('[name=csrfmiddlewaretoken]');
|
|
|
|
|
var token = csrfToken ? csrfToken.value : '';
|
|
|
|
|
fetch("{% url 'billboard:save_scroll_position' room.id %}", {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
|
|
|
'X-CSRFToken': token,
|
|
|
|
|
},
|
|
|
|
|
body: 'position=' + Math.round(scroll.scrollTop),
|
|
|
|
|
});
|
|
|
|
|
}, 800);
|
|
|
|
|
});
|
|
|
|
|
})();
|
|
|
|
|
</script>
|