1 {% extends "base.html" %}
2 {% load soundfiles panikdbtags %}
4 <h2>{{ episode.emission.title }} — {{ episode.title }}</h2>
5 <span><a href="../">Retourner à l'épisode</a></span>
11 <a class="big-friendly-button ready" href="#">Prêt !</a>
12 <a style="display: none;" class="big-friendly-button start-episode" href="#">Démarrer l'émission</a>
13 <a style="display: none;" class="big-friendly-button end-episode" href="#">Terminer l'émission</a>
14 <a style="display: none" class="big-friendly-button reset-episode" href="#">Réinitialiser</a>
15 <a style="display: none" class="big-friendly-button" id="pige-url" href="{{download_url}}">Télécharger depuis la pige</a>
18 <div style="display: none;">
19 <input type="text" id="ready" value="{{ready}}"/>
20 <input data-url="{% url 'episode-regie-marks' emission_slug=episode.emission.slug slug=episode.slug %}"
21 type="text" id="start_time" value="{{start_time}}">
22 <input type="text" id="end_time" value="{{end_time}}">
26 data-update-order-url="{% url 'episode-regie-update-order' emission_slug=episode.emission.slug slug=episode.slug %}"
28 {% for element in playlist %}
29 <tr data-element-id="{{element.id}}" data-shortcut="{{element.shortcut}}">
30 <td class="handle">⠿</td>
31 <td class="playlist-title">{{element.title}} <span class="shortcut">[{{element.shortcut}}]</span></td>
32 <td><audio src="{{element.sound.url}}" controls/></td>
33 <td>{{element.notes}}</td>
40 <h3>Ajouter à la playlist</h3>
41 <form id="add-playlist-elements-form" method="POST" action="." enctype="multipart/form-data">
51 #add-playlist-elements-form > label { display: none; }
55 function update_start_end() {
57 url: $('#start_time').data('url'),
58 data: {'start': $('#start_time').val(),
59 'end': $('#end_time').val()},
60 success: function(data, status, jqxhr) {
61 if (data.pige_download_url) {
62 $('#pige-url').attr('href', data.pige_download_url).show();
63 $('#pige-url').show();
65 $('#pige-url').hide();
71 $('.ready').on('click', function() {
73 $('.start-episode').show();
74 $('.end-episode').show();
75 $('#ready').val('ready');
79 $('#add-playlist-elements-form').on('panik:file-upload-complete', function() {
83 $('#playlist tbody').sortable({
85 update: function(event, ui) {
86 var new_order = Array();
87 $('#playlist tr').each(function(i, tr) {
88 new_order.push($(tr).data('element-id'));
91 url: $('#playlist').data('update-order-url'),
92 data: {'new-order': new_order}
96 $('.playlist-title').on('click', function() {
97 var audio = $(this).parent().find('audio')[0];
98 if (audio.paused === true) {
100 if ($('#ready').val() === 'ready' && $('#start_time').val() === "") {
101 $('.start-episode').trigger('click');
107 $(document).keypress(function(ev) {
108 $('[data-shortcut=' + ev.key + '] .playlist-title').trigger('click');
111 $('.start-episode').click(function() {
112 $('#start_time').val(Date.now());
114 $(this).addClass('button-done');
115 $('.reset-episode').show();
118 $('.end-episode').click(function() {
119 $('#end_time').val(Date.now());
121 $(this).addClass('button-done');
124 $('.reset-episode').click(function() {
126 $('.start-episode').hide();
127 $('.end-episode').hide();
129 $('#start_time').val('');
130 $('#end_time').val('');
132 $('a').removeClass('button-done');
136 $('audio').each(function(i, elem) {
137 elem.addEventListener('play', function() {
138 if ($('#ready').val() === 'ready' && $('#start_time').val() === "") {
139 $('.start-episode').trigger('click');
145 if ($('#ready').val() === 'ready') {
146 $('.ready').trigger('click');
148 if ($('#start_time').val() !== '') {
149 $('.start-episode').toggleClass('button-done');
150 $('.reset-episode').show();
152 if ($('#end_time').val() !== '') {
153 $('.end-episode').toggleClass('button-done');