<%page expression_filter="h"/> <%! from django.utils.translation import ugettext as _ from openedx.core.djangolib.js_utils import js_escaped_string %> % if display_name is not UNDEFINED and display_name is not None: <h3 class="hd hd-2">${display_name}</h3> % endif <div id="video_${id}" class="video closed" data-metadata='${metadata}' data-bumper-metadata='${bumper_metadata}' data-poster='${poster}' tabindex="-1" > <div class="focus_grabber first"></div> <div class="tc-wrapper"> <div class="video-wrapper"> <span tabindex="0" class="spinner" aria-hidden="false" aria-label="${_('Loading video player')}"></span> <span tabindex="-1" class="btn-play is-hidden" aria-hidden="true" aria-label="${_('Play video')}"></span> <div class="video-player-pre"></div> <div class="video-player"> <div id="${id}"></div> <h4 class="hd hd-4 video-error is-hidden">${_('No playable video sources found.')}</h4> <h4 class="hd hd-4 video-hls-error is-hidden"> ${_('Your browser does not support this video format. Try using a different browser.')} </h4> </div> <div class="video-player-post"></div> <div class="closed-captions"></div> <div class="video-controls is-hidden"> <div> <div class="vcr"><div class="vidtime">0:00 / 0:00</div></div> <div class="secondary-controls"></div> </div> </div> </div> </div> <div class="focus_grabber last"></div> % if download_video_link or track or handout or branding_info: <h3 class="hd hd-4 downloads-heading sr" id="video-download-transcripts_${id}">${_('Downloads and transcripts')}</h3> <div class="wrapper-downloads" role="region" aria-labelledby="video-download-transcripts_${id}"> % if download_video_link: <div class="wrapper-download-video"> <h4 class="hd hd-5">${_('Video')}</h4> <a class="btn-link video-sources video-download-button" href="${download_video_link}"> ${_('Download video file')} </a> </div> % endif % if track: <div class="wrapper-download-transcripts"> <h4 class="hd hd-5">${_('Transcripts')}</h4> % if transcript_download_format: <ul class="list-download-transcripts"> % for item in transcript_download_formats_list: <li class="transcript-option"> <% dname = _("Download {file}").format(file=item['display_name']) %> <a class="btn btn-link" href="${track}" data-value="${item['value']}">${dname}</a> </li> % endfor </ul> % else: <a class="btn-link external-track" href="${track}">${_('Download transcript')}</a> % endif </div> % endif % if handout: <div class="wrapper-handouts"> <h4 class="hd hd-5">${_('Handouts')}</h4> <a class="btn-link" href="${handout}">${_('Download Handout')}</a> </div> % endif % if branding_info: <div class="branding"> <span class="host-tag">${branding_info['logo_tag']}</span> <a href="${branding_info['url']}"><img class="brand-logo" src="${branding_info['logo_src']}" alt="${branding_info['logo_tag']}" /></a> </div> % endif </div> % endif </div> % if cdn_eval: <script> //TODO: refactor this js into a separate file. function sendPerformanceBeacon(id, expgroup, value, event_name) { var data = {event: event_name, id: id, expgroup: expgroup, value: value, page: "html5vid"}; $.ajax({method: "POST", url: "/performance", data: data}); } var cdnStartTime; var salt = Math.floor((1 + Math.random()) * 0x100000).toString(36); var id = "${id | n, js_escaped_string}"; function initializeCDNExperiment() { sendPerformanceBeacon(id + "_" + salt, ${cdn_exp_group}, "", "load"); cdnStartTime = Date.now(); $.each(['loadstart', 'abort', 'error', 'stalled', 'loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough', 'seeked'], function(index, eventName) { $("#video_" + id).bind("html5:" + eventName, null, function() { timeElapsed = Date.now() - cdnStartTime; sendPerformanceBeacon(id + "_" + salt, ${cdn_exp_group}, timeElapsed, eventName); }); }); } $("#video_" + id).bind("initialize", null, initializeCDNExperiment); if ($("#video_" + id).hasClass("is-initialized")) { initializeCDNExperiment(); } </script> % endif;