mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 12:33:26 +00:00
Merge branch 'master' into PHRAS-3276-invert-push-and-validation-string
This commit is contained in:
30
.env
30
.env
@@ -1,4 +1,5 @@
|
||||
PHRASEANET_PROJECT_NAME=Phraseanet
|
||||
PHRASEANET_SERVER_NAME=localhost
|
||||
# Registry from where you pull Docker images
|
||||
PHRASEANET_DOCKER_REGISTRY=local
|
||||
# Tag of the Docker images
|
||||
@@ -59,8 +60,6 @@ PHRASEANET_DB_PASSWORD=root
|
||||
INSTALL_DB_TEMPLATE=DublinCore
|
||||
INSTALL_APPBOX=ab_master
|
||||
INSTALL_DATABOX=db_databox1
|
||||
PHRASEANET_SERVER_NAME=localhost
|
||||
|
||||
# binaries execution timeouts
|
||||
PHRASEANET_FFMPEG_TIMEOUT=7200
|
||||
PHRASEANET_FFPROBE_TIMEOUT=120
|
||||
@@ -81,15 +80,32 @@ PHRASEANET_API_AUTH_TOKEN_HEADER_ONLY=false
|
||||
|
||||
# Phraseanet mail configuration
|
||||
PHRASEANET_EMITTER_EMAIL=phraseanet@example.com
|
||||
PHRASEANET_MAIL_OBJECT_PREFIX=
|
||||
PHRASEANET_SMTP_ENABLED=false
|
||||
PHRASEANET_SMTP_HOST=
|
||||
PHRASEANET_SMTP_PORT=
|
||||
PHRASEANET_MAIL_OBJECT_PREFIX="phraseanet"
|
||||
PHRASEANET_SMTP_ENABLED=true
|
||||
PHRASEANET_SMTP_HOST=mailhog
|
||||
PHRASEANET_SMTP_PORT=1025
|
||||
PHRASEANET_SMTP_AUTH_ENABLED=false
|
||||
PHRASEANET_SMTP_SECURE_MODE=tls
|
||||
PHRASEANET_SMTP_SECURE_MODE=null
|
||||
PHRASEANET_SMTP_USER=
|
||||
PHRASEANET_SMTP_PASSWORD=
|
||||
|
||||
# Phraseanet Workers setting
|
||||
PHRASEANET_EXPLODE_WORKER=1
|
||||
PHRASEANET_WORKER_assetsIngest=1
|
||||
PHRASEANET_WORKER_createRecord=2
|
||||
PHRASEANET_WORKER_deleteRecord=2
|
||||
PHRASEANET_WORKER_exportMail=2
|
||||
PHRASEANET_WORKER_exposeUpload=2
|
||||
PHRASEANET_WORKER_ftp=1
|
||||
PHRASEANET_WORKER_mainQueue=3
|
||||
PHRASEANET_WORKER_populateIndex=1
|
||||
PHRASEANET_WORKER_pullAssets=1
|
||||
PHRASEANET_WORKER_recordEdit=2
|
||||
PHRASEANET_WORKER_subdefCreation=1
|
||||
PHRASEANET_WORKER_subtitle=1
|
||||
PHRASEANET_WORKER_validationReminder=1
|
||||
PHRASEANET_WORKER_webhook=1
|
||||
PHRASEANET_WORKER_writeMetadatas=1
|
||||
|
||||
# Locale setting
|
||||
|
||||
|
@@ -215,7 +215,7 @@ CMD ["php-fpm", "-F"]
|
||||
|
||||
FROM phraseanet-fpm as phraseanet-worker
|
||||
ENTRYPOINT ["docker/phraseanet/worker/entrypoint.sh"]
|
||||
CMD ["bin/console", "worker:execute"]
|
||||
CMD ["/bin/bash", "bin/run-worker.sh"]
|
||||
|
||||
#########################################################################
|
||||
# phraseanet-nginx
|
||||
|
28
Phraseanet-production-client/dist/production.js
vendored
28
Phraseanet-production-client/dist/production.js
vendored
@@ -65249,13 +65249,12 @@ var previewRecordService = function previewRecordService(services) {
|
||||
event.preventDefault();
|
||||
closePreview();
|
||||
}).on('dblclick', '.open-preview-action', function (event) {
|
||||
var $el = (0, _jquery2.default)(event.currentTarget);
|
||||
// env, pos, contId, reload
|
||||
var reload = $el.data('reload') === true ? true : false;
|
||||
_openPreview(event.currentTarget, $el.data('kind'), $el.data('position'), $el.data('id'), $el.data('kind'));
|
||||
var $element = (0, _jquery2.default)(event.currentTarget);
|
||||
openPreview($element);
|
||||
}).on('click', '.to-open-preview-action', function (event) {
|
||||
event.preventDefault();
|
||||
(0, _jquery2.default)('.open-preview-action').trigger("dblclick");
|
||||
var $element = (0, _jquery2.default)(event.currentTarget);
|
||||
openPreview($element);
|
||||
});
|
||||
$previewContainer.on('click', '.preview-navigate-action', function (event) {
|
||||
event.preventDefault();
|
||||
@@ -65499,7 +65498,18 @@ var previewRecordService = function previewRecordService(services) {
|
||||
(0, _jquery2.default)('#PREVIEWBOX img.record.zoomable').draggable();
|
||||
}
|
||||
|
||||
(0, _jquery2.default)('#SPANTITLE').empty().append(data.title);
|
||||
var basketIcon = '';
|
||||
if (data.containerType !== null) {
|
||||
if (data.containerType === 'feedback') {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket_validation.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
} else if (data.containerType === 'push') {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket_push.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
} else {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
}
|
||||
}
|
||||
|
||||
(0, _jquery2.default)('#SPANTITLE').empty().append(basketIcon + data.title);
|
||||
(0, _jquery2.default)('#PREVIEWTITLE_COLLLOGO').empty().append(data.collection_logo);
|
||||
(0, _jquery2.default)('#PREVIEWTITLE_COLLNAME').empty().append(data.databox_name + ' / ' + data.collection_name);
|
||||
|
||||
@@ -65562,6 +65572,12 @@ var previewRecordService = function previewRecordService(services) {
|
||||
(0, _jquery2.default)("iframe", $sel).css('width', NW).css('height', NH);
|
||||
}
|
||||
|
||||
function openPreview($element) {
|
||||
var reload = $element.data('reload') === true ? true : false;
|
||||
// env, pos, contId, reload
|
||||
_openPreview(event.currentTarget, $element.data('kind'), $element.data('position'), $element.data('id'), reload);
|
||||
}
|
||||
|
||||
function closePreview() {
|
||||
options.open = false;
|
||||
if (activeThumbnailFrame !== false) {
|
||||
|
@@ -65249,13 +65249,12 @@ var previewRecordService = function previewRecordService(services) {
|
||||
event.preventDefault();
|
||||
closePreview();
|
||||
}).on('dblclick', '.open-preview-action', function (event) {
|
||||
var $el = (0, _jquery2.default)(event.currentTarget);
|
||||
// env, pos, contId, reload
|
||||
var reload = $el.data('reload') === true ? true : false;
|
||||
_openPreview(event.currentTarget, $el.data('kind'), $el.data('position'), $el.data('id'), $el.data('kind'));
|
||||
var $element = (0, _jquery2.default)(event.currentTarget);
|
||||
openPreview($element);
|
||||
}).on('click', '.to-open-preview-action', function (event) {
|
||||
event.preventDefault();
|
||||
(0, _jquery2.default)('.open-preview-action').trigger("dblclick");
|
||||
var $element = (0, _jquery2.default)(event.currentTarget);
|
||||
openPreview($element);
|
||||
});
|
||||
$previewContainer.on('click', '.preview-navigate-action', function (event) {
|
||||
event.preventDefault();
|
||||
@@ -65499,7 +65498,18 @@ var previewRecordService = function previewRecordService(services) {
|
||||
(0, _jquery2.default)('#PREVIEWBOX img.record.zoomable').draggable();
|
||||
}
|
||||
|
||||
(0, _jquery2.default)('#SPANTITLE').empty().append(data.title);
|
||||
var basketIcon = '';
|
||||
if (data.containerType !== null) {
|
||||
if (data.containerType === 'feedback') {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket_validation.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
} else if (data.containerType === 'push') {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket_push.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
} else {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
}
|
||||
}
|
||||
|
||||
(0, _jquery2.default)('#SPANTITLE').empty().append(basketIcon + data.title);
|
||||
(0, _jquery2.default)('#PREVIEWTITLE_COLLLOGO').empty().append(data.collection_logo);
|
||||
(0, _jquery2.default)('#PREVIEWTITLE_COLLNAME').empty().append(data.databox_name + ' / ' + data.collection_name);
|
||||
|
||||
@@ -65562,6 +65572,12 @@ var previewRecordService = function previewRecordService(services) {
|
||||
(0, _jquery2.default)("iframe", $sel).css('width', NW).css('height', NH);
|
||||
}
|
||||
|
||||
function openPreview($element) {
|
||||
var reload = $element.data('reload') === true ? true : false;
|
||||
// env, pos, contId, reload
|
||||
_openPreview(event.currentTarget, $element.data('kind'), $element.data('position'), $element.data('id'), reload);
|
||||
}
|
||||
|
||||
function closePreview() {
|
||||
options.open = false;
|
||||
if (activeThumbnailFrame !== false) {
|
||||
|
@@ -81,20 +81,14 @@ const previewRecordService = services => {
|
||||
closePreview();
|
||||
})
|
||||
.on('dblclick', '.open-preview-action', event => {
|
||||
let $el = $(event.currentTarget);
|
||||
// env, pos, contId, reload
|
||||
let reload = $el.data('reload') === true ? true : false;
|
||||
_openPreview(
|
||||
event.currentTarget,
|
||||
$el.data('kind'),
|
||||
$el.data('position'),
|
||||
$el.data('id'),
|
||||
$el.data('kind')
|
||||
);
|
||||
let $element = $(event.currentTarget);
|
||||
openPreview($element);
|
||||
|
||||
})
|
||||
.on('click', '.to-open-preview-action', event => {
|
||||
event.preventDefault();
|
||||
$( '.open-preview-action' ).trigger( "dblclick" );
|
||||
let $element = $(event.currentTarget);
|
||||
openPreview($element);
|
||||
})
|
||||
;
|
||||
$previewContainer
|
||||
@@ -387,7 +381,18 @@ const previewRecordService = services => {
|
||||
$('#PREVIEWBOX img.record.zoomable').draggable();
|
||||
}
|
||||
|
||||
$('#SPANTITLE').empty().append(data.title);
|
||||
let basketIcon = '';
|
||||
if (data.containerType !== null ) {
|
||||
if (data.containerType === 'feedback') {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket_validation.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
} else if (data.containerType === 'push') {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket_push.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
} else {
|
||||
basketIcon = "<img src='/assets/common/images/icons/basket.png' title='' width='24' class='btn-image' style='width:24px;height: 24px;'/>";
|
||||
}
|
||||
}
|
||||
|
||||
$('#SPANTITLE').empty().append(basketIcon + data.title);
|
||||
$('#PREVIEWTITLE_COLLLOGO')
|
||||
.empty()
|
||||
.append(data.collection_logo);
|
||||
@@ -466,6 +471,18 @@ const previewRecordService = services => {
|
||||
|
||||
}
|
||||
|
||||
function openPreview($element) {
|
||||
let reload = $element.data('reload') === true ? true : false;
|
||||
// env, pos, contId, reload
|
||||
_openPreview(
|
||||
event.currentTarget,
|
||||
$element.data('kind'),
|
||||
$element.data('position'),
|
||||
$element.data('id'),
|
||||
reload
|
||||
);
|
||||
}
|
||||
|
||||
function closePreview() {
|
||||
options.open = false;
|
||||
if (activeThumbnailFrame !== false) {
|
||||
|
@@ -119,6 +119,7 @@ services:
|
||||
- redis
|
||||
- rabbitmq
|
||||
- elasticsearch
|
||||
- phraseanet
|
||||
environment:
|
||||
- PHRASEANET_PROJECT_NAME
|
||||
- PHRASEANET_TRUSTED_PROXIES
|
||||
@@ -135,6 +136,22 @@ services:
|
||||
- LC_CTYPE=C.UTF-8
|
||||
- LC_TIME=C.UTF-8
|
||||
- LC_NAME=C.UTF-8
|
||||
- PHRASEANET_EXPLODE_WORKER
|
||||
- PHRASEANET_WORKER_assetsIngest
|
||||
- PHRASEANET_WORKER_createRecord
|
||||
- PHRASEANET_WORKER_deleteRecord
|
||||
- PHRASEANET_WORKER_exportMail
|
||||
- PHRASEANET_WORKER_exposeUpload
|
||||
- PHRASEANET_WORKER_ftp
|
||||
- PHRASEANET_WORKER_mainQueue
|
||||
- PHRASEANET_WORKER_populateIndex
|
||||
- PHRASEANET_WORKER_pullAssets
|
||||
- PHRASEANET_WORKER_recordEdit
|
||||
- PHRASEANET_WORKER_subdefCreation
|
||||
- PHRASEANET_WORKER_subtitle
|
||||
- PHRASEANET_WORKER_validationReminder
|
||||
- PHRASEANET_WORKER_webhook
|
||||
- PHRASEANET_WORKER_writeMetadatas
|
||||
- IMAGEMAGICK_POLICY_VERSION
|
||||
- IMAGEMAGICK_POLICY_WIDTH
|
||||
- IMAGEMAGICK_POLICY_HEIGHT
|
||||
|
@@ -38,7 +38,7 @@ if [ -f "$FILE" ]; then
|
||||
if [[ $PHRASEANET_SMTP_ENABLED && $PHRASEANET_SMTP_ENABLED = true ]]; 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-secure-mode $PHRASEANET_SMTP_SECURE_MODE
|
||||
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
|
||||
@@ -49,7 +49,7 @@ if [ -f "$FILE" ]; then
|
||||
if [[ -n ${PHRASEANET_ADMIN_ACCOUNT_ID} && $PHRASEANET_ADMIN_ACCOUNT_ID =~ ^[0-9]+$ ]]; then
|
||||
bin/console user:password --user_id=$PHRASEANET_ADMIN_ACCOUNT_ID --password $PHRASEANET_ADMIN_ACCOUNT_PASSWORD -y
|
||||
fi
|
||||
|
||||
echo `date +"%Y-%m-%d %H:%M:%S"` " - config/configuration.yml update by Phraseanet entrypoint.sh Finished !"
|
||||
else
|
||||
echo "$FILE doesn't exist, entering setup..."
|
||||
|
||||
@@ -62,6 +62,7 @@ else
|
||||
datas
|
||||
|
||||
runuser app -c docker/phraseanet/auto-install.sh
|
||||
echo `date +"%Y-%m-%d %H:%M:%S"` " - End of Phraseanet Installation"
|
||||
fi
|
||||
|
||||
if [ ${XDEBUG_ENABLED} == "1" ]; then
|
||||
@@ -70,7 +71,8 @@ if [ ${XDEBUG_ENABLED} == "1" ]; then
|
||||
fi
|
||||
|
||||
./docker/phraseanet/plugins/console init
|
||||
#rm -Rf cache/
|
||||
rm -Rf cache/*
|
||||
chmod 600 config/configuration.yml
|
||||
|
||||
chown -R app:app \
|
||||
cache \
|
||||
@@ -84,6 +86,7 @@ if [ -d "plugins/" ];then
|
||||
chown -R app:app plugins;
|
||||
fi
|
||||
|
||||
chown -R app:app datas &
|
||||
chown -R app:app datas && echo `date +"%Y-%m-%d %H:%M:%S"` " - Finished chown on datas by entreypoint" &
|
||||
echo `date +"%Y-%m-%d %H:%M:%S"` " - Finished runnning Phraseanet entrypoint.sh"
|
||||
|
||||
bash -e docker-php-entrypoint $@
|
||||
|
@@ -29,4 +29,33 @@ if [ -f /etc/ImageMagick-$IMAGEMAGICK_POLICY_VERSION/policy.xml ]; then
|
||||
sed -i "s/.*domain=\"resource\" name=\"temporary-path\" value=\".*/<domain=\"resource\" name=\"temporary-path\" value=\"\\$IMAGEMAGICK_POLICY_TEMPORARY_PATH\" \/\>/g" /etc/ImageMagick-$IMAGEMAGICK_POLICY_VERSION/policy.xml
|
||||
fi
|
||||
|
||||
rm -rf bin/run-worker.sh
|
||||
if [ ${PHRASEANET_EXPLODE_WORKER} == "1" ]; then
|
||||
for i in `env | grep PHRASEANET_WORKER_ | cut -d'=' -f1`
|
||||
do
|
||||
queue_name="$(echo $i | cut -d'_' -f3)"
|
||||
m=$i
|
||||
command="bin/console worker:execute --queue-name=$queue_name -m ${!m} &"
|
||||
echo $command >> bin/run-worker.sh
|
||||
done
|
||||
|
||||
echo 'WORKER_NB_QUEUES=`env | grep PHRASEANET_WORKER_ | wc -l`
|
||||
WORKER_LOOP_VALUE=20s
|
||||
while true;
|
||||
do
|
||||
sleep $WORKER_LOOP_VALUE
|
||||
nb_process=`ps faux | grep "worker:execute" | grep php | wc -l`
|
||||
date_time_process=`date +"%Y-%m-%d %H:%M:%S"`
|
||||
echo $date_time_process "-" $nb_process "running workers"
|
||||
if [ $nb_process -lt $WORKER_NB_QUEUES ]
|
||||
then
|
||||
exit 1
|
||||
break
|
||||
fi
|
||||
done ' >> bin/run-worker.sh
|
||||
else
|
||||
command="bin/console worker:execute"
|
||||
echo $command >> bin/run-worker.sh
|
||||
fi
|
||||
|
||||
runuser -u app -- $@
|
||||
|
@@ -103,6 +103,18 @@ class RecordController extends Controller
|
||||
$recordTitle = htmlspecialchars($record->get_title());
|
||||
}
|
||||
|
||||
$containerType = null;
|
||||
|
||||
if ($env === 'BASK') {
|
||||
if ($record->get_container()->getValidation()) {
|
||||
$containerType = 'feedback';
|
||||
} elseif ($record->get_container()->getPusher()) {
|
||||
$containerType = 'push';
|
||||
} else {
|
||||
$containerType = 'basket';
|
||||
}
|
||||
}
|
||||
|
||||
return $this->app->json([
|
||||
"desc" => $this->render('prod/preview/caption.html.twig', [
|
||||
'record' => $record,
|
||||
@@ -131,6 +143,7 @@ class RecordController extends Controller
|
||||
]),
|
||||
"pos" => $record->getNumber(),
|
||||
"title" => $recordTitle,
|
||||
"containerType" => $containerType,
|
||||
"databox_name" => $record->getDatabox()->get_dbname(),
|
||||
"collection_name" => $record->getCollection()->get_name(),
|
||||
"collection_logo" => $record->getCollection()->getLogo($record->getBaseId(), $this->app),
|
||||
|
@@ -270,8 +270,7 @@ class record_preview extends record_adapter
|
||||
$this->title .= parent::get_title($options);
|
||||
break;
|
||||
case "BASK":
|
||||
$this->title .= $this->name . ' - ' . parent::get_title($options)
|
||||
. ' (' . $this->getNumber() . '/' . $this->total . ') ';
|
||||
$this->title .= $this->name . ' (' . $this->getNumber() . '/' . $this->total . ') - ' . parent::get_title($options);
|
||||
break;
|
||||
case "REG":
|
||||
$title = parent::get_title($options);
|
||||
|
@@ -9,7 +9,7 @@
|
||||
{% if record.is_from_basket() %}
|
||||
<a sbas="{{record.get_sbas_id()}}" id="PREV_BASKDEL_{{record.get_serialize_key}}"
|
||||
class="WorkZoneElementRemover record-remove-from-basket-action"
|
||||
data-context="reg_train_basket"
|
||||
data-context="reg_train_basket" style="display: contents;height: 24px;width: 24px;position: relative;bottom: 0px;"
|
||||
|
||||
href="{{ path('prod_baskets_basket_element_remove', { 'basket' : record.get_container().getId(), 'basket_element_id' : record.get_original_item().getId()}) }}">
|
||||
<img src="/assets/common/images/icons/delete.png" height="16" width="16" class="btn-image" title="{{ 'Remove from basket' | trans }}">
|
||||
@@ -17,7 +17,7 @@
|
||||
{% endif %}
|
||||
|
||||
<div class="record-print-action" data-kind="record" data-id="{{record.get_sbas_id()}}_{{record.get_record_id()}}">
|
||||
<img src="/assets/common/images/icons/print_history.png" height="16" width="16" class="btn-image" title="'{{ 'action : print' | trans }}">
|
||||
<img src="/assets/common/images/icons/print_history.png" height="16" width="16" class="btn-image" title="{{ 'action : print' | trans }}">
|
||||
</div>
|
||||
|
||||
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right_on_base(record.get_base_id(), constant('\\ACL::CANDWNLDHD')) or app.getAclForUser(app.getAuthenticatedUser()).has_right_on_base(record.get_base_id(), constant('\\ACL::CANDWNLDPREVIEW')) %}
|
||||
|
Reference in New Issue
Block a user