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

course.html

Blame
  • Forked from Video AG Infrastruktur / website
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    course.html 8.32 KiB
    {% from 'macros.html' import lecture_list_item %}
    {% from 'macros.html' import moderator_editor %}
    {% from 'macros.html' import moderator_delete %}
    {% from 'macros.html' import moderator_checkbox %}
    {% from 'macros.html' import preview %}
    {% from 'macros.html' import moderator_permissioneditor %}
    
    {% extends "base.html" %}
    {% block title %}- {{course.title}}{% endblock %}
    {% block content %}
    <div class="card m-1">
    	<div class="card-header">
    		<span class="card-title">
    			{{ moderator_editor(['courses',course.id,'title'], course.title)}}
    			{% if ismod() %}
    				<i>(<a href={{ url_for('course', id=course.id) }}>{{course.id}}</a>)</i>
    			{% endif %}
    		</span>
    		<ul class="float-right list-inline">
    			<li class="list-inline-item">{{ moderator_delete(['courses',course.id,'deleted']) }}</li>
    			<li class="list-inline-item">{{ moderator_permissioneditor('course',course.id,course.perm, global_permissions) }}</li>
    		</ul>
    	</div>
    	<div class="row card-body">
    		<div class="col-12">
    			<table class="table-top-aligned table-condensed">
    				<tbody>
    					{% if ismod() %}
    					<tr><td>Semester:</td><td>{{ moderator_editor(['courses',course.id,'semester'], course.semester) }}</td></tr>
    					{% else %}
    					<tr><td>Semester:</td><td>{{ course.semester|semester(long=True) }}</td></tr>
    					{% endif %}
    					<tr><td>Veranstalter:</td><td>{{ moderator_editor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
    					<tr><td>Bemerkungen:</td><td>{{ moderator_editor(['courses',course.id,'description'], course.description) }}</td></tr>
    				</tbody>
    			</table>
    		</div>
    	{% if ismod() %}
    		<div class="col-12" style="margin-top: 20px">
    			<table class="table-condensed table-top-aligned">
    				<tbody>
    					<tr><td>Sichtbar:</td><td>{{ moderator_checkbox(['courses',course.id,'visible'], course.visible) }}</td></tr>
    					<tr><td>Gelistet:</td><td>{{ moderator_checkbox(['courses',course.id,'listed'], course.listed) }}</td></tr>
    					<tr><td>Nicht im Drehplan:</td><td>{{ moderator_checkbox(['courses',course.id,'external'], course.external) }}</td></tr>
    					<tr><td>Videos downloadbar:</td><td>{{ moderator_checkbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
    					<tr><td>Videos automatisch verschieben:</td><td>{{ moderator_checkbox(['courses',course.id,'autopublish'], course.autopublish) }}</td></tr>
    					<tr><td>Videos automatisch sichtbar:</td><td>{{ moderator_checkbox(['courses',course.id,'autovisible'], course.autovisible) }}</td></tr>
    					<tr><td>Kapitel auf Kursseite:</td><td>{{ moderator_checkbox(['courses',course.id,'coursechapters'], course.coursechapters) }}</td></tr>
    					<tr><td>Short:</td><td>{{ moderator_editor(['courses',course.id,'short'], course.short) }}</td></tr>
    					<tr><td>Handle:</td><td>{{ moderator_editor(['courses',course.id,'handle'], course.handle) }}</td></tr>
    					<tr><td>Thema:</td><td>{{ moderator_editor(['courses',course.id,'subject'], course.subject) }}</td></tr>
    					<tr><td>Zuständig:</td><td>
    						<select id="responsible-select" multiple="multiple">
    							{% for user in responsible %}
    							<option value="{{ user.id }}"{% if user.responsible %} selected="selected"{% endif %}>{{ user.realname }}</option>
    							{% endfor %}
    						</select>
    					</td></tr>
    					<tr><td>Interne Bemerkungen:</td><td>{{ moderator_editor(['courses',course.id,'internal'], course.internal) }}</td></tr>
    				</tbody>
    			</table>
    		</div>
    	{% endif %}
    	</div>
    </div>
    	
    {% if ismod() %}
    <div class="card m-1">
    	<div class="card-header">
    		<a data-toggle="collapse" href="#statscard" class="plotlyresize"><span class="card-title">Statistiken</span></a>
    	</div>
    	<div class="card-body collapse out card-collapse" id="statscard">
    		<div class="row">
    			<div class="col-6 col-xs-12">
    				<p class="text-center">Zuschauer pro Tag</p>
    				<div class="plot-view" data-url="{{url_for('stats_viewsperday', req="course", param=course.id)}}"></div>
    			</div>
    			<div class="col-6 col-xs-12">
    				<p class="text-center">Zuschauer pro Termin</p>
    				<div class="plot-view" data-type="bar" data-url="{{url_for('stats_generic', req="lecture_views", param=course.id)}}"></div>
    			</div>
    		</div>
    	</div>
    </div>
    {% endif %}
    
    <div class="card m-1">
    	<div class="card-header">
    		<span class="card-title">Videos</span>
    		{% if ismod() %}
    			<a class="btn btn-secondary" style="margin-right: 5px;" href="{{ url_for('create', table='lectures', time=datetime.now(), title='Noch kein Titel', visible='0', course_id=course.id, ref=url_for('course', id=course.id)) }}">Neuer Termin</a>
    			<a class="btn btn-secondary" style="margin-right: 5px;" href="{{url_for('list_import_sources', id=course['id'])}}">Campus Import</a>
    		{% endif %}
    		<ul class="list-inline float-right">
    			<li class="list-inline-item">
    				<a class="fa fa-rss-square" aria-hidden="true" href="{{url_for('rss_feed', handle=course.handle)}}" style="text-decoration: none"></a>
    			</li>
    		{% if ismod() %}
    			<li class="list-inline float-right">
    				<a class="fa fa-calendar" aria-hidden="true" href="{{url_for('ical_course', course=course.handle)}}" style="text-decoration: none"></a>
    			</li>
    		{% endif %}
    		</ul>
    	</div>
    	<ul class="list-group lectureslist">
    		{% for l in lectures %}
    			{{ lecture_list_item(l,videos|selectattr('lecture_id','equalto',l.id)|list,global_permissions,chapters=chapters|selectattr('lecture_id','equalto',l.id))}}
    		{% endfor %}
    	</ul>
    </div>
    {% if ismod() %}
    <div class="modal fade" id="editperm" tabindex="-1" role="dialog">
    	<div class="modal-dialog" role="document">
    		<div class="modal-content">
    			<div class="modal-header">
    				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    				<h4 class="modal-title">Zugriffsrechte</h4>
    			</div>
    			<div class="modal-body">
    				<div class="row" style="padding-left: 10px; padding-right: 10px;" data-id="-1" data-type="-1" id="editpermdiv">
    					<span>Es existieren folgende Zugriffsrechte:</span>
    					<select onchange="moderator.permissioneditor.selectpermission(this)" size="6" class="col-xs-12" id="permissionlist">
    					</select>
    					<select class="col-xs-12 authtype" onchange="moderator.permissioneditor.typechange(this)">
    						<option value="public">Öffentlich</option>
    						<option selected value="password">Passwort</option>
    						<option value="rwth">RWTH intern</option>
    						<option value="fsmpi">FSMPI intern</option>
    						<option value="l2p">L2P Lernraum</option>
    						<option value="none">Kein Zugriff</option>
    					</select>
    					<input class="col-xs-12 passwordinput authuser" type="text" placeholder="Benutzername">
    					<input class="col-xs-10 passwordinput authpassword" type="text" placeholder="Passwort">
    					<button class="col-xs-2 passwordinput authpgen" type="button" onclick="$('.authpassword',this.parentNode).val(moderator.permissioneditor.randompw());"><span class="fa fa-refresh" aria-hidden="true"></span></button>
    
    					<input class="col-xs-12 authl2p" type="text" placeholder="Lernraum" style="display: none;">
    
    					<button class="col-xs-4" onclick="moderator.permissioneditor.addbtnclick(this)">Add</button>
    					<button class="col-xs-4" onclick="moderator.permissioneditor.updatebtnclick(this)">Update</button>
    					<button class="col-xs-4" onclick="moderator.permissioneditor.delbtnclick(this)">Delete</button>
    
    
    				</div>
    			</div>
    		</div>
    	</div>
    </div>
    <script>
    {% if ismod() %}
    $('#responsible-select').multiselect({enableCaseInsensitiveFiltering: true,
    		maxHeight: 200, numberDisplayed: 5, nonSelectedText: 'Niemand',
    		nSelectedText: 'ausgewählt', allSelectedText: false,
    		onChange: function(option, checked, select) {
    			moderator.api.set_map('responsible', {{ course.id }}, option.val(), checked);
    		}})
    {% endif %}
    $.ajax({
    	method: "GET",
    	url: "{{url_for('stats_generic', req="lecture_views", param=course.id)}}",
    	dataType: "json",
    	error: function() {
    		var counter = $(".viewcounter");
    		for (var i=0; i<counter.length; i++) {
    			$(counter[i]).text("0");
    		}
    	},
    	success: function (traces) {
    		var dates={};
    		var t = traces[0];
    		if (!t.x) {
    			return;
    		}
    		for (var i=0; i<t.x.length; i++) {
    			dates[t.x[i]] = t.y[i];
    		}
    		var counter = $(".viewcounter");
    		for (var i=0; i<counter.length; i++) {
    			$(counter[i]).text(dates[$(counter[i]).data("lecturedate")]);
    		}
    		var counter = $(".viewcounter");
    		for (var i=0; i<counter.length; i++) {
    			if ($(counter[i]).text() == "loading...") {
    				$(counter[i]).text("0");
    			}
    		}
    	}
    });
    </script>
    {% endif %}
    {% endblock %}