Skip to content
Snippets Groups Projects
Select Git revision
  • forbid-save-as
  • upload-via-token
  • moodle-integration
  • patch-double-tap-seek
  • patch_datum_anzeigen
  • patch_raum_anzeigen
  • master default protected
  • intros
  • live_sources
  • bootstrap4
  • modules
11 results

lecture.html

Blame
  • Forked from Video AG Infrastruktur / website
    613 commits behind the upstream repository.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    lecture.html 3.82 KiB
    {% from 'macros.html' import player %}
    {% from 'macros.html' import video_download_btn %}
    {% from 'macros.html' import video_embed_btn %}
    {% from 'macros.html' import vtttime %}
    {% from 'macros.html' import moderator_editor %}
    {% from 'macros.html' import moderator_delete %}
    {% from 'macros.html' import moderator_checkbox %}
    {% from 'macros.html' import stats_viewsperday %}
    {% set page_border = 1 -%}
    
    {% extends "base.html" %}
    {% block title %}- {{ course.title }}: {{ lecture.title}}{% endblock %}
    {% block header %}
    {{ super() }}
    
    	<meta property="og:image" content="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" />
    	<meta property="og:title" content="{{ course.title }}: {{ lecture.title}}" />
    	<meta property="og:description" content="{{ lecture.comment }}" />
    {% endblock %}
    {% block content %}
    <div class="panel panel-default">
    	<div class="panel-heading">
    		<h1 class="panel-title"><strong><a href="{{url_for('course', handle=course.handle)}}#lecture-{{lecture.id}}">{{ course.title }}</strong></a>: {{ lecture.title}}</h1>
    	</div>
    	<div class="panel-body">
    		<div class="row" style="padding: 0px;">
    			<div class="col-xs-12" style="padding-bottom: 5px;">
    				<a href="{{url_for('course', handle=course.handle)}}#lecture-{{lecture.id}}" class="btn btn-default" >Zur Veranstaltungsseite</a>
    				<ul class="list-inline pull-right">
    					<li><button class="btn btn-default" id="hintnewchapter">Kapitelmarker vorschlagen</button></li>
    					<li>{{ video_embed_btn(lecture.id) }}</li>
    					<li class="dropdown">{{ video_download_btn(videos) }}</li>
    				</ul>
    			</div>
    		</div>
    		<div class="row">
    			<div class="col-xs-12" style="padding: 0px">
    				{{ player(lecture, videos) }}
    			</div>
    			{% if ismod() %}
    				<div class="col-xs-12" style="padding-top: 10px;">
    					<p>Kapitel:</p>
    					<table class="table table-hover">
    					<tr>
    						<th>Index</th>
    						<th>Start</th>
    						<th>Kapitel</th>
    						<th>Sichtbar</th>
    						<th></th>
    					</tr>
    					{% for c in chapters|sort(attribute='time') %}
    					<tr>
    						<td>{{ loop.index }}</td>
    						<td><a href="javascript:videojs('videoplayer').currentTime({{c['time']}})">{{ vtttime(c['time']) }}</a></td>
    						<td>{{ moderator_editor(['chapters',c.id,'text'],c['text']) }}</td>
    						<td>{{ moderator_checkbox(['chapters',c.id,'visible'], c.visible) }}</td>
    						<td>{{ moderator_delete(['chapters',c.id,'deleted']) }}</td>
    					</tr>
    					{% endfor %}
    					</table>
    				</div>
    				<div id="statview" class="col-xs-12" style="height:600px"></div>
    				{{stats_viewsperday("statview", "Abrufe pro Tag", lecture=lecture.id)}}
    			{% endif %}
    		</div>
    	</div>
    </div>
    <script>
    function hintchapterclick (src) {
    	$.ajax({
    		method: "GET",
    		url: $(src).data('url'),
    		data: $(src).serialize(),
    		success: function(data)
    		{
    			alert("Kapitelmarker vorgeschlagen. Danke!");
    			$('#hintnewchapter').popover('hide');
    		}
    	});
    	return false;
    }
    $(function() {
    	$( "#hintnewchapter" ).popover(
    			{
    				html:true,
    				title:'Kapitelmarkierung vorschlagen',
    				content: function() {
    					var zeropad = function (num, places) {
    						  var zero = places - num.toString().length + 1;
    						    return Array(+(zero > 0 && zero)).join("0") + num;
    					};
    					var timestamp = videojs('videoplayer').currentTime()
    					var h = zeropad( Math.trunc(timestamp/3600),2);
    					var m = zeropad( Math.trunc((timestamp%3600)/60),2);
    					var s = zeropad( Math.trunc(timestamp%60),2);
    					var timeasstring = h+':'+m+':'+s;
    					return '<form method="post" data-url="{{ url_for('suggest_chapter', lectureid=lecture.id) }}" onSubmit="return hintchapterclick(this);"><input class="form-control" placeholder="00:00.000" name="time" type="text" value="'+timeasstring+'"><br><input class="form-control" placeholder="Kapitel" name="text" type="texz"><br><input type="submit" class="btn btn-default" value="Vorschlagen"></form>';
    				}
    			})
    
    });
    </script>
    {% endblock %}