Merge branch 'PHRAS-2079_Admin_personnalisation_section' of https://github.com/HRavalomanana/Phraseanet into PHRAS-2079_Admin_personnalisation_section

This commit is contained in:
Harrys Ravalomanana
2019-05-16 17:41:07 +04:00
6 changed files with 108 additions and 10 deletions

View File

@@ -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
View File

@@ -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)

View File

@@ -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
]); ]);
} }

View File

@@ -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);

View File

@@ -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

View File

@@ -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>