Merge branch 'master' into PHRAS-3092_api-setmetadats-v3_master

This commit is contained in:
jygaulier
2020-06-04 21:54:12 +02:00
committed by GitHub
7 changed files with 267 additions and 56 deletions

View File

@@ -13,10 +13,6 @@ services:
- ../:/var/alchemy
- .:/var/alchemy/Phraseanet
- ./docker/nginx/root/entrypoint.sh:/entrypoint.sh
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
builder:
build:
@@ -50,25 +46,12 @@ services:
volumes:
- ../:/var/alchemy
- .:/var/alchemy/Phraseanet
- ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw
- ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_CACHE_DIR}:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
worker:
volumes:
- ../:/var/alchemy
- .:/var/alchemy/Phraseanet
- ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw
- ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_CACHE_DIR}:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
rabbitmq:
ports:

View File

@@ -64,13 +64,13 @@ services:
- PHRASEANET_SMTP_USER
- PHRASEANET_SMTP_PASSWORD
volumes:
- config_vol:/var/alchemy/Phraseanet/config:rw
- data_vol:/var/alchemy/Phraseanet/datas:rw
- tmp_vol:/var/alchemy/Phraseanet/tmp:rw
- logs_vol:/var/alchemy/Phraseanet/logs:rw
- thumbnails_vol:/var/alchemy/Phraseanet/www/thumbnails:rw
- custom_vol:/var/alchemy/Phraseanet/www/custom:rw
- cache_vol:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw
- ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_CACHE_DIR}:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
worker:
build:
@@ -94,13 +94,13 @@ services:
- SESSION_CACHE_LIMITER
- PHP_LOG_LEVEL
volumes:
- config_vol:/var/alchemy/Phraseanet/config:rw
- data_vol:/var/alchemy/Phraseanet/datas:rw
- tmp_vol:/var/alchemy/Phraseanet/tmp:rw
- logs_vol:/var/alchemy/Phraseanet/logs:rw
- thumbnails_vol:/var/alchemy/Phraseanet/www/thumbnails:rw
- custom_vol:/var/alchemy/Phraseanet/www/custom:rw
- cache_vol:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw
- ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw
- ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw
- ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw
- ${PHRASEANET_CUSTOM_DIR}:/var/alchemy/Phraseanet/www/custom:rw
- ${PHRASEANET_CACHE_DIR}:/var/alchemy/Phraseanet/cache:rw
- ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw
db:
image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-db:$PHRASEANET_DOCKER_TAG

View File

@@ -24,8 +24,8 @@ if [ -f "$FILE" ]; then
bin/setup system:config set registry.email.smtp-enabled $PHRASEANET_SMTP_ENABLED
bin/setup system:config set registry.email.smtp-auth-enabled $PHRASEANET_SMTP_AUTH_ENABLED
bin/setup system:config set registry.email.smtp-auth-secure-mode $PHRASEANET_SMTP_SECURE_MODE
bin/setup system:config set registry.email.smtp-auth-host $PHRASEANET_SMTP_HOST
bin/setup system:config set registry.email.smtp-auth-port $PHRASEANET_SMTP_PORT
bin/setup system:config set registry.email.smtp-host $PHRASEANET_SMTP_HOST
bin/setup system:config set registry.email.smtp-port $PHRASEANET_SMTP_PORT
bin/setup system:config set registry.email.smtp-user $PHRASEANET_SMTP_USER
bin/setup system:config set registry.email.smtp-password $PHRASEANET_SMTP_PASSWORD
bin/setup system:config set registry.email.emitter-email $PHRASEANET_EMITTER_EMAIL
@@ -44,4 +44,13 @@ fi
./docker/phraseanet/plugins/console init
chown -R app:app \
cache \
config \
datas \
tmp \
logs \
www/thumbnails \
www/custom
bash -e docker-php-entrypoint $@

View File

