move event info to dedicated json file, also load event color from json

This commit is contained in:
Franzi 2021-11-22 10:14:25 +01:00
parent f1e61ad655
commit 4973446da8
Signed by: kunsi
GPG Key ID: 12E3D2136B818350
5 changed files with 31 additions and 13 deletions

View File

@ -17,6 +17,7 @@
padding: 15px;
box-shadow: 5px 5px 10px 0px rgba(50, 50, 50, 0.75);
background-color: #3aa57c;
}
#title {

View File

@ -1,5 +1,6 @@
schedule = null;
room_name = null;
event_info = null;
$(function() {
$('#speaker').text('Content will appear soon.');
@ -16,8 +17,8 @@ function update_lower_third() {
return
}
if (!schedule) {
console.warn("There's no schedule yet, exiting ...");
if (!schedule || !event_info) {
console.warn("There's no schedule or no event info yet, exiting ...");
return
}
@ -51,7 +52,7 @@ function update_lower_third() {
$('#speaker').text(current_talk['persons'].join(', '));
$('#info_line').text(current_talk['infoline']);
} else {
$('#title').text(schedule['conference']['no_talk']);
$('#title').text(event_info['no_talk']);
$('#speaker').text('');
$('#info_line').text('');
}
@ -65,6 +66,11 @@ function update_lower_third() {
window.setInterval(update_lower_third, 1000);
function update_schedule() {
$.getJSON('event.json', function(data) {
event_info = data;
$('#box').css('background-color', data['color']);
});
$.getJSON('schedule.json', function(data) {
console.info('schedule updated with ' + data['talks'].length + ' talks in ' + data['rooms'].length + ' rooms');

View File

@ -10,11 +10,6 @@
{% endcompress %}
<script src="{% static "pretalx_lower_thirds/update.js" %}"></script>
<link rel="stylesheet" href="{% static "pretalx_lower_thirds/frontend.css" %}" />
<style type="text/css">
#box {
background-color: {{ request.event.primary_color|default:"#3aa57c" }};
}
</style>
</head>
<body>
<div id="box">

View File

@ -9,6 +9,11 @@ urlpatterns = [
views.LowerThirdsView.as_view(),
name="lowerthirds",
),
re_path(
f"^(?P<event>[{SLUG_CHARS}]+)/p/lower-thirds/event.json$",
views.EventInfoView.as_view(),
name="event_info",
),
re_path(
f"^(?P<event>[{SLUG_CHARS}]+)/p/lower-thirds/schedule.json$",
views.ScheduleView.as_view(),

View File

@ -40,6 +40,22 @@ class LowerThirdsOrgaView(PermissionRequired, FormView):
}
class EventInfoView(TemplateView):
def get(self, request, *args, **kwargs):
color = (self.request.event.primary_color or "#3aa57c")
return JsonResponse(
{
"slug": self.request.event.slug,
"name": str(self.request.event.name),
"no_talk": str(self.request.event.settings.lower_thirds_no_talk_info),
"color": color,
},
json_dumps_params={
"indent": 4,
},
)
class ScheduleView(EventPermissionRequired, ScheduleMixin, TemplateView):
permission_required = "agenda.view_schedule"
@ -52,11 +68,6 @@ class ScheduleView(EventPermissionRequired, ScheduleMixin, TemplateView):
infoline = str(schedule.event.settings.infoline or "")
return JsonResponse(
{
"conference": {
"slug": schedule.event.slug,
"name": str(schedule.event.name),
"no_talk": str(schedule.event.settings.lower_thirds_no_talk_info),
},
"rooms": sorted(
{
str(room["name"])