mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
Merge branch 'PHRAS-2079_Admin_personnalisation_section' of https://github.com/HRavalomanana/Phraseanet into PHRAS-2079_Admin_personnalisation_section
This commit is contained in:
64
Dockerfile
64
Dockerfile
@@ -1,4 +1,5 @@
|
|||||||
FROM php:7.1-fpm-stretch as phraseanet_prod
|
FROM php:7.1-fpm-stretch as builder
|
||||||
|
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y \
|
&& apt-get install -y \
|
||||||
@@ -73,7 +74,6 @@ COPY config /var/alchemy/config
|
|||||||
COPY grammar /var/alchemy/grammar
|
COPY grammar /var/alchemy/grammar
|
||||||
COPY lib /var/alchemy/lib
|
COPY lib /var/alchemy/lib
|
||||||
COPY resources /var/alchemy/resources
|
COPY resources /var/alchemy/resources
|
||||||
RUN ls -la
|
|
||||||
COPY templates-profiler /var/alchemy/templates-profiler
|
COPY templates-profiler /var/alchemy/templates-profiler
|
||||||
COPY templates /var/alchemy/templates
|
COPY templates /var/alchemy/templates
|
||||||
COPY tests /var/alchemy/tests
|
COPY tests /var/alchemy/tests
|
||||||
@@ -83,15 +83,69 @@ COPY composer.json /var/alchemy/
|
|||||||
COPY composer.lock /var/alchemy/
|
COPY composer.lock /var/alchemy/
|
||||||
COPY gulpfile.js /var/alchemy/
|
COPY gulpfile.js /var/alchemy/
|
||||||
COPY Makefile /var/alchemy/
|
COPY Makefile /var/alchemy/
|
||||||
COPY package-lock.json /var/alchemy/
|
|
||||||
COPY package.json /var/alchemy/
|
COPY package.json /var/alchemy/
|
||||||
COPY phpunit.xml.dist /var/alchemy/
|
COPY phpunit.xml.dist /var/alchemy/
|
||||||
COPY yarn.lock /var/alchemy/
|
COPY yarn.lock /var/alchemy/
|
||||||
RUN ls -la
|
|
||||||
|
|
||||||
RUN make install_composer
|
RUN make install_composer
|
||||||
RUN make clean_assets
|
RUN make clean_assets
|
||||||
RUN make install_asset_dependencies
|
RUN make install_asset_dependencies
|
||||||
RUN make install_assets
|
RUN make install_assets
|
||||||
|
|
||||||
|
FROM php:7.1-fpm-stretch as phraseanet
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y \
|
||||||
|
apt-transport-https \
|
||||||
|
ca-certificates \
|
||||||
|
gnupg2 \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends zlib1g-dev \
|
||||||
|
git \
|
||||||
|
ghostscript \
|
||||||
|
gpac \
|
||||||
|
imagemagick \
|
||||||
|
libav-tools \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libicu-dev \
|
||||||
|
libjpeg62-turbo-dev \
|
||||||
|
libmagickwand-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
libpng-dev \
|
||||||
|
librabbitmq-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
libzmq3-dev \
|
||||||
|
locales \
|
||||||
|
mcrypt \
|
||||||
|
supervisor \
|
||||||
|
swftools \
|
||||||
|
unoconv \
|
||||||
|
unzip \
|
||||||
|
xpdf \
|
||||||
|
&& update-locale "LANG=fr_FR.UTF-8 UTF-8" \
|
||||||
|
&& dpkg-reconfigure --frontend noninteractive locales \
|
||||||
|
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
|
||||||
|
&& docker-php-ext-install -j$(nproc) gd \
|
||||||
|
&& docker-php-ext-install zip exif iconv mbstring pcntl sockets xsl intl pdo_mysql gettext bcmath mcrypt \
|
||||||
|
&& pecl install redis amqp-1.9.3 zmq-beta imagick-beta \
|
||||||
|
&& docker-php-ext-enable redis amqp zmq imagick \
|
||||||
|
&& pecl clear-cache \
|
||||||
|
&& docker-php-source delete \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& mkdir -p /var/log/supervisor
|
||||||
|
|
||||||
|
RUN mkdir -p /var/alchemy/logs && chmod 777 /var/alchemy/logs \
|
||||||
|
&& mkdir -p /var/alchemy/cache && chmod 777 /var/alchemy/cache
|
||||||
|
COPY --from=builder [^(www)] /var/alchemy /var/alchemy
|
||||||
|
|
||||||
CMD ["php-fpm"]
|
CMD ["php-fpm"]
|
||||||
|
|
||||||
|
FROM nginx:1.15 as phraseanet-nginx
|
||||||
|
|
||||||
|
RUN useradd -u 1000 app
|
||||||
|
|
||||||
|
ADD ./docker/nginx/ /
|
||||||
|
|
||||||
|
COPY --from=builder /var/alchemy/www /var/alchemy/Phraseanet/www
|
||||||
|
|
||||||
|
|
||||||
|
5
Vagrantfile
vendored
5
Vagrantfile
vendored
@@ -123,6 +123,11 @@ Vagrant.configure("2") do |config|
|
|||||||
config.vm.box = "alchemy/Phraseanet-vagrant-dev"
|
config.vm.box = "alchemy/Phraseanet-vagrant-dev"
|
||||||
#config.vm.box = "ubuntu/trusty64"
|
#config.vm.box = "ubuntu/trusty64"
|
||||||
|
|
||||||
|
# In case, Phraseanet box, choose the php version
|
||||||
|
# For php 7.0 use box 0.0.1
|
||||||
|
# For php 7.1 use box 0.0.2
|
||||||
|
config.vm.box_version = "0.0.1"
|
||||||
|
|
||||||
config.ssh.forward_agent = true
|
config.ssh.forward_agent = true
|
||||||
config_net(config)
|
config_net(config)
|
||||||
|
|
||||||
|
@@ -74,10 +74,10 @@ class PermalinkController extends AbstractDelivery
|
|||||||
|
|
||||||
public function deliverPermaview(Request $request, $sbas_id, $record_id, $subdef)
|
public function deliverPermaview(Request $request, $sbas_id, $record_id, $subdef)
|
||||||
{
|
{
|
||||||
return $this->doDeliverPermaview($sbas_id, $record_id, $request->query->get('token'), $subdef);
|
return $this->doDeliverPermaview($sbas_id, $record_id, $request->query->get('token'), $subdef, $request->query->get('t'));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function doDeliverPermaview($sbas_id, $record_id, $token, $subdefName)
|
private function doDeliverPermaview($sbas_id, $record_id, $token, $subdefName, $currentTime = null)
|
||||||
{
|
{
|
||||||
$databox = $this->findDataboxById($sbas_id);
|
$databox = $this->findDataboxById($sbas_id);
|
||||||
$record = $this->retrieveRecord($databox, $token, $record_id, $subdefName);
|
$record = $this->retrieveRecord($databox, $token, $record_id, $subdefName);
|
||||||
@@ -105,6 +105,7 @@ class PermalinkController extends AbstractDelivery
|
|||||||
'token' => $token,
|
'token' => $token,
|
||||||
'record' => $record,
|
'record' => $record,
|
||||||
'recordUrl' => $information->getUrl(),
|
'recordUrl' => $information->getUrl(),
|
||||||
|
'currentTime' => $currentTime
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -70,6 +70,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
protected function doJob(JobData $data)
|
protected function doJob(JobData $data)
|
||||||
{
|
{
|
||||||
$app = $data->getApplication();
|
$app = $data->getApplication();
|
||||||
|
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
|
||||||
$task = $data->getTask();
|
$task = $data->getTask();
|
||||||
|
|
||||||
$settings = simplexml_load_string($task->getSettings());
|
$settings = simplexml_load_string($task->getSettings());
|
||||||
@@ -83,6 +87,9 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
$databox = $app->findDataboxById($sbasId);
|
$databox = $app->findDataboxById($sbasId);
|
||||||
|
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
$TColls = [];
|
$TColls = [];
|
||||||
$collection = null;
|
$collection = null;
|
||||||
foreach ($databox->get_collections() as $coll) {
|
foreach ($databox->get_collections() as $coll) {
|
||||||
@@ -562,6 +569,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
private function archive(Application $app, \databox $databox, \DOMDOcument $dom, \DOMElement $node, $path, $path_archived, $path_error, $depth, $moveError, $moveArchived, $stat0, $stat1)
|
private function archive(Application $app, \databox $databox, \DOMDOcument $dom, \DOMElement $node, $path, $path_archived, $path_error, $depth, $moveError, $moveArchived, $stat0, $stat1)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
if ($node->getAttribute('temperature') == 'hot') {
|
if ($node->getAttribute('temperature') == 'hot') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -820,6 +831,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
private function archiveGrp(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, array &$nodesToDel, $moveError, $moveArchived, $stat0, $stat1)
|
private function archiveGrp(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, array &$nodesToDel, $moveError, $moveArchived, $stat0, $stat1)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
$xpath = new \DOMXPath($dom);
|
$xpath = new \DOMXPath($dom);
|
||||||
|
|
||||||
// grp folders stay in place
|
// grp folders stay in place
|
||||||
@@ -984,6 +999,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
public function createStory(Application $app, \collection $collection, $pathfile, $captionFile, $stat0, $stat1)
|
public function createStory(Application $app, \collection $collection, $pathfile, $captionFile, $stat0, $stat1)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
$status = \databox_status::operation_or($stat0, $stat1);
|
$status = \databox_status::operation_or($stat0, $stat1);
|
||||||
|
|
||||||
$media = $app->getMediaFromUri($pathfile);
|
$media = $app->getMediaFromUri($pathfile);
|
||||||
@@ -1032,6 +1051,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
*/
|
*/
|
||||||
public function createRecord(Application $app, \collection $collection, $pathfile, $captionFile, $grp_rid, $force, $stat0, $stat1)
|
public function createRecord(Application $app, \collection $collection, $pathfile, $captionFile, $grp_rid, $force, $stat0, $stat1)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$collection->get_connection();
|
||||||
|
|
||||||
$status = \databox_status::operation_or($stat0, $stat1);
|
$status = \databox_status::operation_or($stat0, $stat1);
|
||||||
|
|
||||||
$media = $app->getMediaFromUri($pathfile);
|
$media = $app->getMediaFromUri($pathfile);
|
||||||
@@ -1097,6 +1120,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
*/
|
*/
|
||||||
private function archiveFilesToGrp(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, $grp_rid, $stat0, $stat1, $moveError, $moveArchived)
|
private function archiveFilesToGrp(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, $grp_rid, $stat0, $stat1, $moveError, $moveArchived)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
$nodesToDel = [];
|
$nodesToDel = [];
|
||||||
for ($n = $node->firstChild; $n; $n = $n->nextSibling) {
|
for ($n = $node->firstChild; $n; $n = $n->nextSibling) {
|
||||||
if (!$this->isStarted()) {
|
if (!$this->isStarted()) {
|
||||||
@@ -1134,6 +1161,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
*/
|
*/
|
||||||
private function archiveFile(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, array &$nodesToDel, $grp_rid, $stat0, $stat1, $moveError, $moveArchived)
|
private function archiveFile(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, array &$nodesToDel, $grp_rid, $stat0, $stat1, $moveError, $moveArchived)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
$match = $node->getAttribute('match');
|
$match = $node->getAttribute('match');
|
||||||
|
|
||||||
if ($match == '*') {
|
if ($match == '*') {
|
||||||
@@ -1188,6 +1219,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
*/
|
*/
|
||||||
private function archiveFileAndCaption(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, \DOMElement $captionFileNode = null, $path, $path_archived, $path_error, $grp_rid, array &$nodesToDel, $stat0, $stat1, $moveError, $moveArchived)
|
private function archiveFileAndCaption(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, \DOMElement $captionFileNode = null, $path, $path_archived, $path_error, $grp_rid, array &$nodesToDel, $stat0, $stat1, $moveError, $moveArchived)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
$databox->get_connection();
|
||||||
|
|
||||||
$file = $node->getAttribute('name');
|
$file = $node->getAttribute('name');
|
||||||
$cid = $node->getAttribute('cid');
|
$cid = $node->getAttribute('cid');
|
||||||
$captionFileName = $captionFileNode ? $captionFileNode->getAttribute('name') : null;
|
$captionFileName = $captionFileNode ? $captionFileNode->getAttribute('name') : null;
|
||||||
@@ -1361,6 +1396,9 @@ class ArchiveJob extends AbstractJob
|
|||||||
*/
|
*/
|
||||||
protected function getLazaretSession(Application $app)
|
protected function getLazaretSession(Application $app)
|
||||||
{
|
{
|
||||||
|
// quick fix to reconnect if mysql is lost
|
||||||
|
$app->getApplicationBox()->get_connection();
|
||||||
|
|
||||||
$lazaretSession = new LazaretSession();
|
$lazaretSession = new LazaretSession();
|
||||||
|
|
||||||
$app['orm.em']->persist($lazaretSession);
|
$app['orm.em']->persist($lazaretSession);
|
||||||
|
@@ -7,12 +7,12 @@
|
|||||||
# - server
|
# - server
|
||||||
# - repositories
|
# - repositories
|
||||||
# - vagrant_local
|
# - vagrant_local
|
||||||
# - nginx
|
- nginx
|
||||||
# - mariadb
|
# - mariadb
|
||||||
# - elasticsearch
|
# - elasticsearch
|
||||||
# - rabbitmq
|
# - rabbitmq
|
||||||
# - php
|
# - php
|
||||||
# - xdebug
|
- xdebug
|
||||||
# - composer
|
# - composer
|
||||||
# - mailcatcher
|
# - mailcatcher
|
||||||
# - node
|
# - node
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
lang: "{{ app.locale }}",
|
lang: "{{ app.locale }}",
|
||||||
baseUrl: '{{ app['request'].getUriForPath('/') }}',
|
baseUrl: '{{ app['request'].getUriForPath('/') }}',
|
||||||
basePath: '{{ app.request.basePath|e('js') }}',
|
basePath: '{{ app.request.basePath|e('js') }}',
|
||||||
recordUrl: '{{ url('alchemy_embed_view', {url: recordUrl|trim, autoplay: autoplay|default('false') }) }}',
|
recordUrl: '{{ url('alchemy_embed_view', {url: recordUrl|trim, autoplay: autoplay|default('false'), t: currentTime|trim }) | e('js')}}',
|
||||||
debug: {% if app.debug == true %}true{% else %}false{% endif %}
|
debug: {% if app.debug == true %}true{% else %}false{% endif %}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
Reference in New Issue
Block a user