@@ -5,7 +5,6 @@ namespace Alchemy\Phrasea\Core\Event\Subscriber;
use Alchemy\Phrasea\Core\Event\Record\RecordEvents;
use Alchemy\Phrasea\Core\Event\Record\SubDefinitionCreatedEvent;
use Alchemy\Phrasea\Core\Event\Record\SubDefinitionCreationFailedEvent;
use Alchemy\Phrasea\Core\Event\Record\SubDefinitionsCreatedEvent;
use Alchemy\Phrasea\Model\Entities\WebhookEvent;
use Silex\Application;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -30,7 +29,8 @@ class WebhookSubdefEventSubscriber implements EventSubscriberInterface
$this->app['manipulator.webhook-event']->create(
WebhookEvent::RECORD_SUBDEF_CREATED,
WebhookEvent::RECORD_SUBDEF_TYPE,
$eventData
$eventData,
[$event->getRecord()->getBaseId()]
);
}
@@ -45,22 +45,8 @@ class WebhookSubdefEventSubscriber implements EventSubscriberInterface
$this->app['manipulator.webhook-event']->create(
WebhookEvent::RECORD_SUBDEF_FAILED,
WebhookEvent::RECORD_SUBDEF_TYPE,
$eventData
);
}
public function onSubdefsCreated(SubDefinitionsCreatedEvent $event)
{
$eventData = [
'databox_id' => $event->getRecord()->getDataboxId(),
'record_id' => $event->getRecord()->getRecordId(),
'subdef_count' => count($event->getMedia())
];
$this->app['manipulator.webhook-event']->create(
WebhookEvent::RECORD_SUBDEFS_CREATED,
WebhookEvent::RECORD_SUBDEF_TYPE,
$eventData
$eventData,
[$event->getRecord()->getBaseId()]
);
}
@@ -68,7 +54,6 @@ class WebhookSubdefEventSubscriber implements EventSubscriberInterface
{
return [
RecordEvents::SUB_DEFINITION_CREATED => 'onSubdefCreated',
RecordEvents::SUB_DEFINITIONS_CREATED => 'onSubdefsCreated',
RecordEvents::SUB_DEFINITION_CREATION_FAILED => 'onSubdefCreationFailed'
];
}

View File

@@ -119,7 +119,7 @@
<vcodec>libvpx</vcodec>
</subdef>
<subdef class="preview" name="audiovideowav" downloadable="true" orderable="true" presets="Wave Mono 8 kHz">
<path>{{datapathnoweb}}{{basename}}/subview</path>
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<meta>no</meta>
<mediatype>audio</mediatype>
<audiobitrate>128</audiobitrate>
@@ -131,7 +131,7 @@
<label lang="en">Audio WAVE 8 kHz</label>
</subdef>
<subdef class="preview" name="audiovideomp3" downloadable="true" orderable="true" presets="Normal MP3 128 kbit/s">
<path>{{datapathnoweb}}{{basename}}/subview</path>
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<meta>no</meta>
<mediatype>audio</mediatype>
<audiobitrate>180</audiobitrate>

View File

