datatracker/ietf/templates/meeting/agenda-neue.html
Nicolas Giard a605b08de6
feat: load agenda asynchronously via REST endpoint (#4257)
* feat: load agenda asynchronously via REST endpoint

* fix: handle invalid meeting number + pre-64 meetings redirect
2022-07-24 10:34:57 -05:00

80 lines
2.1 KiB
HTML

{% extends "base.html" %}
{# Copyright The IETF Trust 2015-2021, All Rights Reserved #}
{% load origin %}
{% load static %}
{% load ietf_filters %}
{% load textfilters %}
{% load htmlfilters agenda_custom_tags %}
{% load django_vite %}
{% block title %}
IETF {{ meetingData.meetingNumber }} Meeting Agenda
{% endblock %}
{% block pagehead %}
<!-- AGENDA VUE COMPONENT -->
<!-- [html-validate-disable-block void-style, attribute-empty-style] -->
{{ meetingData|json_script:"meeting-data" }}
{% vite_asset 'client/agenda/main.js' %}
{% endblock %}
{% block morecss %}
body {
font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
@keyframes initspinner {
to { transform: rotate(360deg); }
}
#app-meeting-loading {
position: fixed;
top: 60px;
left: 0;
width: 100%;
height: calc(100% - 60px);
background-color: rgba(255,255,255,.75);
z-index: 2000000000;
backdrop-filter: blur(10px);
}
#app-meeting-loading:before {
content: '';
box-sizing: border-box;
position: absolute;
top: 50%;
left: 50%;
width: 50px;
height: 50px;
margin-top: -25px;
margin-left: -25px;
border-radius: 50%;
border-top: 2px solid #999;
border-right: 2px solid transparent;
animation: initspinner .6s linear infinite;
z-index: 2000000000;
}
#app-meeting-loading:after {
content: 'Loading meeting {{ meetingData.meetingNumber }}...';
position: absolute;
text-align: center;
top: 50%;
margin-top: -100px;
left: 0;
right: 0;
font-weight: 500;
color: #999;
z-index: 2000000000;
}
{% endblock %}
{% block precontent %}
<div class="meeting-switch">
<i class="bi bi-arrow-left-right me-2"></i>
<a href="{% url 'ietf.meeting.views.agenda' num=meetingData.meetingNumber %}">Switch to Legacy Agenda Display</a>
</div>
{% endblock %}
{% block content %}
{% origin %}
<div id="app-meeting"></div>
<div id="app-meeting-loading"></div>
{% endblock %}