Merge branch 'master' into PHRAS-3276-invert-push-and-validation-string

This commit is contained in:
Nicolas Maillat
2021-01-15 14:21:49 +01:00
committed by GitHub
11 changed files with 166 additions and 40 deletions

30
.env
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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')) %}