Skip to content
Snippets Groups Projects
Commit a04fee6b authored by Julian Rother's avatar Julian Rother
Browse files

Added "video" featured type

parent 5b9d2060
No related branches found
No related tags found
No related merge requests found
......@@ -376,6 +376,21 @@ def index():
if item['param'] not in ['title', 'semester', 'organizer', 'subject']:
continue
item['courses'] = query('SELECT * FROM courses WHERE (visible AND listed) AND `%s` = ? ORDER BY `%s`'%(item['param'], item['param']), item['param2'])
elif item['type'] == 'video':
item['lecture'] = {'id': item['param']}
livestreams = query('''SELECT streams.handle AS livehandle, streams.lecture_id, "formats" AS sep, formats.*
FROM streams
JOIN lectures ON lectures.id = streams.lecture_id
JOIN formats ON formats.keywords = "hls"
WHERE streams.active AND streams.visible AND lectures.id = ?
''', item['param'])
item['videos'] = query('''
SELECT videos.*, "formats" AS sep, formats.*
FROM videos
JOIN formats ON (videos.video_format = formats.id)
WHERE videos.lecture_id = ? AND videos.visible
ORDER BY formats.prio DESC
''', item['param'])+genlive(livestreams)
return render_template('index.html', latestvideos=livestreams+latestvideos, upcomming=upcomming, featured=featured)
@app.route('/courses')
......
......@@ -59,6 +59,7 @@
<ul class="dropdown-menu">
<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='plain', ref=request.url) }}">Nur Text</a></li>
<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='image', ref=request.url) }}">Text mit Bild</a></li>
<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='video', ref=request.url) }}">Text mit Video</a></li>
<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='courses', param='semester', param2='', ref=request.url) }}">Veranstaltungsliste</a></li>
</ul>
</div>
......
......@@ -48,7 +48,7 @@
{% endmacro %}
{% macro player(lecture, videos, msgs) %}
{% macro player(lecture, videos, msgs=[], autoplay=True) %}
<video id="videoplayer" style="width: 100%" class="video-js vjs-default-skin vjs-big-play-centered" width="640" height="320" controls data-wasnotplayed="1" data-setup='{ "language":"de", "plugins" : {"hotkeys": {"seekStep": 15, "enableVolumeScroll": false, "alwaysCaptureHotkeys": true}, "videoJsResolutionSwitcher": { "ui": true, "default": "720p", "dynamicLabel": false } }, "customControlsOnMobile": true, "playbackRates": [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4] }'>
{% for v in videos|sort(attribute='formats.player_prio', reverse=True) %}
<source type="{{ v.formats.mimetype }}" src="{{ config.VIDEOPREFIX }}/{{ v.path }}" data-label="{{ v.formats.description }}" data-res="{{v.formats.resolution}}" data-aspect="{{v.formats.aspect}}" data-player_prio="{{v.formats.player_prio}}"/>
......@@ -90,10 +90,12 @@ $(function() {
$('#videoplayer').data("wasnotplayed","0");
}
};
{% if autoplay %}
$(window).focus(playerplay);
if (document.hasFocus()) {
playerplay();
}
{% endif %}
// errors as modal dialog
videojs("videoplayer").on("error", function() {
var modals = [];
......@@ -401,6 +403,17 @@ $('#embedcodebtn').popover(
{% endif %}
Die vollständige Liste findest du <a href="{{ url_for('courses') }}">hier</a>.
</div>
{% elif item.type == 'video' %}
<div class="panel-body">
<div>{{ moderator_editor(('featured',item.id,'text'), item.text) }}</div>
{% if item.videos %}
{{ player(item.lecture, item.videos, autoplay=False)}}
{% endif %}
{% if ismod() %}
<div>ID des Videos: {{ moderator_editor(('featured',item.id,'param'), item.param) }}</div>
{% endif %}
<div>{{ moderator_editor(('featured',item.id,'param2'), item.param2) }}</div>
</div>
{% else %}
{% if item.text or ismod() %}
<div class="panel-body">{{ moderator_editor(('featured',item.id,'text'), item.text) }}</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment