Navigation Menu

Skip to content

Commit

Permalink
Merge branch '3.0.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenrua committed Jun 17, 2019
2 parents 1d629ae + 480c258 commit 63f4bf2
Show file tree
Hide file tree
Showing 16 changed files with 197 additions and 38 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Expand Up @@ -4,6 +4,10 @@ Web version of the changelog in http://pumukit.org/pmk-2-x-release-archive/
To get the diff for a specific change, go to https://github.com/campusdomar/PuMuKIT2/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/campusdomar/PuMuKIT2/compare/2.0.0...2.1.0-rc1

## [3.0.0](https://github.com/campusdomar/PuMuKIT2/compare/3.0.0...2.6.0) (2019-06-10)
- Update to PHP technology stack (PHP7, Symfony 3.4...)
- Bugfixing.

## [2.6.0](https://github.com/campusdomar/PuMuKIT2/compare/2.6.0...2.5.0) (2019-04-02)
- Added custom columns configuration at UNESCO catalogue.
- Bugfixing.
Expand Down
3 changes: 3 additions & 0 deletions app/config/config.yml
Expand Up @@ -93,6 +93,9 @@ doctrine_mongodb:
personal:
class: Pumukit\CoreBundle\Filter\PersonalFilter
enabled: false
microsite:
class: Pumukit\CoreBundle\Filter\MicrositeFilter
enabled: false


# Swiftmailer Configuration
Expand Down
4 changes: 4 additions & 0 deletions src/Pumukit/BasePlayerBundle/Resources/config/services.xml
Expand Up @@ -27,6 +27,10 @@
<argument>%pumukit.intro%</argument>
</service>

<service id="pumukit_baseplayer.player_service" class="Pumukit\BasePlayerBundle\Services\PlayerService">
<argument type="service" id="router" />
</service>

<service id="pumukit_baseplayer.useragent_parser" class="Pumukit\BasePlayerBundle\Services\UserAgentParserService">
</service>
</services>
Expand Down
62 changes: 62 additions & 0 deletions src/Pumukit/BasePlayerBundle/Services/PlayerService.php
@@ -0,0 +1,62 @@
<?php

namespace Pumukit\BasePlayerBundle\Services;

use Pumukit\SchemaBundle\Document\MultimediaObject;
use Symfony\Bundle\FrameworkBundle\Routing\Router;

class PlayerService
{
/**
* @var Router
*/
private $router;

/**
* PlayerService constructor.
*
* @param Router $router
*/
public function __construct(Router $router)
{
$this->router = $router;
}

/**
* @param MultimediaObject $multimediaObject
*
* @return mixed
*/
public function getPublicControllerPlayer(MultimediaObject $multimediaObject)
{
$url = $this->router->generate('pumukit_videoplayer_index', ['id' => $multimediaObject->getId()]);
$url = $this->cleanUrl($url);
$endpoint = $this->router->match($url);

return $endpoint['_controller'];
}

/**
* @param MultimediaObject $multimediaObject
*
* @return mixed
*/
public function getMagicControllerPlayer(MultimediaObject $multimediaObject)
{
$url = $this->router->generate('pumukit_videoplayer_magicindex', ['secret' => $multimediaObject->getSecret()]);
$url = $this->cleanUrl($url);
$endpoint = $this->router->match($url);

return $endpoint['_controller'];
}

/**
* @param $url
*
* @return mixed
*/
private function cleanUrl($url)
{
return str_replace('app_dev.php/', '', $url);
}
}
19 changes: 19 additions & 0 deletions src/Pumukit/CoreBundle/Filter/MicrositeFilter.php
@@ -0,0 +1,19 @@
<?php

namespace Pumukit\CoreBundle\Filter;

use Doctrine\ODM\MongoDB\Mapping\ClassMetadata;
use Doctrine\ODM\MongoDB\Query\Filter\BsonFilter;
use Pumukit\SchemaBundle\Document\MultimediaObject;

