Something went wrong on our end
Select Git revision
macros.html
-
Andreas Valder authoredAndreas Valder authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
macros.html 9.84 KiB
{% macro preview(lecture) %}
<li class="list-group-item">
<a href="{{url_for('lecture', id=lecture['id'])}}" title="{{ lecture.course.title }}" style="color: #000">
<div class="hidden-xs">
<div class="row">
<img class="col-xs-4" style="max-height: 120px; height: auto; width:170px" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild" onerror="this.src='{{url_for('static',filename='no-thumbnail.png')}}'; this.onerror=''; ">
<div class="col-xs-4">
<span><strong>{{ lecture.course.short }}</strong>{% if ismod() %} <i>({{lecture.course_id}})</i>{% endif %}</span><br>
<span>{% if ismod() %}ID: {{lecture.id}}{% endif %}</span><br>
<span>{{ lecture['time'] }}</span>
{% if lecture['speaker'] %}
<div class="small">Gehalten von {{ lecture['speaker']|safe }} </div>
{% endif %}
</div>
<div class="col-xs-4">
<div>{{ lecture['title']|fixnl|safe }}</div>
<p style="font-style: italic; color: #777;">{{ lecture['comment']|fixnl|safe }}</p>
</div>
</div>
</div>
<div class="visible-xs">
<ul class="list-unstyled">
<li>
<img style="width: 100%;" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild" onerror="this.src='{{url_for('static',filename='no-thumbnail.png')}}'; this.onerror=''; ">
</li>
<li>
<strong>{{ lecture.course.short }}</strong> {{ lecture['time'] }}
</li>
{% if lecture['speaker'] %}
<li>
<span class="small">Gehalten von {{ lecture['speaker']|safe }} </span>
</li>
{% endif %}
<li>
{{ lecture['title']|fixnl|safe }}
</li>
<li>
<p style="font-style: italic; color: #777;">{{ lecture['comment']|fixnl|safe }}</p>
</li>
</ul>
</div>
</a>
</li>
{% endmacro %}
{% macro player(lecture, videos) %}
<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='{ "plugins" : {"hotkeys": {"seekStep": 15, "enableVolumeScroll": false, "alwaysCaptureHotkeys": true}, "videoJsResolutionSwitcher": { "ui": true, "default": "720p", "dynamicLabel": true } }, "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='player_prio', reverse=True) %}
<source type="video/mp4" src="{{ config.VIDEOPREFIX }}/{{ v.path }}" label="{{ v.format_description }}"/>
{% endfor %}
<track srclang="de" kind="chapters" src="{{ url_for('chapters',lectureid=lecture.id) }}" />
</video>
<script>
$('#videoplayer').addClass("vjs-16-9");
$('#videoplayer').css("width");
$(function() {
var playerplay = function() {
if ($('#videoplayer').data("wasnotplayed") == 1) {
videojs('videoplayer').play();
$('#videoplayer').data("wasnotplayed","0");
}
};
$(window).focus(playerplay);
if (document.hasFocus()) {
playerplay();
}
});
</script>
{% endmacro %}
{% macro course_list_item(course,show_semester=False) %}
<li class="list-group-item list-group-item-condensed {% if (not course.visible) or (not course.listed) %}list-group-item-danger{% endif %}">
<div class="row">
{% if show_semester %}
<span class="col-xs-2 col-md-1">
{{ course.semester|semester }}
</span>
<span class="col-xs-10 col-md-6">
{% else %}
<span class="col-xs-12 col-md-7">
{% endif %}
<a href="{{url_for('course', handle=course.handle)}}">
{{ course.title }}{% if ismod() %}<i> ({{course.id}})</i>{% endif %}
</a>
</span>
<span class="col-xs-8 col-md-3">
{{ course.organizer }}
</span>
<span class="col-xs-4 col-md-2">
{{ course.subject }}
</span>
</div>
</li>
{% endmacro %}
{% macro video_download_btn(videos) %}
{% if not ismod() %}
<span class="btn btn-default dropdown-toggle{% if videos|length is equalto 0 %} disabled{% endif %}" type="button" data-toggle="dropdown">Download <span class="caret"></span></span>
<ul class="dropdown-menu">
{% for v in videos|sort(attribute='prio', reverse=True) if (v.downloadable or ismod() ) %}
<li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li>
{% endfor %}
</ul>
{% endif %}
{% if not ismod() %}
<noscript>
{% else %}
<span>
{% endif %}
<ul class="pull-right list-unstyled" style="margin-left:10px;">
{% for v in videos|sort(attribute='prio', reverse=True) if (v.downloadable or ismod() ) %}
<li>{{moderator_delete(['videos',v.id,'deleted'])}} {{ moderator_checkbox(['videos',v.id,'visible'], v.visible) }} <a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li>
{% endfor %}
</ul>
{% if not ismod() %}
</noscript>
{% else %}
</span>
{% endif %}
{% endmacro %}
{%macro video_embed_btn(lectureid) %}
<a class="btn btn-default" id="embedcodebtn" data-container="body" data-toggle="popover" data-placement="bottom">
<span>Einbetten</span>
</a>
<script>
{% set embedcode = '<iframe width="700" height="394" src="'+url_for('embed', id=lectureid, _external=True)+'" frameborder="0" allowfullscreen="true"></iframe>' %}
$('#embedcodebtn').popover(
{
html:true,
title:'Einbettcode',
content:'<span><input type="text" onclick="this.select()" value="{{embedcode}}"></span>'
}
)
</script>
{% endmacro %}
{% macro lecture_list_item(lecture,videos,global_permissions) %}
<li class="list-group-item" id="lecture-{{lecture.id}}">
<div class="row">
<div style="background-image: url('{% if not lecture.titlefile %}{{url_for('static',filename='no-thumbnail.png')}}{% else %}{{ config.VIDEOPREFIX }}/{{lecture.titlefile}}'){% endif %}" class="col-sm-2 col-xs-12 thumbnailimg">
{% if not videos|length is equalto 0 %}
<a href="{{url_for('lecture', id=lecture.id)}}">
<span class="glyphicon glyphicon-play-circle playpreviewbtn"></span>
</a>
{% endif %}
</div>
<span class="col-sm-3 col-xs-12">
<ul class="list-unstyled">
<li>{{ moderator_editor(['lectures',lecture.id,'title'], lecture.title) }}</li>
{% if lecture.speaker or ismod() %}<li>Gehalten von {{ moderator_editor(['lectures',lecture.id,'speaker'], lecture.speaker) }}</li>{% endif %}
<li>{{ moderator_editor(['lectures',lecture.id,'time'], lecture.time) }} </li>
<li>Dauer: {{ moderator_editor(['lectures',lecture.id,'duration'], lecture.duration) }} min</li>
{% if ismod() %}
<li>ID: <a href="{{url_for('course',handle=lecture.course.handle)}}#lecture-{{lecture.id}}">{{lecture.id}}</a></i>
{% endif %}
</ul>
</span>
<span class="col-sm-3 col-xs-12">
<ul class="list-unstyled">
<li>{{ moderator_editor(['lectures',lecture.id,'comment'], lecture.comment) }}</li>
{% if ismod() %}
<li>{{ moderator_editor(['lectures',lecture.id,'internal'], lecture.internal) }}</li>
<li>Sichtbar: {{ moderator_checkbox(['lectures',lecture.id,'visible'], lecture.visible) }}</li>
<li>Hörsaal: {{ moderator_editor(['lectures',lecture.id,'place'], lecture.place) }} </li>
{% endif %}
</ul>
</span>
<div class="col-sm-4 col-xs-12">
<ul class="list-inline">
<li class="dropdown">
{{ video_download_btn(videos) }}
</li>
<li class="pull-right">
{{ moderator_permissioneditor('lecture', lecture.id, lecture.perm, global_permissions) }}
</li>
<li class="pull-right">
{{ moderator_delete(['lectures',lecture.id,'deleted']) }}
</li>
</ul>
</div>
</div>
</li>
{% endmacro %}
{% macro moderator_editor (path,value) %}
{% if ismod() %}
<span class="moderator_editor" data-path="{{path|join('.')}}" >
<a class="moderator_editor_sign btn btn-default" title="{{path|join('.')}}" data-toggle="tooltip" tabindex="0" style="padding: 3px; margin-right: 5px;">
<span class="glyphicon glyphicon-pencil"></span>
</a>
<span class="moderator_editor_value">{{ value|safe }}</span>
</span>
{% else %}
{{value|fixnl|safe}}
{% endif %}
{% endmacro %}
{% macro moderator_checkbox (path,value) %}
{% if ismod() %}
<input title="{{path|join('.')}}" data-toggle="tooltip" type="checkbox" data-path="{{path|join('.')}}" {% if value %} checked {% endif %} onchange="moderator.editor.changeboxclick(this)"/>
{% endif %}
{% endmacro %}
{% macro moderator_delete (path) %}
{% if ismod() %}
<button class="btn btn-default" style="background-color: red;" data-path="{{path|join('.')}}" onclick="moderator.editor.deletebtnclick(this)">
<span class="glyphicon glyphicon-trash"></span>
</button>
{% endif %}
{% endmacro %}
{% macro moderator_permissioneditor(type,id,perm,global_permissions) %}
{% set tmp = global_permissions.extend(perm) %}
{% set permdescription = perm|permdescr %}
{% set permlogos = '' %}
{% if permdescription[0] == 'public' %}
{% set permlogos = '<span class="fa fa-globe" aria-hidden="true"></span>' %}
{% endif %}
{% if permdescription[0] == 'password' %}
{% set permlogos = '<span class="fa fa-lock" aria-hidden="true"></span>' %}
{% endif %}
{% if permdescription[0] == 'l2p' %}
{% set permlogos = '<span class="fa" aria-hidden="true" style="width: 12px; height: 14px; background-size: cover; background-image: url(\'/static/l2p-logo.gif\');"></span>' %}
{% endif %}
{% if permdescription[0] == 'rwth' %}
{% set permlogos = '<span class="fa" aria-hidden="true" style="width: 25px; height: 20px; background-size: cover; background-image: url(\'/static/rwth.png\');"></span>' %}
{% endif %}
{% if permdescription[0] == 'fsmpi' %}
{% set permlogos = '<span class="fa" aria-hidden="true" style="width: 25px; height: 20px; background-size: cover; background-image: url(\'/static/fsmpi.png\');"></span>' %}
{% endif %}
{% if ismod() %}
<button class="btn btn-default modmoderator_permissioneditor" data-type="{{ type }}" data-id="{{ id }}">
{{ permlogos|safe }}
</button>
{% else %}
<span title="{{permdescription[1]}}">
{{ permlogos|safe }}
</span>
{% endif %}
{% endmacro %}
{% macro vtttime(time) %}{{ '%02d:%02d:%02d.000'|format( time//3600, (time//60)%60, time%60) }}{% endmacro %}