Allowed multi translation for embedding, fixed autoplay option

This commit is contained in:
dedeibel 2017-12-10 18:02:48 +01:00
parent be515f5150
commit eed207f8df
6 changed files with 33 additions and 11 deletions

View file

@ -374,7 +374,13 @@ $(function() {
if(!originalsrc)
originalsrc = $iframe.attr('src');
var src = originalsrc + (autoplay ? '' : 'no-autoplay/');
var src = originalsrc;
if (! autoplay) {
if (src.slice(-1) !== '/') {
src += '/';
}
src += 'no-autoplay'
}
$iframe.attr({width: selected[0], height: selected[1]});
$iframe.attr({src: src});

View file

@ -315,9 +315,7 @@ try {
require('view/room.php');
}
// TODO use dynamic i18n parameter
// TODO change to no-autoplay query parameter?
else if(preg_match('@^embed/([^/]+)/(hd|sd|audio|slides)/(native|translated|translated2|stereo)(/no-autoplay)?$@', $route, $m))
else if(preg_match('@^embed/([^/]+)/(hd|sd|audio|slides)/(native|stereo|[^/]+)(/no-autoplay)?$@', $route, $m))
{
$_GET = array(
'room' => $m[1],

View file

@ -337,9 +337,12 @@ class Room
throw new NotFoundException('Selection '.$selection.' in Room '.$this->getSlug());
$translation_label = null;
if (substr($language, 0, strlen('native')) !== 'native') {
if (!$this->hasTranslation()) {
throw new NotFoundException('Translated Streams of Room '.$this->getSlug());
if ($language !== 'native' && $language !== 'stereo') {
if (! $this->hasTranslation()) {
throw new NotFoundException('Translated Streams of Room '. $this->getSlug());
}
if (! $this->isValidLanguage($language)) {
throw new NotFoundException('Selected translation');
}
$translation_label = $this->findTranslationLabel($language);

View file

@ -32,7 +32,9 @@ class Stream
public function isTranslated()
{
return !empty($this->getLanguage()) && $this->getLanguage() !== 'native';
return !empty($this->getLanguage()) &&
$this->getLanguage() !== 'native' &&
$this->getLanguage() !== 'stereo';
}
public function getVideoSize()

View file

@ -20,7 +20,7 @@
<div class="checkbox">
<label>
<input checked="checked" type="checkbox" id="autoplay"> Autoplay
<input checked="checked" type="checkbox" id="autoplay">Autoplay
</label>
</div>
</div>

View file

@ -1,11 +1,24 @@
<?php
$room = $conference->getRoom($_GET['room']);
if(!$room->hasEmbed())
throw new NotFoundException('Embedding is not enabled in this room');
$stream = $room->selectStream(
$_GET['selection'], $_GET['language']);
$selection = $_GET['selection'];
$language = $_GET['language'];
if ($language !== 'native' && $language !== 'stereo') {
if (! $room->hasTranslation()) {
throw new NotFoundException('Not translated');
}
if (! $room->isValidLanguage($language)) {
throw new NotFoundException('Language not found');
}
}
$stream = $room->selectStream($selection, $language);
echo $tpl->render(array(
'page' => 'embed',