mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
Merge pull request #1911 from lostdalek/feature/pym-integration
Pym.js integration for embed medias
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
"bootstrap-sass": "v2.3.2.2",
|
||||
"jquery.lazyload": "~1.9.7",
|
||||
"jquery-treeview": "~1.4.2",
|
||||
"alchemy-embed-medias": "~0.3.2"
|
||||
"html5shiv": "^3.7.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"mocha": "latest",
|
||||
|
@@ -35,7 +35,7 @@
|
||||
"php": ">=5.5.9",
|
||||
"ext-intl": "*",
|
||||
"alchemy-fr/tcpdf-clone": "~6.0",
|
||||
"alchemy/embed-bundle": "^0.3.2",
|
||||
"alchemy/embed-bundle": "^0.4.1",
|
||||
"alchemy/geonames-api-consumer": "~0.1.0",
|
||||
"alchemy/google-plus-api-client": "~0.6.2",
|
||||
"alchemy/mediavorus": "^0.4.4",
|
||||
|
16
composer.lock
generated
16
composer.lock
generated
@@ -4,8 +4,8 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "2d3272f471d3cf0eb5c7d44c46bc7145",
|
||||
"content-hash": "f3050bb8fb62cb6b00e3799a8e5c6936",
|
||||
"hash": "19164414a7dd4683f8d99d828456fb19",
|
||||
"content-hash": "b908509f786ac7437d41055fbd021bef",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alchemy-fr/tcpdf-clone",
|
||||
@@ -132,16 +132,16 @@
|
||||
},
|
||||
{
|
||||
"name": "alchemy/embed-bundle",
|
||||
"version": "v0.3.3",
|
||||
"version": "v0.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/alchemy-fr/embed-bundle.git",
|
||||
"reference": "2eedc22e0030f6b4a166de2b93ffb108193c43dd"
|
||||
"reference": "edbbb7f0b9de199d5a67ce19fbc41bb94168352d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/alchemy-fr/embed-bundle/zipball/2eedc22e0030f6b4a166de2b93ffb108193c43dd",
|
||||
"reference": "2eedc22e0030f6b4a166de2b93ffb108193c43dd",
|
||||
"url": "https://api.github.com/repos/alchemy-fr/embed-bundle/zipball/edbbb7f0b9de199d5a67ce19fbc41bb94168352d",
|
||||
"reference": "edbbb7f0b9de199d5a67ce19fbc41bb94168352d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require-dev": {
|
||||
@@ -179,10 +179,10 @@
|
||||
],
|
||||
"description": "Embed resources bundle",
|
||||
"support": {
|
||||
"source": "https://github.com/alchemy-fr/embed-bundle/tree/v0.3.3",
|
||||
"source": "https://github.com/alchemy-fr/embed-bundle/tree/v0.4.1",
|
||||
"issues": "https://github.com/alchemy-fr/embed-bundle/issues"
|
||||
},
|
||||
"time": "2016-06-14 13:51:50"
|
||||
"time": "2016-06-16 09:35:17"
|
||||
},
|
||||
{
|
||||
"name": "alchemy/geonames-api-consumer",
|
||||
|
@@ -14,9 +14,12 @@ use Alchemy\Phrasea\Application\Helper\EntityManagerAware;
|
||||
use Alchemy\Phrasea\Application\Helper\SearchEngineAware;
|
||||
use Alchemy\Phrasea\Controller\Controller;
|
||||
use Alchemy\Phrasea\Controller\RecordsRequest;
|
||||
use Alchemy\Phrasea\Model\Entities\BasketElement;
|
||||
use Alchemy\Phrasea\Model\Repositories\BasketElementRepository;
|
||||
use Alchemy\Phrasea\Model\Repositories\StoryWZRepository;
|
||||
use Alchemy\Phrasea\SearchEngine\SearchEngineOptions;
|
||||
use Alchemy\Phrasea\Twig\Fit;
|
||||
use Alchemy\Phrasea\Twig\PhraseanetExtension;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
@@ -68,15 +71,13 @@ class RecordController extends Controller
|
||||
$options
|
||||
);
|
||||
|
||||
$currentRecord = $this->getContainerResult($record);
|
||||
|
||||
if ($record->is_from_reg()) {
|
||||
$train = $this->render('prod/preview/reg_train.html.twig', ['record' => $record]);
|
||||
}
|
||||
|
||||
if ($record->is_from_basket() && $reloadTrain) {
|
||||
} else if ($record->is_from_basket() && $reloadTrain) {
|
||||
$train = $this->render('prod/preview/basket_train.html.twig', ['record' => $record]);
|
||||
}
|
||||
|
||||
if ($record->is_from_feed()) {
|
||||
} else if ($record->is_from_feed()) {
|
||||
$train = $this->render('prod/preview/feed_train.html.twig', ['record' => $record]);
|
||||
}
|
||||
|
||||
@@ -102,6 +103,7 @@ class RecordController extends Controller
|
||||
'baskets' => $record->get_container_baskets($this->getEntityManager(), $this->getAuthenticatedUser()),
|
||||
]),
|
||||
"current" => $train,
|
||||
"record" => $currentRecord,
|
||||
"history" => $this->render('prod/preview/short_history.html.twig', [
|
||||
'record' => $record,
|
||||
]),
|
||||
@@ -216,4 +218,38 @@ class RecordController extends Controller
|
||||
{
|
||||
return $this->app['repo.story-wz'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \record_preview $recordContainer
|
||||
* @return array
|
||||
*/
|
||||
private function getContainerResult(\record_preview $recordContainer)
|
||||
{
|
||||
/* @var $recordPreview \media_subdef */
|
||||
$helpers = new PhraseanetExtension($this->app);
|
||||
|
||||
$recordData = [
|
||||
'databoxId' => $recordContainer->getBaseId(),
|
||||
'id' => $recordContainer->getId(),
|
||||
'isGroup' => $recordContainer->isStory(),
|
||||
'url' => (string)$helpers->getThumbnailUrl($recordContainer),
|
||||
];
|
||||
$userHaveAccess = $this->app->getAclForUser($this->getAuthenticatedUser())->has_access_to_subdef($recordContainer, 'preview');
|
||||
if ($userHaveAccess) {
|
||||
$recordPreview = $recordContainer->get_preview();
|
||||
} else {
|
||||
$recordPreview = $recordContainer->get_thumbnail();
|
||||
}
|
||||
|
||||
$recordData['preview'] = [
|
||||
'width' => $recordPreview->get_width(),
|
||||
'height' => $recordPreview->get_height(),
|
||||
'url' => $this->app->url('alchemy_embed_view', [
|
||||
'url' => (string)($this->getAuthenticatedUser() ? $recordPreview->get_url() : $recordPreview->get_permalink()->get_url()),
|
||||
'autoplay' => false
|
||||
])
|
||||
];
|
||||
|
||||
return $recordData;
|
||||
}
|
||||
}
|
||||
|
@@ -34,6 +34,7 @@
|
||||
"postinstall": "./node_modules/.bin/gulp install;"
|
||||
},
|
||||
"dependencies": {
|
||||
"phraseanet-production-client": "~0.19.0"
|
||||
"alchemy-embed-medias": "^0.4.3",
|
||||
"phraseanet-production-client": "~0.20.0"
|
||||
}
|
||||
}
|
||||
|
@@ -26,7 +26,7 @@ gulp.task('build', ['build-vendors'], function(){
|
||||
|
||||
// standalone vendors used across application
|
||||
gulp.task('build-vendors', [
|
||||
'build-alchemy-embed',
|
||||
'build-alchemy-embed-medias',
|
||||
'build-phraseanet-production-client',
|
||||
'build-bootstrap',
|
||||
'build-html5shiv',
|
||||
|
@@ -4,25 +4,22 @@ var utils = require('../../utils.js');
|
||||
var debugMode = false;
|
||||
|
||||
// for dev purposes
|
||||
gulp.task('copy-alchemy-embed-debug', function(){
|
||||
gulp.task('copy-alchemy-embed-medias-debug', function(){
|
||||
debugMode = true;
|
||||
gulp.start('copy-alchemy-embed');
|
||||
gulp.start('copy-alchemy-embed-medias');
|
||||
});
|
||||
|
||||
gulp.task('copy-alchemy-embed', function(){
|
||||
gulp.task('copy-alchemy-embed-medias', function(){
|
||||
// copy all dist folder:
|
||||
if( debugMode === true) {
|
||||
return gulp.src('vendor/alchemy/embed-bundle/dist/**/*')
|
||||
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));
|
||||
}
|
||||
return gulp.src(config.paths.vendors + 'alchemy-embed-medias/dist/**/*')
|
||||
|
||||
return gulp.src('node_modules/alchemy-embed-medias/dist/**/*')
|
||||
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));
|
||||
});
|
||||
gulp.task('watch-alchemy-embed-js', function() {
|
||||
gulp.task('watch-alchemy-embed-medias-js', function() {
|
||||
debugMode = true;
|
||||
// in dev mode, watch composer's vendor path:
|
||||
return gulp.watch('vendor/alchemy/embed-bundle/dist/**/*', ['copy-alchemy-embed']);
|
||||
return gulp.watch('node_modules/alchemy-embed-medias/dist/**/*', ['copy-alchemy-embed-medias']);
|
||||
});
|
||||
gulp.task('build-alchemy-embed-medias', function(){
|
||||
gulp.start('copy-alchemy-embed-medias');
|
||||
});
|
||||
gulp.task('build-alchemy-embed', function(){
|
||||
gulp.start('copy-alchemy-embed');
|
||||
});
|
@@ -29,7 +29,7 @@ gulp.task('watch-js', function(){
|
||||
// gulp.start('watch-permaview');
|
||||
gulp.start('watch-setup-js');
|
||||
gulp.start('watch-authentication-js');
|
||||
gulp.start('watch-alchemy-embed-js');
|
||||
gulp.start('watch-alchemy-embed-medias-js');
|
||||
gulp.start('watch-phraseanet-production-client-js');
|
||||
});
|
||||
|
||||
|
@@ -10,24 +10,23 @@
|
||||
{% endif %}
|
||||
|
||||
{% if record_type == 'VIDEO_MP4' or record_type == 'VIDEO_FLV' %}
|
||||
<div class="videoTips" data-original-width="{{original_w}}" data-original-height="{{original_h}}" data-kind="video">
|
||||
|
||||
<iframe width="100%" height="100%"
|
||||
src="{{ url('alchemy_embed_view', {url: url|trim, autoplay: autoplay|default('false') }) }}"
|
||||
frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
<div id="phraseanet-embed-frame" class="videoTips"
|
||||
data-original-width="{{original_w}}"
|
||||
data-original-height="{{original_h}}"
|
||||
data-kind="video"
|
||||
data-src="{{ url('alchemy_embed_view', {url: url|trim, autoplay: autoplay|default('false') }) }}"></div>
|
||||
{% elseif record_type == 'FLEXPAPER' %}
|
||||
<div class="documentTips" data-original-width="{{original_w}}" data-original-height="{{original_h}}" data-kind="document">
|
||||
<iframe width="100%" height="100%"
|
||||
src="{{ url('alchemy_embed_view', {url: url|trim, autoplay: autoplay|default('false') }) }}"
|
||||
frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
<div id="phraseanet-embed-frame" class="documentTips"
|
||||
data-original-width="{{original_w}}"
|
||||
data-original-height="{{original_h}}"
|
||||
data-kind="document"
|
||||
data-src="{{ url('alchemy_embed_view', {url: url|trim, autoplay: autoplay|default('false') }) }}"></div>
|
||||
{% elseif record_type == 'AUDIO_MP3' %}
|
||||
<div class="audioTips" data-original-width="{{original_w}}" data-original-height="{{original_h}}" data-kind="audio">
|
||||
<iframe width="100%" height="100%"
|
||||
src="{{ url('alchemy_embed_view', {url: url|trim, autoplay: autoplay|default('false') }) }}"
|
||||
frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
<div id="phraseanet-embed-frame" class="audioTips"
|
||||
data-original-width="{{original_w}}"
|
||||
data-original-height="{{original_h}}"
|
||||
data-kind="audio"
|
||||
data-src="{{ url('alchemy_embed_view', {url: url|trim, autoplay: autoplay|default('false') }) }}"></div>
|
||||
{% else %}
|
||||
{% set fit_size = fitIn(
|
||||
{"width":original_w, "height":original_h},
|
||||
|
@@ -22,13 +22,22 @@
|
||||
<h1>{{ local_title }}</h1>
|
||||
|
||||
<div class="preview">
|
||||
<iframe width="100%" height="{{ subdef.get_height() }}"
|
||||
src="{{ recordUrl }}"
|
||||
frameborder="0" allowfullscreen></iframe>
|
||||
<div id="phraseanet-embed-frame"></div>
|
||||
</div>
|
||||
|
||||
<div class="caption">
|
||||
{% include 'common/caption.html.twig' %}
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="/assets/production/permaview{% if not app.debug %}.min{% endif %}.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
window.permApp = PermaviewApplication.bootstrap({
|
||||
lang: "{{ app.locale }}",
|
||||
baseUrl: '{{ app['request'].getUriForPath('/') }}',
|
||||
basePath: '{{ app.request.basePath|e('js') }}',
|
||||
recordUrl: '{{ url('alchemy_embed_view', {url: recordUrl|trim, autoplay: autoplay|default('false') }) }}',
|
||||
debug: {% if app.debug == true %}true{% else %}false{% endif %}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
Reference in New Issue
Block a user