@@ -0,0 +1,234 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<record>
<path>{{datapathnoweb}}{{basename}}/documents</path>
<subdefs>
<subdefgroup name="image">
<subdef class="preview" name="preview" downloadable="true">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<size>1024</size>
<method>resample</method>
<dpi>72</dpi>
<strip>no</strip>
<quality>75</quality>
<meta>yes</meta>
<devices>screen</devices>
<mediatype>image</mediatype>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="thumbnail" name="thumbnail" downloadable="true">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<size>240</size>
<method>resample</method>
<dpi>72</dpi>
<strip>yes</strip>
<quality>75</quality>
<meta>no</meta>
<devices>screen</devices>
<mediatype>image</mediatype>
<label lang="fr">Vignette</label>
<label lang="en">Thumbnail</label>
</subdef>
<subdef class="preview" name="preview_mobile" downloadable="false">
<size>480</size>
<resolution>72</resolution>
<strip>yes</strip>
<quality>75</quality>
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<meta>no</meta>
<devices>handheld</devices>
<label lang="fr">Prévisualisation Mobile</label>
<label lang="en">Mobile Preview</label>
</subdef>
<subdef class="thumbnail" name="thumbnail_mobile" downloadable="false">
<size>150</size>
<resolution>72</resolution>
<strip>yes</strip>
<quality>75</quality>
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<meta>no</meta>
<devices>handheld</devices>
<label lang="fr">Vignette mobile</label>
<label lang="en">Mobile Thumbnail</label>
</subdef>
</subdefgroup>
<subdefgroup name="video">
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<size>240</size>
<devices>screen</devices>
<mediatype>image</mediatype>
<writeDatas>no</writeDatas>
<label lang="fr">Vignette</label>
<label lang="en">Thumbnail</label>
</subdef>
<subdef class="thumbnail" name="thumbnailgif" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<size>240</size>
<mediatype>gif</mediatype>
<delay>150</delay>
<devices>screen</devices>
<writeDatas>no</writeDatas>
<label lang="fr">Animation GIF</label>
<label lang="en">GIF Animation</label>
</subdef>
<subdef class="preview" name="preview" downloadable="true">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<size>748</size>
<mediatype>video</mediatype>
<writeDatas>yes</writeDatas>
<acodec>libfaac</acodec>
<vcodec>libx264</vcodec>
<devices>screen</devices>
<bitrate>1000</bitrate>
<audiobitrate>128</audiobitrate>
<audiosamplerate>48000</audiosamplerate>
<fps>25</fps>
<GOPsize>25</GOPsize>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="preview" name="preview_webm" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<size>748</size>
<mediatype>video</mediatype>
<devices>screen</devices>
<bitrate>1000</bitrate>
<audiobitrate>128</audiobitrate>
<audiosamplerate>48000</audiosamplerate>
<acodec>libvorbis</acodec>
<fps>25</fps>
<GOPsize>25</GOPsize>
<vcodec>libvpx</vcodec>
<label lang="fr">Prévisualisation WebM</label>
<label lang="en">WebM Preview</label>
</subdef>
</subdefgroup>
<subdefgroup name="audio">
<subdef class="thumbnail" name="thumbnail" downloadable="true">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<size>240</size>
<devices>screen</devices>
<writeDatas>no</writeDatas>
<label lang="fr">Vignette</label>
<label lang="en">Thumbnail</label>
</subdef>
<subdef class="preview" name="preview" downloadable="true">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>audio</mediatype>
<writeDatas>yes</writeDatas>
<audiobitrate>128</audiobitrate>
<audiosamplerate>48000</audiosamplerate>
<devices>screen</devices>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="preview" name="preview_mobile" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>audio</mediatype>
<devices>handheld</devices>
<label lang="fr">Prévisualisation Mobile</label>
<label lang="en">Mobile Preview</label>
</subdef>
</subdefgroup>
<subdefgroup name="document">
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<method>resample</method>
<dpi>72</dpi>
<size>240</size>
<writeDatas>no</writeDatas>
<devices>screen</devices>
<label lang="fr">Vignette</label>
<label lang="en">Thumbnail</label>
</subdef>
<subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>flexpaper</mediatype>
<writeDatas>no</writeDatas>
<devices>screen</devices>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
</subdefgroup>
<subdefgroup name="flash">
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<size>240</size>
<writeDatas>no</writeDatas>
<method>resample</method>
<dpi>72</dpi>
<devices>screen</devices>
<label lang="fr">Vignette</label>
<label lang="en">Thumbnail</label>
</subdef>
<subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<size>800</size>
<writeDatas>no</writeDatas>
<method>resample</method>
<dpi>72</dpi>
<devices>screen</devices>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
</subdefgroup>
</subdefs>
<description>
<GDTI src="" index="1" />
<BrandName src="" index="1" />
<ProductName src="XMP-dc:Title" index="1" />
<ValidFromDate src="" index="1" type="date" />
<GTIN14 src="" index="1" />
<AngleIndicator src="" index="1" />
<ArticleVariant src="" index="1" />
<ClippingPathName src="" index="1" />
<ColorMode src="" index="1" readonly="1" />
<Copyright src="" index="1" />
<CreateDate src="" index="1" readonly="1" type="date" />
<Description src="XMP-dc:Description" index="1" />
<ExpirationDate src="XMP-plus:LicenseEndDate" index="1" type="date" />
<FacingIndicator src="" index="1" />
<FileType src="" index="1" />
<Filename src="Phraseanet:tf-basename" index="1" readonly="1" thumbtitle="1"/>
<ImageQADate src="" index="1" readonly="1" type="date" />
<ClippingPathPresent src="" index="1" />
<LegalOwner src="XMP-plus:CopyrightOwnerName" index="1" />
<LegalOwnerContactInfo src="" index="1" />
<MaxAvailHeight src="Phraseanet:tf-height" index="1" readonly="1" type="number" />
<MaxAvailWidth src="Phraseanet:tf-width" index="1" readonly="1" type="number" />
<NumberOfTheImage src="" index="1" />
<PackagingType src="" index="1" />
<ProductNetContent src="" index="1" />
<ProductSupplier src="" index="1" />
<ProductURL src="" index="1" readonly="1" />
<RightOfUse src="XMP-xmpRights:UsageTerms" index="1" multi="1" separator=";" />
<SpecialRights src="" index="1" multi="1" separator=";" />
<VersionNumber src="" index="1" />
<InOutPackaging src="" index="1" />
<ArchiveDate src="Phraseanet:tf-archivedate" readonly="1" type="date" />
<LastEditDate src="Phraseanet:tf-editdate" readonly="1" type="date" />
</description>
<statbits>
<bit n="4" labelOn="Caption_filled" searchable="0" printable="0" labelOff="Unspecified_caption">
<label switch="off" code="en">Caption not filled</label>
<label switch="off" code="fr">Media non renseigne</label>
<label switch="on" code="en">Caption filled</label>
<label switch="on" code="fr">Média renseigné</label>
</bit>
<bit n="5" labelOn="Clipping_Path_Present" searchable="1" printable="0" labelOff="No_Clipping_Path">
<label switch="off" code="en">No Clipping Path</label>
<label switch="off" code="fr">Sans masque de détourage</label>
<label switch="on" code="en">Clipping Path Present</label>
<label switch="on" code="fr">Avec masque de détourage</label>
</bit>
</statbits>
</record>

View File

@@ -12,6 +12,6 @@ class WebhookEventRepositoryTest extends \PhraseanetTestCase
{
$events = self::$DI['app']['orm.em']->getRepository('Phraseanet:WebhookEvent')->findUnprocessedEvents();
// I have no clue as to why this magic number is here, probably best to discard test
$this->assertCount(41, $events);
$this->assertCount(34, $events);
}
}