* Update vnu.jar * Fix py2 -> py3 issue * Run pyupgrade * test: Add default-jdk to images * test: Add option to also validate HTML with vnu.jar Since it's already installed in bin. Don't do this by default, since it increases the time needed for tests by ~50%. * fix: Stop the urlizer from urlizing in linkified mailto: text * More HTML fixes * More HTML validation fixes * And more HTML fixes * Fix floating badge * Ignore unicode errors * Only URLize docs that are existing * Final fixes * Don't URLize everything during test-crawl * Feed HTML into vnu using python rather than Java to speed things up * Allow test-crawl to start vnu on a different port * Increase retry count to vnu. Restore batch size to 30. * More HTML validation fixes * Use urllib3 to make requests to vnu, since overriding requests_mock is tricky * Undo commit of unmodified file * Also urlize ftp links * Fix matching of file name * More HTML fixes * Add `is_valid_url` filter * weekday -> data-weekday * urlencode URLs * Add and use vnu_fmt_message. Bump vnu max buffer. * Simplify doc_exists * Don't add tab link to mail archive if the URL is invalid * Run urlize_ietf_docs before linkify Reduces the possibility of generating incorrect HTML * Undo superfluous change * Runner fixes * Consolidate vnu message filtering into vnu_filter_message * Correctly handle multiple persons with same name * Minimze diff * Fix HTML nits * Print source snippet in vnu_fmt_message * Only escape if there is something to escape * Fix snippet * Skip crufty old IPR declarations * Only include modal when needed. Add handles. * Fix wordwrap+linkification * Update ietf/doc/templatetags/ietf_filters.py * Update ietf/doc/templatetags/tests_ietf_filters.py * Don't right-align second column
161 lines
7.9 KiB
HTML
161 lines
7.9 KiB
HTML
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
|
{% load origin %}
|
|
{% load static %}
|
|
{% load textfilters %}
|
|
{% origin %}
|
|
{% with item=session.official_timeslotassignment acronym=session.historic_group.acronym %}
|
|
<div role="group" class="btn-group btn-group-sm">
|
|
{% if session.agenda and show_agenda %}
|
|
{% include "meeting/session_agenda_include.html" with slug=item.slug session=session timeslot=item.timeslot only %}
|
|
{# Note: if called with show_agenda=True, calling template must load agenda_materials.js, needed by session_agenda_include.html #}
|
|
{# agenda pop-up button #}
|
|
<a class="btn btn-outline-primary"
|
|
data-bs-toggle="modal"
|
|
data-bs-target="#modal-{{ item.slug }}"
|
|
aria-label="Show meeting materials"
|
|
title="Show meeting materials">
|
|
<i class="bi bi-arrows-fullscreen"></i>
|
|
</a>
|
|
{# materials tar file #}
|
|
<a class="btn btn-outline-primary"
|
|
href="/meeting/{{ meeting.number }}/agenda/{{ acronym }}-drafts.tgz"
|
|
aria-label="Download meeting materials as .tar archive"
|
|
title="Download meeting materials as .tar archive">
|
|
<i class="bi bi-file-zip"></i>
|
|
</a>
|
|
{# materials PDF file #}
|
|
<a class="btn btn-outline-primary"
|
|
href="/meeting/{{ meeting.number }}/agenda/{{ acronym }}-drafts.pdf"
|
|
aria-label="Download meeting materials as PDF file"
|
|
title="Download meeting materials as PDF file">
|
|
<i class="bi bi-file-pdf"></i>
|
|
</a>
|
|
{% endif %}
|
|
{# etherpad #}
|
|
{% if use_codimd %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ session.notes_url }}"
|
|
aria-label="Notepad for note-takers"
|
|
title="Notepad for note-takers">
|
|
<i class="bi bi-journal-text"></i>
|
|
</a>
|
|
{% endif %}
|
|
{# show stream buttons up till end of session, then show archive buttons #}
|
|
{% if now < item.timeslot.end_time %}
|
|
{# Jabber #}
|
|
<a class="btn btn-outline-primary"
|
|
href="xmpp:{{ session.jabber_room_name }}@jabber.ietf.org?join"
|
|
aria-label="Jabber room for {{ session.jabber_room_name }}"
|
|
title="Jabber room for {{ session.jabber_room_name }}">
|
|
<i class="bi bi-lightbulb"></i>
|
|
</a>
|
|
{# Remote call-in #}
|
|
{% if session.agenda_note|first_url|conference_url %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ session.agenda_note|first_url }}"
|
|
aria-label="Online conference"
|
|
title="Online conference">
|
|
<i class="bi bi-people"></i>
|
|
</a>
|
|
{% elif session.remote_instructions|first_url|conference_url %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ session.remote_instructions|first_url }}"
|
|
aria-label="Online conference"
|
|
title="Online conference">
|
|
<i class="bi bi-people"></i>
|
|
</a>
|
|
{% elif item.timeslot.location.webex_url %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ item.timeslot.location.webex_url|format:session }}"
|
|
aria-label="Webex session"
|
|
title="Webex session">
|
|
<i class="bi bi-people"></i>
|
|
</a>
|
|
{# Video stream (meetecho) #}
|
|
{% elif item.timeslot.location.video_stream_url %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ item.timeslot.location.video_stream_url|format:session }}"
|
|
aria-label="Meetecho video stream"
|
|
title="Meetecho video stream">
|
|
<i class="bi bi-camera-video"></i>
|
|
</a>
|
|
{% else %}
|
|
<a class="btn btn-outline-primary text-secondary disabled"
|
|
href="#"
|
|
aria-label="No online conference info found in remote instructions or agenda note"
|
|
title="No online conference info found in remote instructions or agenda note">
|
|
<i class="bi bi-people"></i>
|
|
</a>
|
|
{% endif %}
|
|
{# iCalendar item #}
|
|
<a class="btn btn-outline-primary"
|
|
href="{% url 'ietf.meeting.views.agenda_ical' num=meeting.number session_id=session.id %}"
|
|
aria-label="icalendar entry for {{ acronym }} session on {{ item.timeslot.utc_start_time|date:'Y-m-d H:i' }} UTC"
|
|
title="icalendar entry for {{ acronym }} session on {{ item.timeslot.utc_start_time|date:'Y-m-d H:i' }} UTC">
|
|
<i class="bi bi-calendar"></i>
|
|
</a>
|
|
{% else %}
|
|
{# Jabber #}
|
|
<a class="btn btn-outline-primary"
|
|
href="https://www.ietf.org/jabber/logs/{{ session.jabber_room_name }}?C=M;O=D"
|
|
aria-label="Jabber logs for {{ session.jabber_room_name }}"
|
|
title="Jabber logs for {{ session.jabber_room_name }}">
|
|
<i class="bi bi-file-text"></i>
|
|
</a>
|
|
{% with session.recordings as recordings %}
|
|
{% if recordings %}
|
|
{# There's no guaranteed order, so this is a bit messy: #}
|
|
{# Audio #}
|
|
{% for r in recordings %}
|
|
{% with href=r.get_href %}
|
|
{% if 'audio' in href %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ href }}"
|
|
aria-label="{{ r.title }}"
|
|
title="{{ r.title }}">
|
|
<i class="bi bi-file-play"></i>
|
|
</a>
|
|
{% endif %}
|
|
{% endwith %}
|
|
{% endfor %}
|
|
{# YouTube #}
|
|
{% for r in recordings %}
|
|
{% with href=r.get_href %}
|
|
{% if 'youtu' in href %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ href }}"
|
|
aria-label="{{ r.title }}"
|
|
title="{{ r.title }}">
|
|
<i class="bi bi-file-slides"></i>
|
|
</a>
|
|
{% endif %}
|
|
{% endwith %}
|
|
{% endfor %}
|
|
{# Any other recordings #}
|
|
{% for r in recordings %}
|
|
{% with href=r.get_href %}
|
|
{% if not 'audio' in href and not 'youtu' in href %}
|
|
<a class="btn btn-outline-primary"
|
|
href="{{ href }}"
|
|
aria-label="{{ r.title }}"
|
|
title="{{ r.title }}">
|
|
<i class="bi bi-file-play"></i>
|
|
</a>
|
|
{% endif %}
|
|
{% endwith %}
|
|
{% endfor %}
|
|
{% elif item.timeslot.location.video_stream_url %}
|
|
<a class="btn btn-outline-primary"
|
|
href="http://www.meetecho.com/ietf{{ meeting.number }}/recordings#{{ acronym.upper }}"
|
|
aria-label="Meetecho session recording"
|
|
title="Meetecho session recording">
|
|
<i class="bi bi-file-slides"></i>
|
|
</a>
|
|
{% elif show_empty %}
|
|
{# <i class="bi"></i> #}
|
|
{% endif %}
|
|
{% endwith %}
|
|
{% endif %}
|
|
</div>
|
|
{% endwith %}
|