class MicrositeFilter extends BsonFilter
{
public function addFilterCriteria(ClassMetadata $targetDocument)
{
if (MultimediaObject::class === $targetDocument->reflClass->name) {
return ['tags.cod' => $this->getParameter('microsite_tag')];
}

return [];
}
}
Expand Up @@ -10,6 +10,7 @@
<th>{% trans %}Type{% endtrans %}</th>
<th>{% trans %}Name{% endtrans %}</th>
<th>{% trans %}Version{% endtrans %}</th>
<th>{% trans %}Commit{% endtrans %}</th>
<th>{% trans %}Tags{% endtrans %}</th>
<th>{% trans %}Description{% endtrans %}</th>
</tr>
Expand All @@ -20,6 +21,7 @@
<td>{{ item.type }}</td>
<td>{{ item.name }}</td>
<td><span class="label label-success">{{ item.version }}</span></td>
<td>{{ item.source.reference|slice(0, 9)|default('') }}</td>
<td>
{% if item.keywords is defined %}
{% for keyword in item.keywords %}
Expand All @@ -35,6 +37,7 @@
<td>{{ item.type }}</td>
<td>{{ item.name }}</td>
<td><span class="label label-success">{{ item.version }}</span></td>
<td>{{ item.source.reference|slice(0, 9)|default('') }}</td>
<td>
{% if item.keywords is defined %}
{% for keyword in item.keywords %}
Expand Down
Expand Up @@ -1328,6 +1328,15 @@ private function modifyBroadcastGroups(MultimediaObject $multimediaObject, $type
}
}

if (EmbeddedBroadcast::TYPE_GROUPS !== $type) {
$embeddedBroadcast = $multimediaObject->getEmbeddedBroadcast();
if ($embeddedBroadcast->getGroups()) {
foreach ($embeddedBroadcast->getGroups() as $group) {
$embeddedBroadcast->removeGroup($group);
}
}
}

$dm->flush();
}

Expand Down
7 changes: 6 additions & 1 deletion src/Pumukit/NewAdminBundle/Controller/TrackController.php
Expand Up @@ -69,10 +69,15 @@ public function uploadAction(MultimediaObject $multimediaObject, Request $reques
$multimediaObject = $jobService->createTrackFromInboxOnServer($multimediaObject, $request->get('file'), $profile, $priority, $language, $description);
}
} catch (\Exception $e) {
$logger = $this->container->get('logger');
$logger->warning($e->getMessage());

$message = ('dev' === $this->getParameter('kernel.environment')) ? $e->getMessage() : 'The file is not a valid video or audio file';

return array(
'mm' => $multimediaObject,
'uploaded' => 'failed',
'message' => 'The file is not a valid video or audio file',
'message' => $message,
);
}

Expand Down
Expand Up @@ -8,6 +8,6 @@
var uploaded = '{{ uploaded }}';
if ('success' == uploaded) parent.success('{% trans %}New Track added.{% endtrans %}');
else parent.no_success('{{ message }}');
else parent.no_success('{{ message|escape('js') }}');
</script>
{% endif %}
Expand Up @@ -52,13 +52,13 @@
<strong>{% trans %}New Duration{% endtrans %}:</strong> {{ job.getNewDuration() }}
</li>
<li>
<strong>{% trans %}Initial Time{% endtrans %}:</strong> {{ job.getTimeini()|localizeddate('medium','medium',app.request.getLocale()) }}
<strong>{% trans %}Initial Time{% endtrans %}:</strong> {{ job.getTimeini()|localizeddate('medium','medium',app.request.getLocale()|default("en")) }}
</li>
<li>
<strong>{% trans %}Start Time{% endtrans %}:</strong> {{ job.getTimestart()|localizeddate('medium','medium',app.request.getLocale()) }}
<strong>{% trans %}Start Time{% endtrans %}:</strong> {{ job.getTimestart()|localizeddate('medium','medium',app.request.getLocale()|default("en")) }}
</li>
<li>
<strong>{% trans %}End Time{% endtrans %}:</strong> {{ job.getTimeend()|localizeddate('medium','medium',app.request.getLocale()) }}
<strong>{% trans %}End Time{% endtrans %}:</strong> {{ job.getTimeend()|localizeddate('medium','medium',app.request.getLocale()|default("en")) }}
</li>
<li>
<strong>{% trans %}Command{% endtrans %}:</strong>
Expand Down
Expand Up @@ -62,6 +62,11 @@ protected function completeMultimediaObject(MultimediaObject $multimediaObject,
}
$multimediaObject->setProperty('opencastinvert', boolval($invert));

