diff options
Diffstat (limited to 'templates/page.tmpl')
-rw-r--r-- | templates/page.tmpl | 63 |
1 files changed, 51 insertions, 12 deletions
diff --git a/templates/page.tmpl b/templates/page.tmpl index 7cf2eb50..1f40aa66 100644 --- a/templates/page.tmpl +++ b/templates/page.tmpl @@ -76,9 +76,13 @@ }, 0); } - function handleSubtitleClick(event) { - var video = event.target.attributes['data-video'].value; - var start = event.target.attributes['data-start'].value + function handleSubtitleClick(event) { + var video = event.target.getAttribute('data-video'); + var start = event.target.getAttribute('data-start'); + let m = video.match(/(mainVideo|qnaVideo)-(.*)/); + if (m) { + video = m[2] + '-' + m[1]; + } var videoElem = document.getElementById(video); if (videoElem) { videoElem.currentTime = parseSeconds(start); @@ -295,7 +299,7 @@ Last edited <TMPL_VAR MTIME> <script> // @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt txt CC0-1.0 // Copyright (C) 2021, 2022 Sacha Chua - + if (document.querySelector('.times')) { var dateOptions = {dateStyle: 'short', timeStyle: 'short'}; var localStart = (new Date(document.querySelector('.times').getAttribute('start'))).toLocaleString([], dateOptions); @@ -307,18 +311,34 @@ Last edited <TMPL_VAR MTIME> document.querySelector('.times').querySelector('.others').style.display = 'none'; } } + if (document.querySelector('.time-overlay')) { + document.querySelectorAll('.time-overlay').forEach(function (o) { + if (o.getAttribute('title')) return; + var dateOptions = {dateStyle: 'short', timeStyle: 'short'}; + var localStart, localEnd; + if (o.getAttribute('start') && o.getAttribute('end')) { + localStart = (new Date(o.getAttribute('start'))).toLocaleString([], dateOptions); + localEnd = (new Date(o.getAttribute('end'))).toLocaleString([], dateOptions); + o.setAttribute('title', 'Your local time: ~ ' + localStart + ' to ~ ' + localEnd); + } else if (o.getAttribute('start')) { + localStart = (new Date(o.getAttribute('start'))).toLocaleString([], dateOptions); + o.setAttribute('title', 'Your local time: ~ ' + localStart); + } + }); + } + if (document.querySelector('a[name=transcript]')) { var transcriptLink = document.createElement('a'); transcriptLink.setAttribute('href', '#transcript'); transcriptLink.textContent = 'View transcript'; -var video = document.querySelector('.mainVideo video'); -if (video) { - var resources = document.querySelector('.mainVideo video').closest('.vid').querySelector('.resources'); - var transcriptDiv = document.createElement('div'); -transcriptDiv.appendChild(transcriptLink) - if (resources) { resources.prepend(transcriptDiv); } - } -} + var video = document.querySelector('.mainVideo video'); + if (video) { + var resources = document.querySelector('.mainVideo video').closest('.vid').querySelector('.resources'); + var transcriptDiv = document.createElement('div'); + transcriptDiv.appendChild(transcriptLink) + if (resources) { resources.prepend(transcriptDiv); } + } + } var chat = document.querySelector('.chat-iframe'); if (chat) { if (chat.getAttribute('data-track')) { @@ -409,6 +429,25 @@ if (video) { } // @license-end + // @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt txt CC0-1.0 + // Copyright (c) 2023 Sacha Chua - CC0 Public Domain + function highlightTalks() { + // highlight any talk mentioned in the highlight URL parameter + var params = new URLSearchParams(window.location.search); + if (!params.get('highlight')) return; + var talks = params.get('highlight').split(',').filter(function(o) { return o.match(/^[-a-z0-9]+$/); }); + var regexp = new RegExp('/talks/(' + talks.join('|') + ')/?$'); + document.querySelectorAll('a[href]').forEach(function(link) { + console.debug(link.getAttribute('href'), link.getAttribute('href').match(regexp)); + if (link.getAttribute('href').match(regexp)) { + console.debug(link); + link.classList.add('highlight'); + } + }); + } + + addEventListener('DOMContentLoaded', highlightTalks); + // @license-end </script> </body> </html> |