mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-24 02:13:15 +00:00
Merge branch 'master' of https://github.com/alchemy-fr/Phraseanet into PHRAS-2419_refacto_Icons_actions_under_Thumbnail
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
version: 2.1
|
version: 2.1
|
||||||
orbs:
|
orbs:
|
||||||
aws-ecr: circleci/aws-ecr@4.0.1
|
aws-ecr: circleci/aws-ecr@4.0.1
|
||||||
|
executors:
|
||||||
|
docker_build:
|
||||||
|
machine:
|
||||||
|
docker_layer_caching: true
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
working_directory: ~/alchemy-fr/Phraseanet
|
working_directory: ~/alchemy-fr/Phraseanet
|
||||||
@@ -56,7 +60,10 @@ jobs:
|
|||||||
# This is based on your 1.0 configuration file or project settings
|
# This is based on your 1.0 configuration file or project settings
|
||||||
- run: node -v
|
- run: node -v
|
||||||
- run: npm -v
|
- run: npm -v
|
||||||
- run: npm install
|
- run: npm install -g yarn
|
||||||
|
- run: rm ~/.yarn/bin/yarn
|
||||||
|
- run: ln -s /opt/circleci/nodejs/v10.12.0/bin/yarn ~/.yarn/bin/yarn
|
||||||
|
- run: yarn install
|
||||||
- run: if [[ ! -e elasticsearch-2.3.3 ]]; then wget --no-check-certificate https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-2.3.3.tar.gz && tar -xvf elasticsearch-2.3.3.tar.gz && elasticsearch-2.3.3/bin/plugin install analysis-icu; fi
|
- run: if [[ ! -e elasticsearch-2.3.3 ]]; then wget --no-check-certificate https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-2.3.3.tar.gz && tar -xvf elasticsearch-2.3.3.tar.gz && elasticsearch-2.3.3/bin/plugin install analysis-icu; fi
|
||||||
- run:
|
- run:
|
||||||
command: elasticsearch-2.3.3/bin/elasticsearch
|
command: elasticsearch-2.3.3/bin/elasticsearch
|
||||||
@@ -108,8 +115,6 @@ workflows:
|
|||||||
oldfashion:
|
oldfashion:
|
||||||
jobs:
|
jobs:
|
||||||
- build
|
- build
|
||||||
|
|
||||||
|
|
||||||
newfashion:
|
newfashion:
|
||||||
jobs:
|
jobs:
|
||||||
- aws-ecr/build_and_push_image:
|
- aws-ecr/build_and_push_image:
|
||||||
@@ -119,7 +124,18 @@ workflows:
|
|||||||
context: "AWS London"
|
context: "AWS London"
|
||||||
create-repo: true
|
create-repo: true
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
#profile-name: myProfileName
|
extra-build-args: "--target phraseanet"
|
||||||
region: AWS_DEFAULT_REGION
|
region: AWS_DEFAULT_REGION
|
||||||
repo: "${AWS_RESOURCE_NAME_PREFIX}/phraseanet"
|
repo: "${AWS_RESOURCE_NAME_PREFIX}/phraseanet"
|
||||||
tag: "alpha-0.1"
|
tag: "alpha-0.1"
|
||||||
|
- aws-ecr/build_and_push_image:
|
||||||
|
account-url: AWS_ACCOUNT_URL
|
||||||
|
aws-access-key-id: AWS_ACCESS_KEY_ID
|
||||||
|
aws-secret-access-key: AWS_SECRET_ACCESS_KEY
|
||||||
|
context: "AWS London"
|
||||||
|
create-repo: true
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
extra-build-args: "--target phraseanet-nginx"
|
||||||
|
region: AWS_DEFAULT_REGION
|
||||||
|
repo: "${AWS_RESOURCE_NAME_PREFIX}/phraseanet-nginx"
|
||||||
|
tag: "alpha-0.1"
|
||||||
|
|||||||
102
Dockerfile
102
Dockerfile
@@ -1,4 +1,4 @@
|
|||||||
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 \
|
||||||
@@ -64,34 +64,100 @@ RUN mkdir /entrypoint /var/alchemy \
|
|||||||
&& mkdir -p /home/app/.composer \
|
&& mkdir -p /home/app/.composer \
|
||||||
&& chown -R app: /home/app /var/alchemy
|
&& chown -R app: /home/app /var/alchemy
|
||||||
|
|
||||||
|
|
||||||
ADD ./docker/phraseanet/ /
|
ADD ./docker/phraseanet/ /
|
||||||
|
|
||||||
WORKDIR /var/alchemy/
|
WORKDIR /var/alchemy/
|
||||||
|
|
||||||
COPY config /var/alchemy/config
|
|
||||||
COPY grammar /var/alchemy/grammar
|
|
||||||
COPY lib /var/alchemy/lib
|
|
||||||
COPY resources /var/alchemy/resources
|
|
||||||
RUN ls -la
|
|
||||||
COPY templates-profiler /var/alchemy/templates-profiler
|
|
||||||
COPY templates /var/alchemy/templates
|
|
||||||
COPY tests /var/alchemy/tests
|
|
||||||
COPY tmp /var/alchemy/tmp
|
|
||||||
COPY www /var/alchemy/www
|
|
||||||
COPY composer.json /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
|
COPY bin /var/alchemy/bin
|
||||||
|
COPY composer.json /var/alchemy/
|
||||||
|
COPY composer.lock /var/alchemy/
|
||||||
RUN make install_composer
|
RUN make install_composer
|
||||||
|
COPY resources /var/alchemy/resources
|
||||||
|
COPY www /var/alchemy/www
|
||||||
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
|
||||||
|
|
||||||
CMD ["php-fpm"]
|
COPY lib /var/alchemy/lib
|
||||||
|
COPY tmp /var/alchemy/tmp
|
||||||
|
COPY config /var/alchemy/config
|
||||||
|
COPY grammar /var/alchemy/grammar
|
||||||
|
COPY templates-profiler /var/alchemy/templates-profiler
|
||||||
|
COPY templates /var/alchemy/templates
|
||||||
|
COPY tests /var/alchemy/tests
|
||||||
|
|
||||||
|
# Phraseanet
|
||||||
|
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 /entrypoint /var/alchemy \
|
||||||
|
&& useradd -u 1000 app \
|
||||||
|
&& mkdir -p /home/app/.composer \
|
||||||
|
&& chown -R app: /home/app /var/alchemy
|
||||||
|
|
||||||
|
COPY --from=builder --chown=app /var/alchemy /var/alchemy/Phraseanet
|
||||||
|
ADD ./docker/phraseanet/ /
|
||||||
|
RUN mkdir -p /var/alchemy/Phraseanet/logs \
|
||||||
|
&& chmod -R 777 /var/alchemy/Phraseanet/logs \
|
||||||
|
&& mkdir -p /var/alchemy/Phraseanet/cache \
|
||||||
|
&& chmod -R 777 /var/alchemy/Phraseanet/cache \
|
||||||
|
&& mkdir -p /var/alchemy/Phraseanet/datas \
|
||||||
|
&& chmod -R 777 /var/alchemy/Phraseanet/datas \
|
||||||
|
&& mkdir -p /var/alchemy/Phraseanet/tmp \
|
||||||
|
&& chmod -R 777 /var/alchemy/Phraseanet/tmp \
|
||||||
|
&& mkdir -p /var/alchemy/Phraseanet/www/custom \
|
||||||
|
&& chmod -R 777 /var/alchemy/Phraseanet/www/custom \
|
||||||
|
&& mkdir -p /var/alchemy/Phraseanet/config \
|
||||||
|
&& chmod -R 777 /var/alchemy/Phraseanet/config
|
||||||
|
WORKDIR /var/alchemy/Phraseanet
|
||||||
|
CMD ["/boot.sh"]
|
||||||
|
|
||||||
|
# phraseanet-nginx
|
||||||
|
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
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
FROM nginx:1.15
|
|
||||||
|
|
||||||
RUN useradd -u 1000 app
|
|
||||||
|
|
||||||
ADD ./docker/nginx/ /
|
|
||||||
|
|
||||||
COPY www /var/alchemy/Phraseanet/
|
|
||||||
27
README.md
27
README.md
@@ -1,4 +1,4 @@
|
|||||||
Phraseanet 4.0 - Digital Asset Management application
|
Phraseanet 4.1 - Digital Asset Management application
|
||||||
=====================================================
|
=====================================================
|
||||||
|
|
||||||
[](https://circleci.com/gh/alchemy-fr/Phraseanet/tree/master)
|
[](https://circleci.com/gh/alchemy-fr/Phraseanet/tree/master)
|
||||||
@@ -9,7 +9,7 @@ Phraseanet 4.0 - Digital Asset Management application
|
|||||||
- RestFull APIS
|
- RestFull APIS
|
||||||
- Elasticsearch search engine
|
- Elasticsearch search engine
|
||||||
- Multiple resolution assets generation
|
- Multiple resolution assets generation
|
||||||
|
|
||||||
# Documentation :
|
# Documentation :
|
||||||
|
|
||||||
https://docs.phraseanet.com/
|
https://docs.phraseanet.com/
|
||||||
@@ -32,8 +32,9 @@ https://www.phraseanet.com/download/
|
|||||||
|
|
||||||
For development purpose Phraseanet is shipped with ready to use development environments using vagrant.
|
For development purpose Phraseanet is shipped with ready to use development environments using vagrant.
|
||||||
|
|
||||||
- git clone
|
- git clone
|
||||||
- vagrant up
|
- vagrant up
|
||||||
|
|
||||||
|
|
||||||
For development with Phraseanet API see https://docs.phraseanet.com/4.0/en/Devel/index.html
|
For development with Phraseanet API see https://docs.phraseanet.com/4.0/en/Devel/index.html
|
||||||
|
|
||||||
@@ -42,4 +43,22 @@ For development with Phraseanet API see https://docs.phraseanet.com/4.0/en/Devel
|
|||||||
Phraseanet is licensed under GPL-v3 license.
|
Phraseanet is licensed under GPL-v3 license.
|
||||||
|
|
||||||
|
|
||||||
|
# Docker build
|
||||||
|
|
||||||
|
WARNING : still in a work-in-progress status and can be used only for test purposes.
|
||||||
|
|
||||||
|
The docker distribution come with 2 differents containers :
|
||||||
|
* an nginx that act as the front http server.
|
||||||
|
* the php-fpm who serves the php files through nginx.
|
||||||
|
|
||||||
|
## How to build
|
||||||
|
|
||||||
|
The two images can be built respectively with these two commands :
|
||||||
|
|
||||||
|
# nginx server
|
||||||
|
docker build --target phraseanet-nginx -t phraseanet-nginx .
|
||||||
|
|
||||||
|
# php-fpm application
|
||||||
|
docker build --target phraseanet -t phraseanet .
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
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)
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
"php": ">=5.5.9",
|
"php": ">=5.5.9",
|
||||||
"ext-intl": "*",
|
"ext-intl": "*",
|
||||||
"alchemy-fr/tcpdf-clone": "~6.0",
|
"alchemy-fr/tcpdf-clone": "~6.0",
|
||||||
"alchemy/embed-bundle": "^0.3.4",
|
"alchemy/embed-bundle": "^2.0.3",
|
||||||
"alchemy/geonames-api-consumer": "~0.1.0",
|
"alchemy/geonames-api-consumer": "~0.1.0",
|
||||||
"alchemy/mediavorus": "^0.4.4",
|
"alchemy/mediavorus": "^0.4.4",
|
||||||
"alchemy/oauth2php": "1.1.0",
|
"alchemy/oauth2php": "1.1.0",
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
"paragonie/random-lib": "^2.0"
|
"paragonie/random-lib": "^2.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"mikey179/vfsStream": "~1.5",
|
"mikey179/vfsstream": "~1.5",
|
||||||
"phpunit/phpunit": "^4.8|^5.0"
|
"phpunit/phpunit": "^4.8|^5.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|||||||
18
composer.lock
generated
18
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "7dd755dbcbdcf15e87b4e2e8967c1314",
|
"content-hash": "de1d9335418b121d0ede26765b0a9e7d",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "alchemy-fr/tcpdf-clone",
|
"name": "alchemy-fr/tcpdf-clone",
|
||||||
@@ -131,16 +131,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "alchemy/embed-bundle",
|
"name": "alchemy/embed-bundle",
|
||||||
"version": "0.3.8",
|
"version": "2.0.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/alchemy-fr/embed-bundle.git",
|
"url": "https://github.com/alchemy-fr/embed-bundle.git",
|
||||||
"reference": "8a9699bc51e2b2997ccfd357bb2892f3702c33ef"
|
"reference": "e02e25a04911210eaedff0adb9cf7589010c473b"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/alchemy-fr/embed-bundle/zipball/8a9699bc51e2b2997ccfd357bb2892f3702c33ef",
|
"url": "https://api.github.com/repos/alchemy-fr/embed-bundle/zipball/e02e25a04911210eaedff0adb9cf7589010c473b",
|
||||||
"reference": "8a9699bc51e2b2997ccfd357bb2892f3702c33ef",
|
"reference": "e02e25a04911210eaedff0adb9cf7589010c473b",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@@ -178,10 +178,10 @@
|
|||||||
],
|
],
|
||||||
"description": "Embed resources bundle",
|
"description": "Embed resources bundle",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/alchemy-fr/embed-bundle/tree/0.3.8",
|
"source": "https://github.com/alchemy-fr/embed-bundle/tree/2.0.3",
|
||||||
"issues": "https://github.com/alchemy-fr/embed-bundle/issues"
|
"issues": "https://github.com/alchemy-fr/embed-bundle/issues"
|
||||||
},
|
},
|
||||||
"time": "2019-01-11T10:35:41+00:00"
|
"time": "2019-05-23T15:23:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "alchemy/geonames-api-consumer",
|
"name": "alchemy/geonames-api-consumer",
|
||||||
@@ -7747,12 +7747,12 @@
|
|||||||
"version": "v1.6.4",
|
"version": "v1.6.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/mikey179/vfsStream.git",
|
"url": "https://github.com/bovigo/vfsStream.git",
|
||||||
"reference": "0247f57b2245e8ad2e689d7cee754b45fbabd592"
|
"reference": "0247f57b2245e8ad2e689d7cee754b45fbabd592"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/mikey179/vfsStream/zipball/0247f57b2245e8ad2e689d7cee754b45fbabd592",
|
"url": "https://api.github.com/repos/bovigo/vfsStream/zipball/0247f57b2245e8ad2e689d7cee754b45fbabd592",
|
||||||
"reference": "0247f57b2245e8ad2e689d7cee754b45fbabd592",
|
"reference": "0247f57b2245e8ad2e689d7cee754b45fbabd592",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
|
|||||||
3
docker/phraseanet/boot.sh
Executable file
3
docker/phraseanet/boot.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
php-fpm
|
||||||
@@ -92,9 +92,12 @@ use Alchemy\WorkerProvider\WorkerServiceProvider;
|
|||||||
use Doctrine\DBAL\Event\ConnectionEventArgs;
|
use Doctrine\DBAL\Event\ConnectionEventArgs;
|
||||||
use MediaVorus\Media\MediaInterface;
|
use MediaVorus\Media\MediaInterface;
|
||||||
use MediaVorus\MediaVorus;
|
use MediaVorus\MediaVorus;
|
||||||
|
use Monolog\Handler\ErrorLogHandler;
|
||||||
use Monolog\Handler\RotatingFileHandler;
|
use Monolog\Handler\RotatingFileHandler;
|
||||||
|
use Monolog\Handler\StreamHandler;
|
||||||
use Monolog\Logger;
|
use Monolog\Logger;
|
||||||
use Neutron\ReCaptcha\ReCaptchaServiceProvider;
|
use Neutron\ReCaptcha\ReCaptchaServiceProvider;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
use Silex\Application as SilexApplication;
|
use Silex\Application as SilexApplication;
|
||||||
use Silex\Application\TranslationTrait;
|
use Silex\Application\TranslationTrait;
|
||||||
use Silex\Application\UrlGeneratorTrait;
|
use Silex\Application\UrlGeneratorTrait;
|
||||||
@@ -253,6 +256,23 @@ class Application extends SilexApplication
|
|||||||
$this->register(new OrderServiceProvider());
|
$this->register(new OrderServiceProvider());
|
||||||
$this->register(new WebhookServiceProvider());
|
$this->register(new WebhookServiceProvider());
|
||||||
|
|
||||||
|
$this['monolog'] = $this->share(
|
||||||
|
$this->extend('monolog', function (LoggerInterface $logger, Application $app) {
|
||||||
|
|
||||||
|
$logger->pushHandler(new ErrorLogHandler(
|
||||||
|
ErrorLogHandler::SAPI,
|
||||||
|
Logger::ERROR
|
||||||
|
));
|
||||||
|
|
||||||
|
$logger->pushHandler(new StreamHandler(
|
||||||
|
fopen('php://stderr', 'w'),
|
||||||
|
Logger::ERROR
|
||||||
|
));
|
||||||
|
|
||||||
|
return $logger;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
$this['phraseanet.exception_handler'] = $this->share(function ($app) {
|
$this['phraseanet.exception_handler'] = $this->share(function ($app) {
|
||||||
/** @var PhraseaExceptionHandler $handler */
|
/** @var PhraseaExceptionHandler $handler */
|
||||||
$handler = PhraseaExceptionHandler::register($app['debug']);
|
$handler = PhraseaExceptionHandler::register($app['debug']);
|
||||||
|
|||||||
@@ -73,9 +73,26 @@ class CLI extends Application
|
|||||||
|
|
||||||
$this->bindRoutes();
|
$this->bindRoutes();
|
||||||
|
|
||||||
$this['logger'] = $this->extend('logger', function () {
|
$logger = false;
|
||||||
return new Console\Logger\ConsoleLogger(new Console\Output\ConsoleOutput(Console\Output\ConsoleOutput::VERBOSITY_DEBUG));
|
|
||||||
});
|
if ($this['configuration.store']->isSetup()){
|
||||||
|
|
||||||
|
$config = $this['configuration.store']->getConfig();
|
||||||
|
|
||||||
|
if ((isset($config['console_logger_enabled_environments']) && in_array($environment, $config['console_logger_enabled_environments']))){
|
||||||
|
$logger = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($environment == self::ENV_DEV){
|
||||||
|
$logger = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($logger){
|
||||||
|
$this['logger'] = $this->extend('logger', function () {
|
||||||
|
return new Console\Logger\ConsoleLogger(new Console\Output\ConsoleOutput(Console\Output\ConsoleOutput::VERBOSITY_DEBUG));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
ErrorHandler::register();
|
ErrorHandler::register();
|
||||||
|
|||||||
@@ -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
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class SubdefsEditor extends AbstractEditor
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<tasksettings>
|
<tasksettings>
|
||||||
<embedded>1</embedded>
|
<embedded>1</embedded>
|
||||||
<sbas/>
|
<sbas>0</sbas>
|
||||||
<type_image>1</type_image>
|
<type_image>1</type_image>
|
||||||
<type_video>1</type_video>
|
<type_video>1</type_video>
|
||||||
<type_audio>1</type_audio>
|
<type_audio>1</type_audio>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ use PHPExiftool\Driver\Metadata\Metadata;
|
|||||||
use PHPExiftool\Driver\Value\Mono as MonoValue;
|
use PHPExiftool\Driver\Value\Mono as MonoValue;
|
||||||
use Symfony\Component\Filesystem\Exception\IOException;
|
use Symfony\Component\Filesystem\Exception\IOException;
|
||||||
|
|
||||||
|
|
||||||
class ArchiveJob extends AbstractJob
|
class ArchiveJob extends AbstractJob
|
||||||
{
|
{
|
||||||
const MINCOLD = 5;
|
const MINCOLD = 5;
|
||||||
@@ -69,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());
|
||||||
@@ -82,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) {
|
||||||
@@ -561,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;
|
||||||
}
|
}
|
||||||
@@ -819,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
|
||||||
@@ -983,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);
|
||||||
@@ -1031,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);
|
||||||
@@ -1096,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()) {
|
||||||
@@ -1133,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 == '*') {
|
||||||
@@ -1187,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;
|
||||||
@@ -1360,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);
|
||||||
|
|||||||
@@ -70,12 +70,13 @@ class SubdefsJob extends AbstractJob
|
|||||||
|
|
||||||
$app->getApplicationBox()->get_connection();
|
$app->getApplicationBox()->get_connection();
|
||||||
|
|
||||||
|
$allDb = count($settings->xpath('sbas[text()="0"]')) > 0;
|
||||||
foreach ($app->getDataboxes() as $databox) {
|
foreach ($app->getDataboxes() as $databox) {
|
||||||
if (!$this->isStarted()) {
|
if (!$this->isStarted()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($settings->xpath("sbas[text()=".$databox->get_sbas_id() ."]")) == 0) {
|
if(!$allDb && count($settings->xpath("sbas[text()=".$databox->get_sbas_id() ."]")) == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class Notifier implements NotifierInterface
|
|||||||
private $logger;
|
private $logger;
|
||||||
|
|
||||||
/** @var integer */
|
/** @var integer */
|
||||||
private $timeout = 10;
|
private $timeout = 1;
|
||||||
|
|
||||||
public function __construct(\ZMQSocket $socket, LoggerInterface $logger)
|
public function __construct(\ZMQSocket $socket, LoggerInterface $logger)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -182,26 +182,26 @@
|
|||||||
</subdefs>
|
</subdefs>
|
||||||
|
|
||||||
<description>
|
<description>
|
||||||
<Title src="XMP-dc:Title" thumbtitle="1" report="1" />
|
<Title src="XMP-dc:Title" type="string" thumbtitle="1" report="1" />
|
||||||
<Creator src="XMP-dc:Creator" report="1" />
|
<Creator src="XMP-dc:Creator" type="string" report="1" />
|
||||||
<Subject src="XMP-dc:Subject" multi="1"/>
|
<Subject src="XMP-dc:Subject" type="string" multi="1"/>
|
||||||
<Description src="XMP-dc:Description" report="0" />
|
<Description src="XMP-dc:Description" type="string" report="0" />
|
||||||
<Publisher src="XMP-dc:Publisher" type="date" report="0" />
|
<Publisher src="XMP-dc:Publisher" type="date" report="0" />
|
||||||
<Contributor src="XMP-dc:Contributor" report="0"/>
|
<Contributor src="XMP-dc:Contributor" type="string" report="0"/>
|
||||||
<Date src="XMP-dc:Date" type="date" report="0" />
|
<Date src="XMP-dc:Date" type="date" report="0" />
|
||||||
<Type src="XMP-dc:Type" report="1" />
|
<Type src="XMP-dc:Type" type="string" report="1" />
|
||||||
<Format src="XMP-dc:Format" report="0" />
|
<Format src="XMP-dc:Format" type="string" report="0" />
|
||||||
<Identifier src="XMP-dc:Identifier" report="1" />
|
<Identifier src="XMP-dc:Identifier" type="string" report="1" />
|
||||||
<Source src="XMP-dc:Source" report="0" />
|
<Source src="XMP-dc:Source" type="string" report="0" />
|
||||||
<Language src="XMP-dc:Language" report="0" />
|
<Language src="XMP-dc:Language" type="string" report="0" />
|
||||||
<Relation src="XMP-dc:Relation" report="0" />
|
<Relation src="XMP-dc:Relation" type="string" report="0" />
|
||||||
<Coverage src="XMP-dc:Coverage" report="1" />
|
<Coverage src="XMP-dc:Coverage" type="string" report="1" />
|
||||||
<Rights src="XMP-dc:Rights" report="0" />
|
<Rights src="XMP-dc:Rights" type="string" report="0" />
|
||||||
<Comments src="" business="1" report="0" />
|
<Comments src="" business="1" type="string" report="0" />
|
||||||
<Filename src="Phraseanet:tf-basename" readonly="1" type="string" report="1"/>
|
<Filename src="Phraseanet:tf-basename" readonly="1" type="string" report="1"/>
|
||||||
<CameraDevice src="IFD0:Model" readonly="1" report="0" />
|
<CameraDevice src="IFD0:Model" type="string" readonly="1" report="0" />
|
||||||
<Latitude src="GPS:GPSLatitude" readonly="1" report="0" />
|
<Latitude src="GPS:GPSLatitude" type="number" readonly="1" report="0" />
|
||||||
<Longitude src="GPS:GPSLongitude" readonly="1" report="0"/>
|
<Longitude src="GPS:GPSLongitude" type="number" readonly="1" report="0"/>
|
||||||
<ArchiveDate src="Phraseanet:tf-archivedate" readonly="1" type="date" report="0" />
|
<ArchiveDate src="Phraseanet:tf-archivedate" readonly="1" type="date" report="0" />
|
||||||
<LastEditDate src="Phraseanet:tf-editdate" readonly="1" type="date" report="0" />
|
<LastEditDate src="Phraseanet:tf-editdate" readonly="1" type="date" report="0" />
|
||||||
</description>
|
</description>
|
||||||
|
|||||||
@@ -182,27 +182,27 @@
|
|||||||
</subdefs>
|
</subdefs>
|
||||||
|
|
||||||
<description>
|
<description>
|
||||||
<Object src="IPTC:ObjectName" />
|
<Object src="IPTC:ObjectName" type="string"/>
|
||||||
<Category src="IPTC:Category"/>
|
<Category src="IPTC:Category" type="string"/>
|
||||||
<SupplCategory src="IPTC:SupplementalCategories" multi="1"/>
|
<SupplCategory src="IPTC:SupplementalCategories" type="string" multi="1"/>
|
||||||
<Keywords src="IPTC:Keywords" multi="1"/>
|
<Keywords src="IPTC:Keywords" type="string" multi="1"/>
|
||||||
<SpecialInstruct src="IPTC:SpecialInstructions"/>
|
<SpecialInstruct src="IPTC:SpecialInstructions" type="string"/>
|
||||||
<Date src="IPTC:DateCreated" type="date" />
|
<Date src="IPTC:DateCreated" type="date" />
|
||||||
<Byline src="IPTC:By-line"/>
|
<Byline src="IPTC:By-line" type="string"/>
|
||||||
<BylineTitle src="IPTC:By-lineTitle"/>
|
<BylineTitle src="IPTC:By-lineTitle" type="string"/>
|
||||||
<City src="IPTC:City" />
|
<City src="IPTC:City" type="string"/>
|
||||||
<Province src="IPTC:Province-State" />
|
<Province src="IPTC:Province-State" type="string"/>
|
||||||
<Country src="IPTC:Country-PrimaryLocationName" />
|
<Country src="IPTC:Country-PrimaryLocationName" type="string"/>
|
||||||
<OriginalRef src="IPTC:OriginalTransmissionReference" />
|
<OriginalRef src="IPTC:OriginalTransmissionReference" type="string"/>
|
||||||
<Headline src="IPTC:Headline" report="1" thumbtitle="1" />
|
<Headline src="IPTC:Headline" type="string" report="1" thumbtitle="1"/>
|
||||||
<Credit src="IPTC:Credit" report="1" />
|
<Credit src="IPTC:Credit" type="string" report="1"/>
|
||||||
<Source src="IPTC:Source" />
|
<Source src="IPTC:Source" type="string"/>
|
||||||
<Caption src="IPTC:Caption-Abstract" />
|
<Caption src="IPTC:Caption-Abstract" type="string"/>
|
||||||
<CaptionWriter src="IPTC:Writer-Editor" />
|
<CaptionWriter src="IPTC:Writer-Editor" type="string"/>
|
||||||
<Longitude src="GPS:GPSLongitude" readonly="1"/>
|
<Longitude src="GPS:GPSLongitude" type="number" readonly="1"/>
|
||||||
<Latitude src="GPS:GPSLatitude" readonly="1"/>
|
<Latitude src="GPS:GPSLatitude" type="number" readonly="1"/>
|
||||||
<CameraModel src="IFD0:Model" readonly="1"/>
|
<CameraModel src="IFD0:Model" type="string" readonly="1"/>
|
||||||
<FileName src="Phraseanet:tf-basename" readonly="1" type="string" />
|
<FileName src="Phraseanet:tf-basename" type="string" readonly="1"/>
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<statbits>
|
<statbits>
|
||||||
|
|||||||
@@ -182,27 +182,27 @@
|
|||||||
</subdefs>
|
</subdefs>
|
||||||
|
|
||||||
<description>
|
<description>
|
||||||
<Objet src="IPTC:ObjectName" />
|
<Objet src="IPTC:ObjectName" type="string"/>
|
||||||
<Categorie src="IPTC:Category"/>
|
<Categorie src="IPTC:Category" type="string"/>
|
||||||
<AutresCategories src="IPTC:SupplementalCategories" multi="1"/>
|
<AutresCategories src="IPTC:SupplementalCategories" type="string" multi="1"/>
|
||||||
<MotsCles src="IPTC:Keywords" multi="1"/>
|
<MotsCles src="IPTC:Keywords" type="string" multi="1"/>
|
||||||
<Observations src="IPTC:SpecialInstructions"/>
|
<Observations src="IPTC:SpecialInstructions" type="string"/>
|
||||||
<Date src="IPTC:DateCreated" type="date" />
|
<Date src="IPTC:DateCreated" type="date"/>
|
||||||
<Signature src="IPTC:By-line"/>
|
<Signature src="IPTC:By-line" type="string"/>
|
||||||
<TitreCredits src="IPTC:By-lineTitle"/>
|
<TitreCredits src="IPTC:By-lineTitle" type="string"/>
|
||||||
<Ville src="IPTC:City" />
|
<Ville src="IPTC:City" type="string" />
|
||||||
<Province src="IPTC:Province-State" />
|
<Province src="IPTC:Province-State" type="string"/>
|
||||||
<Pays src="IPTC:Country-PrimaryLocationName" />
|
<Pays src="IPTC:Country-PrimaryLocationName" type="string"/>
|
||||||
<ReferencesOriginales src="IPTC:OriginalTransmissionReference" />
|
<ReferencesOriginales src="IPTC:OriginalTransmissionReference" type="string"/>
|
||||||
<Titre src="IPTC:Headline" report="1" thumbtitle="1" />
|
<Titre src="IPTC:Headline" type="string" report="1" thumbtitle="1" />
|
||||||
<Credit src="IPTC:Credit" report="1" />
|
<Credit src="IPTC:Credit" type="string" report="1" />
|
||||||
<Source src="IPTC:Source" />
|
<Source src="IPTC:Source" type="string"/>
|
||||||
<Legende src="IPTC:Caption-Abstract" />
|
<Legende src="IPTC:Caption-Abstract" type="string"/>
|
||||||
<Redacteur src="IPTC:Writer-Editor" />
|
<Redacteur src="IPTC:Writer-Editor" type="string"/>
|
||||||
<Longitude src="GPS:GPSLongitude" readonly="1"/>
|
<Longitude src="GPS:GPSLongitude" type="number" readonly="1"/>
|
||||||
<Latitude src="GPS:GPSLatitude" readonly="1"/>
|
<Latitude src="GPS:GPSLatitude" type="number" readonly="1"/>
|
||||||
<AppareilPhoto src="IFD0:Model" readonly="1"/>
|
<AppareilPhoto src="IFD0:Model" type="string" readonly="1"/>
|
||||||
<NomDeFichier src="Phraseanet:tf-basename" readonly="1" type="string" />
|
<NomDeFichier src="Phraseanet:tf-basename" type="string" readonly="1"/>
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<statbits>
|
<statbits>
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"JSON2": "^0.1.0",
|
"JSON2": "^0.1.0",
|
||||||
"alchemy-embed-medias": "^0.5.1",
|
|
||||||
"backbone": "^1.3.3",
|
"backbone": "^1.3.3",
|
||||||
"blueimp-file-upload": "^8.3.0",
|
"blueimp-file-upload": "^8.3.0",
|
||||||
"blueimp-load-image": "^2.17.1",
|
"blueimp-load-image": "^2.17.1",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -11,12 +11,16 @@ gulp.task('copy-alchemy-embed-debug', function(){
|
|||||||
|
|
||||||
gulp.task('copy-alchemy-embed', function(){
|
gulp.task('copy-alchemy-embed', function(){
|
||||||
// copy all dist folder:
|
// copy all dist folder:
|
||||||
if( debugMode === true) {
|
return gulp.src('vendor/alchemy/embed-bundle/dist/**/*')
|
||||||
return gulp.src('vendor/alchemy/embed-bundle/dist/**/*')
|
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));
|
||||||
|
|
||||||
|
|
||||||
|
/* if( debugMode === true) {
|
||||||
|
return gulp.src('vendor/alchemy/embed-bundle/dist/!**!/!*')
|
||||||
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));
|
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));
|
||||||
}
|
}
|
||||||
return gulp.src(config.paths.nodes + 'alchemy-embed-medias/dist/**/*')
|
return gulp.src(config.paths.nodes + 'alchemy-embed-medias/dist/!**!/!*')
|
||||||
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));
|
.pipe(gulp.dest( config.paths.build + 'vendors/alchemy-embed-medias'));*/
|
||||||
});
|
});
|
||||||
gulp.task('watch-alchemy-embed-js', function() {
|
gulp.task('watch-alchemy-embed-js', function() {
|
||||||
debugMode = true;
|
debugMode = true;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2019-04-05T07:11:41Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
|
<file date="2019-05-21T05:53:02Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
|
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
|
||||||
<source>Please provide the same passwords.</source>
|
<source>Please provide the same passwords.</source>
|
||||||
<target state="translated">Bitte geben Sie diesselbe Passwörter ein.</target>
|
<target state="translated">Bitte geben Sie diesselbe Passwörter ein.</target>
|
||||||
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
|
||||||
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
||||||
|
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
||||||
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
|
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2019-04-05T07:13:14Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
|
<file date="2019-05-21T05:54:16Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
|
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
|
||||||
<source>Please provide the same passwords.</source>
|
<source>Please provide the same passwords.</source>
|
||||||
<target state="translated">Please provide the same passwords.</target>
|
<target state="translated">Please provide the same passwords.</target>
|
||||||
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
|
||||||
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
||||||
|
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
||||||
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
|
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2019-04-05T07:14:53Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
|
<file date="2019-05-21T05:55:28Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
|
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
|
||||||
<source>Please provide the same passwords.</source>
|
<source>Please provide the same passwords.</source>
|
||||||
<target state="translated">Veuillez indiquer des mots de passe identiques.</target>
|
<target state="translated">Veuillez indiquer des mots de passe identiques.</target>
|
||||||
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
|
||||||
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
||||||
|
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
||||||
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
|
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2019-04-05T07:16:35Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
|
<file date="2019-05-21T05:56:47Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords.">
|
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords.">
|
||||||
<source>Please provide the same passwords.</source>
|
<source>Please provide the same passwords.</source>
|
||||||
<target state="new">Please provide the same passwords.</target>
|
<target state="new">Please provide the same passwords.</target>
|
||||||
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
|
||||||
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
|
||||||
|
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
|
||||||
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore">
|
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore">
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ $mainMenuBottomBorder: none !default;
|
|||||||
}
|
}
|
||||||
#mainLogo {
|
#mainLogo {
|
||||||
margin:0 5px;
|
margin:0 5px;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
li {
|
li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
BIN
resources/www/common/images/icons/linkedin.png
Normal file
BIN
resources/www/common/images/icons/linkedin.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 621 B |
@@ -5,16 +5,18 @@
|
|||||||
{{ form_label(form.logoChoice[0]) }}
|
{{ form_label(form.logoChoice[0]) }}
|
||||||
<div class="image-container">
|
<div class="image-container">
|
||||||
<img id="original-image-placeholder" alt="gabari"
|
<img id="original-image-placeholder" alt="gabari"
|
||||||
src="data:image/png;base64,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"/>
|
src="/assets/common/images/logo.png"/>
|
||||||
</div>
|
</div>
|
||||||
<a id="download-image-template" href="#">{{ 'prod::setup: download gabari' | trans }}</a>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ form_widget(form.logoChoice[1]) }}
|
{{ form_widget(form.logoChoice[1]) }}
|
||||||
{{ form_label(form.logoChoice[1]) }}
|
{{ form_label(form.logoChoice[1]) }}
|
||||||
<br>
|
<br>
|
||||||
<span id="help-text">{{ 'prod::setup: help text' | trans }}</span>
|
<span id="help-text">{{ 'admin::setup:personalisation_logo: help text' | trans }}</span>
|
||||||
<span id="error-text"></span>
|
<br>
|
||||||
|
<a id="download-image-template" href="#">{{ 'admin::setup:personalisation_logo: download gabari' | trans }}</a>
|
||||||
|
<br>
|
||||||
<div class="image-container" id="personalize-image-container">
|
<div class="image-container" id="personalize-image-container">
|
||||||
{% if app['conf'].get(['registry', 'general', 'personalize-logo-choice', 'personalizeFile']) == 'true' %}
|
{% if app['conf'].get(['registry', 'general', 'personalize-logo-choice', 'personalizeFile']) == 'true' %}
|
||||||
{% set extension = app['conf'].get(['registry', 'general', 'personalize-logo-choice', 'fileType']) %}
|
{% set extension = app['conf'].get(['registry', 'general', 'personalize-logo-choice', 'fileType']) %}
|
||||||
@@ -26,8 +28,9 @@
|
|||||||
<div>
|
<div>
|
||||||
{{ form_widget(form.personalizeLogoInput) }}
|
{{ form_widget(form.personalizeLogoInput) }}
|
||||||
<label for="general_personalize-logo-choice_personalizeLogoInput"
|
<label for="general_personalize-logo-choice_personalizeLogoInput"
|
||||||
id="select-logo-btn">{{ 'prod::setup: select file' | trans }}</label>
|
id="select-logo-btn">{{ 'admin::setup:personalisation_logo: select file' | trans }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
<span id="error-text"></span>
|
||||||
</td>
|
</td>
|
||||||
{{ form_widget(form.personalizeFile) }}
|
{{ form_widget(form.personalizeFile) }}
|
||||||
{{ form_widget(form.fileType) }}
|
{{ form_widget(form.fileType) }}
|
||||||
@@ -38,8 +41,8 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
var fileToUpload = null;
|
var fileToUpload = null;
|
||||||
|
|
||||||
var errorDimension = '{{ 'prod::setup: error text dimension' | trans }}';
|
var errorDimension = '{{ 'admin::setup:personalisation_logo: error text dimension' | trans }}';
|
||||||
var errorFileType = '{{ 'prod::setup: error text file type' | trans }}';
|
var errorFileType = '{{ 'admin::setup:personalisation_logo: error text file type' | trans }}';
|
||||||
|
|
||||||
$('#help-text').show();
|
$('#help-text').show();
|
||||||
|
|
||||||
@@ -54,7 +57,7 @@
|
|||||||
|
|
||||||
$("#download-image-template").on('click', function (event) {
|
$("#download-image-template").on('click', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
var imageInBase64 = $('#original-image-placeholder').attr('src');
|
var imageInBase64 = 'data:image/png;base64,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';
|
||||||
var mimeInfo = base64MimeType(imageInBase64);
|
var mimeInfo = base64MimeType(imageInBase64);
|
||||||
var ext = mimeInfo.split('/').pop();
|
var ext = mimeInfo.split('/').pop();
|
||||||
var filename = $('#original-image-placeholder').attr('alt') + "." + ext;
|
var filename = $('#original-image-placeholder').attr('alt') + "." + ext;
|
||||||
@@ -90,24 +93,26 @@
|
|||||||
image.src = _file.target.result;
|
image.src = _file.target.result;
|
||||||
image.file = this.file;
|
image.file = this.file;
|
||||||
image.data = this.data;
|
image.data = this.data;
|
||||||
|
|
||||||
|
if (image.file.type != 'image/png' && image.file.type!= 'image/svg+xml') {
|
||||||
|
$('#general_personalize-logo-choice_personalizeLogoInput').val("");
|
||||||
|
$('#error-text').text(errorFileType);
|
||||||
|
$('#error-text').show();
|
||||||
|
/*$('#help-text').hide();*/
|
||||||
|
$('#personalize-image-container').hide();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
image.onload = function () {
|
image.onload = function () {
|
||||||
var w = this.width,
|
var w = this.width,
|
||||||
h = this.height;
|
h = this.height;
|
||||||
|
|
||||||
var ext = this.file.type.split('/').pop().toLowerCase();
|
var ext = this.file.type.split('/').pop().toLowerCase();
|
||||||
if (ext != 'png' && ext != 'svg+xml') {
|
|
||||||
$('#general_personalize-logo-choice_personalizeLogoInput').val("");
|
|
||||||
$('#error-text').text(errorFileType);
|
|
||||||
$('#error-text').show();
|
|
||||||
$('#help-text').hide();
|
|
||||||
$('#personalize-image-container').hide();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (h > 41 || w > 120 ) {
|
if (h > 41 || w > 120 ) {
|
||||||
$('#error-text').text(errorDimension);
|
$('#error-text').text(errorDimension);
|
||||||
$('#error-text').show();
|
$('#error-text').show();
|
||||||
$('#help-text').hide();
|
/*$('#help-text').hide();*/
|
||||||
$('#personalize-image-container').hide();
|
$('#personalize-image-container').hide();
|
||||||
$('#general_personalize-logo-choice_personalizeLogoInput').val("");
|
$('#general_personalize-logo-choice_personalizeLogoInput').val("");
|
||||||
return false;
|
return false;
|
||||||
@@ -119,7 +124,7 @@
|
|||||||
loadImage(file, function (img) {
|
loadImage(file, function (img) {
|
||||||
$('#personalize-image-container').show();
|
$('#personalize-image-container').show();
|
||||||
$('#error-text').hide();
|
$('#error-text').hide();
|
||||||
$('#help-text').hide();
|
/*$('#help-text').hide();*/
|
||||||
$('#personalize-image-container').empty().append(img);
|
$('#personalize-image-container').empty().append(img);
|
||||||
}, {
|
}, {
|
||||||
maxSize: 5242880, // 5MB
|
maxSize: 5242880, // 5MB
|
||||||
@@ -148,7 +153,7 @@
|
|||||||
$('#general_personalize-logo-choice_personalizeFile').val(false);
|
$('#general_personalize-logo-choice_personalizeFile').val(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(data);
|
/* console.log(data);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,9 +4,12 @@
|
|||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label"> {{ 'Databox' | trans }}</label>
|
<label class="control-label"> {{ 'Databox' | trans }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
|
<label class="checkbox inline">
|
||||||
|
<input class="subdef_task_sbas" type="checkbox" name="sbas[]" value="0"> {{ 'All' | trans }}
|
||||||
|
</label>
|
||||||
{% for databox in app.getApplicationBox().get_databoxes() %}
|
{% for databox in app.getApplicationBox().get_databoxes() %}
|
||||||
<label class="checkbox inline">
|
<label class="checkbox inline">
|
||||||
<input type="checkbox" name="sbas[]" value="{{ databox.get_sbas_id() }}"> {{ databox.get_viewname() }}
|
<input class="subdef_task_sbas" type="checkbox" name="sbas[]" value="{{ databox.get_sbas_id() }}"> {{ databox.get_viewname() }}
|
||||||
({{ databox.get_sbas_id() }})
|
({{ databox.get_sbas_id() }})
|
||||||
</label>
|
</label>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -68,6 +71,10 @@
|
|||||||
{% block javascript %}
|
{% block javascript %}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
$(".subdef_task_sbas").change(function (e) {
|
||||||
|
checkSbas();
|
||||||
|
});
|
||||||
|
|
||||||
function minmax(v, _min, _max)
|
function minmax(v, _min, _max)
|
||||||
{
|
{
|
||||||
if(isNaN(v) || v < _min)
|
if(isNaN(v) || v < _min)
|
||||||
@@ -80,6 +87,16 @@
|
|||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
function checkSbas()
|
||||||
|
{
|
||||||
|
var alldb = $(".subdef_task_sbas[value=0]").prop('checked');
|
||||||
|
if(alldb) {
|
||||||
|
$(".subdef_task_sbas[value!=0]").prop('checked', true).attr('disabled', true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$(".subdef_task_sbas[value!=0]").attr('disabled', false);
|
||||||
|
}
|
||||||
|
}
|
||||||
function taskFillGraphic(xml)
|
function taskFillGraphic(xml)
|
||||||
{
|
{
|
||||||
if (xml) {
|
if (xml) {
|
||||||
@@ -98,12 +115,14 @@
|
|||||||
gform.flush.value = minmax(parseInt(xml.find("flush").text()), 1, 100);
|
gform.flush.value = minmax(parseInt(xml.find("flush").text()), 1, 100);
|
||||||
gform.maxrecs.value = minmax(parseInt(xml.find("maxrecs").text()), 10, 100);
|
gform.maxrecs.value = minmax(parseInt(xml.find("maxrecs").text()), 10, 100);
|
||||||
gform.maxmegs.value = minmax(parseInt(xml.find("maxmegs").text()), 64, 512);
|
gform.maxmegs.value = minmax(parseInt(xml.find("maxmegs").text()), 64, 512);
|
||||||
|
|
||||||
var $databoxes = $(gform).find("input[name='sbas[]']");
|
var $databoxes = $(gform).find("input[name='sbas[]']");
|
||||||
for(i=0; i < $databoxes.length; i++) {
|
for(i=0; i < $databoxes.length; i++) {
|
||||||
var sbid = $($databoxes[i]).attr('value');
|
var sbid = $($databoxes[i]).attr('value');
|
||||||
|
|
||||||
$($databoxes[i]).prop('checked', (xml.find("sbas").filter(function(){return $(this).text()==sbid}).length > 0));
|
$($databoxes[i]).prop('checked', (xml.find("sbas").filter(function(){return $(this).text()==sbid}).length > 0));
|
||||||
}
|
}
|
||||||
|
checkSbas();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -33,6 +33,12 @@
|
|||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a id="linkedin-link" href="https://www.linkedin.com/shareArticle?url={{ subdefList[defKey].permaviewUrl | url_encode }}" target="_blank" title="{% trans %}Send to Linkedin{% endtrans %}" >
|
||||||
|
<img src="/assets/common/images/icons/linkedin.png" title="{% trans %}Send to Linkedin{% endtrans %}" style="width:25px;vertical-align:middle;padding:0 5px;"/>
|
||||||
|
{% trans %}Send to Linkedin{% endtrans %}</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
<form action="#">
|
<form action="#">
|
||||||
<div class="form-group clearfix">
|
<div class="form-group clearfix">
|
||||||
<label style="display:inline-block;">{% trans %}Resource URL{% endtrans %}</label>
|
<label style="display:inline-block;">{% trans %}Resource URL{% endtrans %}</label>
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if settings.rollover_thumbnail == 'preview' %}
|
{% if settings.rollover_thumbnail == 'preview' %}
|
||||||
<span class="fa-stack fa-lg captionRolloverTips"
|
<span class="fa-stack fa-lg captionRolloverTips" title="{{ macro.caption(record, can_see_business, false) | e }}"
|
||||||
tooltipsrc="{{ path('prod_tooltip_caption', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId, 'context' : 'answer', 'number' : record.position|default(0) }) }}">
|
tooltipsrc="{{ path('prod_tooltip_caption', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId, 'context' : 'answer', 'number' : record.position|default(0) }) }}">
|
||||||
<i class="fa fa-circle fa-stack-2x" aria-hidden="true"></i>
|
<i class="fa fa-circle fa-stack-2x" aria-hidden="true"></i>
|
||||||
<i class="fa fa-list fa-stack-1x fa-inverse" aria-hidden="true"></i>
|
<i class="fa fa-list fa-stack-1x fa-inverse" aria-hidden="true"></i>
|
||||||
|
|||||||
Reference in New Issue
Block a user