if ($language) {
$parsedLocale = \Locale::parseLocale($language);
$multimediaObject->setProperty('opencastlanguage', $parsedLocale['language']);
}

$media = $opencastImportService->getMediaPackageField($mediaPackage, 'media');
$tracks = $opencastImportService->getMediaPackageField($media, 'track');
if (isset($tracks[0])) {
Expand Down
@@ -1,23 +1,27 @@
<!-- Filter -->
{% set criteria = app.session.get('admin/opencast/criteria') %}
<div class="well">
<form class="form-horizontal" id="filter_mediapackages" action="{{ path('pumukitopencast') }}" method="get">
<form class="form-horizontal" id="filter_mediapackages" action="{{ path('pumukitopencast') }}" method="get">
<div class="panel panel-default" style="margin-bottom:10px">
<div class="panel-heading" role="tab" id="headingSearch">
<h2 class="panel-title">
{% trans %}Search{% endtrans %}
</h2>
</div>

<fieldset>
<legend hidden>{% trans %}Search{% endtrans %}</legend>
<h2>{% trans %}Search{% endtrans %}</h2>
<div class="form-group">
<label for="filters_name" class="col-md-2 control-label">{% trans %}Name{% endtrans %}:</label>
{% set criteria = app.session.get('admin/opencast/criteria') %}
<div class="col-md-10">
<input type="text" class="reset form-control" name="criteria[name]" id="filters_name" value="{{ criteria['name']|default("") }}">
</div>
</div>
</fieldset>
<div class="panel-body">
<label for="filters_name" class="control-label">{% trans %}Name{% endtrans %}:</label>
<input type="text" class="reset form-control" name="criteria[name]" id="filters_name" value="{{ criteria['name']|default("") }}">
</div>

<div class="text-right">
<input class="btn btn-default btn-raised" onclick="window.location.href='?criteria[reset]=true'" type="button" value="{% trans %}reset{% endtrans %}">
<input class="btn btn-pumukit btn-raised" type="submit" name="filter" value="{% trans %}filter{% endtrans %}">
</div>
</div>

</form>
</div>
<div class="row">
<div class="col-md-6">
<input class="btn btn-default btn-raised" onclick="window.location.href='?criteria[reset]=true'" type="button" value="{% trans %}reset{% endtrans %}">
</div>
<div class="col-md-6">
<input class="btn btn-pumukit btn-raised" type="submit" name="filter" value="{% trans %}filter{% endtrans %}">
</div>
</div>
</form>
</div>
31 changes: 20 additions & 11 deletions src/Pumukit/OpencastBundle/Services/OpencastImportService.php
Expand Up @@ -129,7 +129,7 @@ public function importRecordingFromMediaPackage($mediaPackage, $invert = false,

$media = $this->getMediaPackageField($mediaPackage, 'media');
$tracks = $this->getMediaPackageField($media, 'track');
if (isset($tracks[0])) {
if (is_array($tracks) && isset($tracks[0])) {
// NOTE: Multiple tracks
$limit = count($tracks);
for ($i = 0; $i < $limit; ++$i) {
Expand All @@ -142,13 +142,22 @@ public function importRecordingFromMediaPackage($mediaPackage, $invert = false,

$attachments = $this->getMediaPackageField($mediaPackage, 'attachments');
$attachment = $this->getMediaPackageField($attachments, 'attachment');
if (isset($attachment[0])) {
if (is_array($attachment) && isset($attachment[0])) {
$limit = count($attachment);
for ($j = 0; $j < $limit; ++$j) {
$multimediaObject = $this->createPicFromAttachment($attachment, $multimediaObject, $j);
$multimediaObject = $this->createPicFromAttachment($attachment, $multimediaObject, $j, 'presenter/player+preview');
}

if (0 === $multimediaObject->getPics()) {
for ($j = 0; $j < $limit; ++$j) {
$multimediaObject = $this->createPicFromAttachment($attachment, $multimediaObject, $j, 'presenter/search+preview');
}
}
} else {
$multimediaObject = $this->createPicFromAttachment($attachment, $multimediaObject);
$multimediaObject = $this->createPicFromAttachment($attachment, $multimediaObject, null, 'presenter/player+preview');
if (0 === $multimediaObject->getPics()) {
$multimediaObject = $this->createPicFromAttachment($attachment, $multimediaObject, null, 'presenter/search+preview');
}
}

$tagRepo = $this->dm->getRepository(Tag::class);
Expand Down Expand Up @@ -178,7 +187,7 @@ public function getOpencastUrls($opencastId = '')
}
$media = $this->getMediaPackageField($archiveMediaPackage, 'media');
$tracks = $this->getMediaPackageField($media, 'track');
if (isset($tracks[0])) {
if (is_array($tracks) && isset($tracks[0])) {
// NOTE: Multiple tracks
$limit = count($tracks);
for ($i = 0; $i < $limit; ++$i) {
Expand Down Expand Up @@ -238,7 +247,7 @@ public function createTrackFromMediaPackage($mediaPackage, MultimediaObject $mul

$tagsArray = $this->getMediaPackageField($opencastTrack, 'tags');
$tags = $this->getMediaPackageField($tagsArray, 'tag');
if (isset($tags[0])) {
if (is_array($tags) && isset($tags[0])) {
// NOTE: Multiple tags
$limit = count($tags);
for ($i = 0; $i < $limit; ++$i) {
Expand Down Expand Up @@ -311,7 +320,7 @@ public function createTrackFromMediaPackage($mediaPackage, MultimediaObject $mul
return $track;
}

private function createPicFromAttachment($attachment, MultimediaObject $multimediaObject, $index = null)
private function createPicFromAttachment($attachment, MultimediaObject $multimediaObject, $index = null, $targetType = 'presenter/search+preview')
{
if ($attachment) {
if (null === $index) {
Expand All @@ -320,7 +329,7 @@ private function createPicFromAttachment($attachment, MultimediaObject $multimed
$itemAttachment = $attachment[$index];
}
$type = $this->getMediaPackageField($itemAttachment, 'type');
if ('presenter/search+preview' == $type) {
if ($targetType == $type) {
$tags = $this->getMediaPackageField($itemAttachment, 'tags');
$type = $this->getMediaPackageField($itemAttachment, 'type');
$url = $this->getMediaPackageField($itemAttachment, 'url');
Expand Down Expand Up @@ -377,7 +386,7 @@ public function importTracksFromMediaPackage($mediaPackage, MultimediaObject $mu
{
$media = $this->getMediaPackageField($mediaPackage, 'media');
$tracks = $this->getMediaPackageField($media, 'track');
if (isset($tracks[0])) {
if (is_array($tracks) && isset($tracks[0])) {
$limit = count($tracks);
for ($i = 0; $i < $limit; ++$i) {
if (false === stripos($tracks[$i]['url'], 'rtmp:')) {
Expand Down Expand Up @@ -408,7 +417,7 @@ public function syncTracks(MultimediaObject $multimediaObject, $mediaPackage = n

$media = $this->getMediaPackageField($mediaPackage, 'media');
$tracks = $this->getMediaPackageField($media, 'track');
if (isset($tracks[0])) {
if (is_array($tracks) && isset($tracks[0])) {
// NOTE: Multiple tracks
$limit = count($tracks);
for ($i = 0; $i < $limit; ++$i) {
Expand Down Expand Up @@ -459,7 +468,7 @@ public function syncPics(MultimediaObject $multimediaObject, $mediaPackage = nul

$attachments = $this->getMediaPackageField($mediaPackage, 'attachments');
$attachment = $this->getMediaPackageField($attachments, 'attachment');
if (isset($attachment[0])) {
if (is_array($attachment) && isset($attachment[0])) {
$limit = count($attachment);
for ($i = 0; $i < $limit; ++$i) {
$pic = $attachment[$i];
Expand Down
10 changes: 9 additions & 1 deletion src/Pumukit/OpencastBundle/Services/OpencastService.php
Expand Up @@ -232,7 +232,15 @@ public function getMediaPackageThumbnail($mediaPackage)
continue;
}

if (!in_array($attachment['type'], array('presenter/search+preview', 'presentation/search+preview'))) {
if (!in_array(
$attachment['type'],
array(
'presenter/search+preview',
'presentation/search+preview',
'presenter/player+preview',
'presentation/player+preview',
))
) {
continue;
}

Expand Down

0 comments on commit 63f4bf2

Please sign in to comment.