From a5b2a3cc147e8d3e083ca96987a58ddcf4120240 Mon Sep 17 00:00:00 2001 From: jygaulier Date: Thu, 19 Nov 2020 21:59:29 +0100 Subject: [PATCH 01/42] add : permalinks are injected in es (PHRAS-3279) --- .../Elastic/DataboxFetcherFactory.php | 17 +++++----- .../Record/Hydrator/SubDefinitionHydrator.php | 34 +++++++++---------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/DataboxFetcherFactory.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/DataboxFetcherFactory.php index 095a9d8f44..3d396d3f07 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/DataboxFetcherFactory.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/DataboxFetcherFactory.php @@ -2,6 +2,7 @@ namespace Alchemy\Phrasea\SearchEngine\Elastic; +use Alchemy\Phrasea\Application; use Alchemy\Phrasea\Core\Configuration\PropertyAccess; use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\Record\Delegate\FetcherDelegateInterface; use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\Record\Fetcher; @@ -23,9 +24,9 @@ class DataboxFetcherFactory private $conf; /** - * @var \ArrayAccess + * @var Application */ - private $container; + private $app; /** * @var string @@ -49,16 +50,16 @@ class DataboxFetcherFactory * @param PropertyAccess $conf * @param RecordHelper $recordHelper * @param ElasticsearchOptions $options - * @param \ArrayAccess $container + * @param Application $app * @param string $structureKey * @param string $thesaurusKey */ - public function __construct(PropertyAccess $conf, RecordHelper $recordHelper, ElasticsearchOptions $options, \ArrayAccess $container, $structureKey, $thesaurusKey) + public function __construct(PropertyAccess $conf, RecordHelper $recordHelper, ElasticsearchOptions $options, Application $app, $structureKey, $thesaurusKey) { $this->conf = $conf; $this->recordHelper = $recordHelper; $this->options = $options; - $this->container = $container; + $this->app = $app; $this->structureKey = $structureKey; $this->thesaurusKey = $thesaurusKey; } @@ -82,7 +83,7 @@ class DataboxFetcherFactory new MetadataHydrator($this->conf, $connection, $this->getStructure(), $this->recordHelper), new FlagHydrator($this->getStructure(), $databox), new ThesaurusHydrator($this->getStructure(), $this->getThesaurus(), $candidateTerms), - new SubDefinitionHydrator($databox) + new SubDefinitionHydrator($this->app, $databox) ], $fetcherDelegate ); @@ -100,7 +101,7 @@ class DataboxFetcherFactory */ private function getStructure() { - return $this->container[$this->structureKey]; + return $this->app[$this->structureKey]; } /** @@ -108,6 +109,6 @@ class DataboxFetcherFactory */ private function getThesaurus() { - return $this->container[$this->thesaurusKey]; + return $this->app[$this->thesaurusKey]; } } diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php index 2dc3a5a4e0..12595a11ab 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php @@ -11,16 +11,22 @@ namespace Alchemy\Phrasea\SearchEngine\Elastic\Indexer\Record\Hydrator; +use Alchemy\Phrasea\Application; use databox; use Doctrine\DBAL\Connection; +use media_Permalink_Adapter; class SubDefinitionHydrator implements HydratorInterface { + /** @var Application */ + private $app; + /** @var databox */ private $databox; - public function __construct(databox $databox) + public function __construct(Application $app, databox $databox) { + $this->app = $app; $this->databox = $databox; } @@ -46,40 +52,34 @@ SQL; $record = null; $pls = []; while ($subdef = $statement->fetch()) { - /* - * for now disable permalink fetch, since if permalink does not exists, it will - * be created and it's very sloooow (btw: why ?) - * + // too bad : to get permalinks we must instantiate a recordadapter - // btw : why the unique permalink is not stored in subdef table ??? if($subdef['record_id'] !== $current_rid) { // sql is ordered by rid so we won't find the same record twice. $current_rid = $subdef['record_id']; + // getting all subdefs once is faster than getting subdef one by one in the main loop $pls = []; // permalinks, by subdef name try { $subdefs = $this->databox->getRecordRepository()->find($current_rid)->get_subdefs(); - foreach ($subdefs as $s) { - if(!is_null($pl = $s->get_permalink())) { - $pls[$s->get_name()] = (string)($pl->get_url()); - } - } + $pls = array_map( + function(media_Permalink_Adapter $plink) { + return (string) $plink->get_url(); + }, + media_Permalink_Adapter::getMany($this->app, $subdefs) + ); } catch (\Exception $e) { // cant get record ? ignore } } - */ + $name = $subdef['name']; $records[$subdef['record_id']]['subdefs'][$name] = array( - 'path' => $subdef['path'], + // 'path' => $subdef['path'], 'width' => $subdef['width'], 'height' => $subdef['height'], - /* - * no permalinks for now - * 'permalink' => array_key_exists($name, $pls) ? $pls[$name] : null - */ ); } } From 7b25a719b7527489904aaaa89cbaef4e5e036583 Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Fri, 20 Nov 2020 10:28:19 +0100 Subject: [PATCH 02/42] PHRAS-3658 enabled path --- .../Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php index 12595a11ab..1581b6bda3 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php @@ -76,7 +76,7 @@ SQL; $name = $subdef['name']; $records[$subdef['record_id']]['subdefs'][$name] = array( - // 'path' => $subdef['path'], + 'path' => $subdef['path'], 'width' => $subdef['width'], 'height' => $subdef['height'], 'permalink' => array_key_exists($name, $pls) ? $pls[$name] : null From 615e21b9f6c905094bbb8b648c006bc7b127a5e7 Mon Sep 17 00:00:00 2001 From: jygaulier Date: Thu, 19 Nov 2020 20:27:53 +0100 Subject: [PATCH 03/42] fix : permalink creation for subdef_id=0 is now ignored (PHRAS-3280) fix : label was not escaped for "createMany" permalinks --- lib/classes/media/Permalink/Adapter.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/classes/media/Permalink/Adapter.php b/lib/classes/media/Permalink/Adapter.php index f5aa4923c5..43d59b6d4e 100644 --- a/lib/classes/media/Permalink/Adapter.php +++ b/lib/classes/media/Permalink/Adapter.php @@ -397,6 +397,11 @@ class media_Permalink_Adapter implements cache_cacheableInterface $insk = ", 1, NOW(), NOW(), " . $connection->quote(self::cleanLabel($unicode, $record->get_title(['removeExtension' => true]))); // multiple rows foreach($subdef_ids as $subdef_id) { + // fake subdefs (icons substitution) for thumb/prev are hardcoded. + // since there is no subdef entry, we cant generate a plink + if($subdef_id === 0) { + continue; + } $inserts .= ($inserts ? ',' : '') . '(' . $connection->quote($subdef_id) . ', ' . $connection->quote($generator->generateString(64, TokenManipulator::LETTERS_AND_NUMBERS)) @@ -420,16 +425,25 @@ class media_Permalink_Adapter implements cache_cacheableInterface * @param Application $app * @param databox $databox * @param media_subdef[] $subdefs - * @throws \InvalidArgumentException|Exception + * @throws InvalidArgumentException|Exception */ public static function createMany(Application $app, databox $databox, $subdefs) { + /** @var unicode $unicode */ + $unicode = $app['unicode']; + $databoxId = $databox->get_sbas_id(); $recordIds = []; /** @var media_subdef[] $uniqSubdefs */ $uniqSubdefs = []; foreach ($subdefs as $media_subdef) { + // fake subdefs (icons substitution) for thumb/prev are hardcoded. + // since there is no subdef entry, we cant generate a plink + if($media_subdef->get_subdef_id() === 0) { + continue; + } + if ($media_subdef->get_sbas_id() !== $databoxId) { throw new InvalidArgumentException(sprintf( 'All subdefs should be from databox %d, got %d', @@ -469,7 +483,10 @@ class media_Permalink_Adapter implements cache_cacheableInterface $data[] = [ 'subdef_id' => $media_subdef->get_subdef_id(), 'token' => $generator->generateString(64, TokenManipulator::LETTERS_AND_NUMBERS), - 'label' => $records[$media_subdef->get_record_id()]->get_title(['removeExtension' => true]), + 'label' => self::cleanLabel( + $unicode, + $records[$media_subdef->get_record_id()]->get_title(['removeExtension' => true]) + ), ]; } From 889471a3ffddcddceb7aacdc35b7fa257f94f8a4 Mon Sep 17 00:00:00 2001 From: jygaulier Date: Tue, 24 Nov 2020 17:22:39 +0100 Subject: [PATCH 04/42] add : don't create missing permalinks during indexation (PHRAS-3279) --- .../Record/Hydrator/SubDefinitionHydrator.php | 71 +++++++------------ lib/classes/media/Permalink/Adapter.php | 12 ++-- 2 files changed, 34 insertions(+), 49 deletions(-) diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php index 1581b6bda3..42c3a64f85 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer/Record/Hydrator/SubDefinitionHydrator.php @@ -32,55 +32,38 @@ class SubDefinitionHydrator implements HydratorInterface public function hydrateRecords(array &$records) { - $sql = <<databox->get_connection()->executeQuery($sql, - array(array_keys($records)), - array(Connection::PARAM_INT_ARRAY) - ); + foreach(array_keys($records) as $rid) { + try { + $subdefs = $this->databox->getRecordRepository()->find($rid)->get_subdefs(); + $pls = array_map( + /** media_Permalink_Adapter|null $plink */ + function($plink) { + return $plink ? ((string) $plink->get_url()) : null; + }, + media_Permalink_Adapter::getMany($this->app, $subdefs, false) // false: don't create missing plinks + ); - $current_rid = null; - $record = null; - $pls = []; - while ($subdef = $statement->fetch()) { - - // too bad : to get permalinks we must instantiate a recordadapter - if($subdef['record_id'] !== $current_rid) { - // sql is ordered by rid so we won't find the same record twice. - $current_rid = $subdef['record_id']; - - // getting all subdefs once is faster than getting subdef one by one in the main loop - $pls = []; // permalinks, by subdef name - try { - $subdefs = $this->databox->getRecordRepository()->find($current_rid)->get_subdefs(); - $pls = array_map( - function(media_Permalink_Adapter $plink) { - return (string) $plink->get_url(); - }, - media_Permalink_Adapter::getMany($this->app, $subdefs) + foreach($subdefs as $subdef) { + $name = $subdef->get_name(); + if(substr(($path = $subdef->get_path()), -1) !== '/') { + $path .= '/'; + } + $records[$rid]['subdefs'][$name] = array( + 'path' => $path . $subdef->get_file(), + 'width' => $subdef->get_width(), + 'height' => $subdef->get_height(), + 'size' => $subdef->get_size(), + 'mime' => $subdef->get_mime(), + 'permalink' => array_key_exists($name, $pls) ? $pls[$name] : null ); - } - catch (\Exception $e) { - // cant get record ? ignore + } } + catch (\Exception $e) { + // cant get record ? ignore + } - $name = $subdef['name']; - $records[$subdef['record_id']]['subdefs'][$name] = array( - 'path' => $subdef['path'], - 'width' => $subdef['width'], - 'height' => $subdef['height'], - 'permalink' => array_key_exists($name, $pls) ? $pls[$name] : null - ); } } + } diff --git a/lib/classes/media/Permalink/Adapter.php b/lib/classes/media/Permalink/Adapter.php index 43d59b6d4e..6d73a0dcbe 100644 --- a/lib/classes/media/Permalink/Adapter.php +++ b/lib/classes/media/Permalink/Adapter.php @@ -276,7 +276,7 @@ class media_Permalink_Adapter implements cache_cacheableInterface * @param media_subdef[] $subdefs * @return media_Permalink_Adapter[] */ - public static function getMany(Application $app, $subdefs) + public static function getMany(Application $app, $subdefs, $createIfMissing = true) { Assertion::allIsInstanceOf($subdefs, media_subdef::class); @@ -303,18 +303,20 @@ class media_Permalink_Adapter implements cache_cacheableInterface $missing = array_diff_key($media_subdefs, $data); - if ($missing) { + if($missing && $createIfMissing) { self::createMany($app, $databox, $missing); $data = array_replace($data, self::fetchData($databox, array_diff_key($subdefIds, $data))); } foreach ($media_subdefs as $index => $subdef) { - if (!isset($data[$index])) { + if ($createIfMissing && !isset($data[$index])) { throw new \RuntimeException('Could not fetch some data. Should never happen'); } - - $permalinks[$index] = new self($app, $databox, $subdef, $data[$index]); + if(isset($data[$index])) { + $permalinks[$index] = new self($app, $databox, $subdef, $data[$index]); + } } + } return $permalinks; From 427216ec438ee55d42c4ff5e404f302fc53f75eb Mon Sep 17 00:00:00 2001 From: aina esokia Date: Wed, 2 Dec 2020 17:31:05 +0300 Subject: [PATCH 05/42] PHRAS-3277 validation reminder in percent --- .../SendValidationRemindersCommand.php | 43 ++--- .../Phrasea/Controller/Api/V1Controller.php | 2 +- .../Controller/Root/LoginController.php | 2 +- .../Configuration/RegistryFormManipulator.php | 2 +- .../Form/Configuration/ActionsFormType.php | 4 +- .../ValidationParticipantRepository.php | 28 +-- .../Mail/MailInfoValidationReminder.php | 20 ++- .../Worker/ValidationReminderWorker.php | 30 ++-- .../notify/validationreminder.php | 3 +- resources/locales/messages.de.xlf | 170 +++++++++--------- resources/locales/messages.en.xlf | 170 +++++++++--------- resources/locales/messages.fr.xlf | 170 +++++++++--------- resources/locales/messages.nl.xlf | 170 +++++++++--------- resources/locales/validators.de.xlf | 2 +- resources/locales/validators.en.xlf | 2 +- resources/locales/validators.fr.xlf | 2 +- resources/locales/validators.nl.xlf | 2 +- 17 files changed, 427 insertions(+), 395 deletions(-) diff --git a/lib/Alchemy/Phrasea/Command/SendValidationRemindersCommand.php b/lib/Alchemy/Phrasea/Command/SendValidationRemindersCommand.php index 659325fd98..1f914a5638 100644 --- a/lib/Alchemy/Phrasea/Command/SendValidationRemindersCommand.php +++ b/lib/Alchemy/Phrasea/Command/SendValidationRemindersCommand.php @@ -48,7 +48,7 @@ class SendValidationRemindersCommand extends Command /** @var DateTime */ private $now; - private $days; + private $timeLeftPercent; public function __construct( /** @noinspection PhpUnusedParameterInspection */ $name = null) { @@ -57,7 +57,7 @@ class SendValidationRemindersCommand extends Command $this->setDescription('Send validation reminders. (experimental)'); $this->addOption('dry',null, InputOption::VALUE_NONE,'dry run, list but don\'t act'); $this->addOption('now', null,InputArgument::OPTIONAL, 'fake today'); - $this->addOption('days', null,InputArgument::OPTIONAL, 'overwrite validation-reminder-days'); + $this->addOption('p', null,InputArgument::OPTIONAL, 'overwrite Validation-reminder-time-left-percent'); } @@ -87,15 +87,15 @@ class SendValidationRemindersCommand extends Command $this->now = new DateTime(); } - // --days - if(($v = $this->input->getOption('days')) !== null) { - if(($this->days = (int)$v) <= 0) { - $this->output->writeln(sprintf('--days must be > 0 (bad value "%s")', $v)); + // --p + if(($v = $this->input->getOption('p')) !== null) { + if(($this->timeLeftPercent = (int)$v) <= 0) { + $this->output->writeln(sprintf('--p must be > 0 (bad value "%s")', $v)); $r = false; } } else { - $this->days = (int)$this->getConf()->get(['registry', 'actions', 'validation-reminder-days']); + $this->timeLeftPercent = (int)$this->getConf()->get(['registry', 'actions', 'validation-reminder-time-left-percent']); } return $r; @@ -112,30 +112,29 @@ class SendValidationRemindersCommand extends Command return -1; } - $date_to = clone($this->now); - $interval = sprintf('P%dD', $this->days); - try { - $date_to->add(new DateInterval($interval)); - } - catch(Exception $e) { - $this->output->writeln(sprintf('Bad interval "%s" ?', $interval)); - return -1; - } - if($this->dry) { $this->output->writeln('dry mode : emails will NOT be sent'); } - $output->writeln(sprintf('from "%s" to "%s" (days=%d), ', $this->now->format(self::DATE_FMT), $date_to->format(self::DATE_FMT), $this->days)); + $output->writeln(sprintf('from "%s" to validation-reminder-time-left-percent "%s" percent, ', $this->now->format(self::DATE_FMT), $this->timeLeftPercent)); $fmt = ' participant: %-11s user: %-10s %s token: %-10s '; //$output->writeln(sprintf($fmt, 'session', 'basket', 'participant', 'user', 'token', 'email')); $last_session = null; - foreach ($this->getValidationParticipantRepository()->findNotConfirmedAndNotRemindedParticipantsByExpireDate($date_to, $this->now) as $participant) { + foreach ($this->getValidationParticipantRepository()->findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent($this->timeLeftPercent, $this->now) as $participant) { $validationSession = $participant->getSession(); $basket = $validationSession->getBasket(); + $expiresDate = $validationSession->getExpires(); + $diffInterval = $expiresDate->diff(new DateTime()); + + if ($diffInterval->days) { + $timeLeft = $diffInterval->format(' %d days %Hh%I '); + } else { + $timeLeft = $diffInterval->format(' %Hh%I '); + } + // change session ? display header if($validationSession->getId() !== $last_session) { try { @@ -222,7 +221,7 @@ class SendValidationRemindersCommand extends Command } // $this->dispatch(PhraseaEvents::VALIDATION_REMINDER, new ValidationEvent($participant, $basket, $url)); - $this->doRemind($participant, $basket, $url); + $this->doRemind($participant, $basket, $url, $timeLeft); } $this->getEntityManager()->flush(); @@ -254,13 +253,14 @@ class SendValidationRemindersCommand extends Command return $s; } - private function doRemind(ValidationParticipant $participant, Basket $basket, $url) + private function doRemind(ValidationParticipant $participant, Basket $basket, $url, $timeLeft) { $params = [ 'from' => $basket->getValidation()->getInitiator()->getId(), 'to' => $participant->getUser()->getId(), 'ssel_id' => $basket->getId(), 'url' => $url, + 'time_left'=> $timeLeft ]; $datas = json_encode($params); @@ -290,6 +290,7 @@ class SendValidationRemindersCommand extends Command if(!$this->dry) { // for real $mail = MailInfoValidationReminder::create($this->container, $receiver, $emitter); + $mail->setTimeLeft($timeLeft); $mail->setButtonUrl($params['url']); $mail->setTitle($title); diff --git a/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php b/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php index 980fe05f32..621ec8feb6 100644 --- a/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php +++ b/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php @@ -433,7 +433,7 @@ class V1Controller extends Controller 'autoRegister' => $conf->get(['registry', 'registration', 'auto-register-enabled']), ], 'push' => [ - 'validationReminder' => $conf->get(['registry', 'actions', 'validation-reminder-days']), + 'validationReminder' => $conf->get(['registry', 'actions', 'validation-reminder-time-left-percent']), 'expirationValue' => $conf->get(['registry', 'actions', 'validation-expiration-days']), ], ], diff --git a/lib/Alchemy/Phrasea/Controller/Root/LoginController.php b/lib/Alchemy/Phrasea/Controller/Root/LoginController.php index 862b5ffd84..8c02a62416 100644 --- a/lib/Alchemy/Phrasea/Controller/Root/LoginController.php +++ b/lib/Alchemy/Phrasea/Controller/Root/LoginController.php @@ -594,7 +594,7 @@ class LoginController extends Controller // move this in an event public function postAuthProcess(Request $request, User $user) { - $date = new DateTime('+' . (int) $this->getConf()->get(['registry', 'actions', 'validation-reminder-days']) . ' days'); + $date = new DateTime('+' . (int) $this->getConf()->get(['registry', 'actions', 'validation-reminder-time-left-percent']) . ' days'); $manager = $this->getEntityManager(); /* diff --git a/lib/Alchemy/Phrasea/Core/Configuration/RegistryFormManipulator.php b/lib/Alchemy/Phrasea/Core/Configuration/RegistryFormManipulator.php index 83da615077..400bbc9d2a 100644 --- a/lib/Alchemy/Phrasea/Core/Configuration/RegistryFormManipulator.php +++ b/lib/Alchemy/Phrasea/Core/Configuration/RegistryFormManipulator.php @@ -117,7 +117,7 @@ class RegistryFormManipulator ], 'actions' => [ 'download-max-size' => 120, - 'validation-reminder-days' => 2, + 'validation-reminder-time-left-percent' => 20, 'validation-expiration-days' => 10, 'auth-required-for-export' => true, 'tou-validation-required-for-export' => false, diff --git a/lib/Alchemy/Phrasea/Form/Configuration/ActionsFormType.php b/lib/Alchemy/Phrasea/Form/Configuration/ActionsFormType.php index cd99327eba..aa06cd0587 100644 --- a/lib/Alchemy/Phrasea/Form/Configuration/ActionsFormType.php +++ b/lib/Alchemy/Phrasea/Form/Configuration/ActionsFormType.php @@ -22,8 +22,8 @@ class ActionsFormType extends AbstractType 'label' => 'Maximum megabytes allowed for download', 'help_message' => 'If request is bigger, then mail is still available', ]); - $builder->add('validation-reminder-days', 'integer', [ - 'label' => 'Number of days before the end of the validation to send a reminder email', + $builder->add('validation-reminder-time-left-percent', 'integer', [ + 'label' => 'Percent of the time left before the end of the validation to send a reminder email', ]); $builder->add('validation-expiration-days', 'integer', [ 'label' => 'Default validation links duration', diff --git a/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php index 4fd55a75de..ebfe02c9d8 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php @@ -15,6 +15,7 @@ use Alchemy\Phrasea\Model\Entities\ValidationParticipant; use DateTime; use Doctrine\ORM\EntityRepository; use Doctrine\DBAL\Types\Type; +use Doctrine\ORM\Query\ResultSetMappingBuilder; class ValidationParticipantRepository extends EntityRepository { @@ -22,24 +23,31 @@ class ValidationParticipantRepository extends EntityRepository /** * Retrieve all not reminded participants where the validation has not expired * - * @param $expireDate DateTime The expiration Date + * @param $timeLeftPercent float Percent of the time left before the validation expires. * @param $today DateTime fake "today" to allow to get past/future events * (used by SendValidationRemindersCommand.php to debug with --dry) * @return ValidationParticipant[] */ - public function findNotConfirmedAndNotRemindedParticipantsByExpireDate(DateTime $expireDate, DateTime $today=null) + public function findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent($timeLeftPercent, DateTime $today=null) { - $dql = ' - SELECT p, s - FROM Phraseanet:ValidationParticipant p - JOIN p.session s - JOIN s.basket b + $rsm = new ResultSetMappingBuilder($this->_em); + $rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\ValidationParticipant', 'p'); + $selectClause = $rsm->generateSelectClause(); + + $sql = ' + SELECT ' . $selectClause . ' + FROM ValidationParticipants p + INNER JOIN ValidationSessions s on p.validation_session_id = s.id + INNER JOIN Baskets b on b.id = s.basket_id WHERE p.is_confirmed = 0 AND p.reminded IS NULL - AND s.expires < :date AND s.expires > ' . ($today===null ? 'CURRENT_TIMESTAMP()' : ':today'); + AND s.expires > '. ($today===null ? 'CURRENT_TIMESTAMP()' : ':today') . ' + AND DATE_SUB(s.expires, INTERVAL FLOOR((TO_SECONDS(s.expires) - TO_SECONDS(s.created)) * :percent) SECOND) <= '. ($today===null ? 'CURRENT_TIMESTAMP()' : ':today') + ; + + $q = $this->_em->createNativeQuery($sql, $rsm); + $q->setParameter('percent', (float)($timeLeftPercent/100)); - $q = $this->_em->createQuery($dql) - ->setParameter('date', $expireDate, Type::DATETIME); if($today !== null) { $q->setParameter('today', $today, Type::DATETIME); } diff --git a/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php b/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php index f86b6400c2..1eb66b0c00 100644 --- a/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php +++ b/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php @@ -18,6 +18,9 @@ class MailInfoValidationReminder extends AbstractMailWithLink /** @var string */ private $title; + /** @var string */ + private $timeLeft; + /** * Sets the title of the validation to remind * @@ -28,6 +31,15 @@ class MailInfoValidationReminder extends AbstractMailWithLink $this->title = $title; } + /** + * Sets time left before the validation expires + * @param $timeLeft + */ + public function setTimeLeft($timeLeft) + { + $this->timeLeft = $timeLeft; + } + /** * {@inheritdoc} */ @@ -45,8 +57,12 @@ class MailInfoValidationReminder extends AbstractMailWithLink */ public function getMessage() { - return $this->app->trans('Il ne vous reste plus que %quantity% jours pour terminer votre validation', [ - '%quantity%' => $this->app['conf']->get(['registry', 'actions', 'validation-reminder-days']) + if (!$this->timeLeft) { + throw new LogicException('You must set timeLeft before calling getSubject'); + } + + return $this->app->trans('Il ne vous reste plus que %timeLeft% pour terminer votre validation', [ + '%timeLeft%' => $this->timeLeft ]); } diff --git a/lib/Alchemy/Phrasea/WorkerManager/Worker/ValidationReminderWorker.php b/lib/Alchemy/Phrasea/WorkerManager/Worker/ValidationReminderWorker.php index 4801d209d2..bb6e663a04 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Worker/ValidationReminderWorker.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Worker/ValidationReminderWorker.php @@ -44,23 +44,27 @@ class ValidationReminderWorker implements WorkerInterface { $this->setDelivererLocator(new LazyLocator($this->app, 'notification.deliverer')); - $days = (int)$this->getConf()->get(['registry', 'actions', 'validation-reminder-days']); + $timeLeftPercent = (int)$this->getConf()->get(['registry', 'actions', 'validation-reminder-time-left-percent']); - $interval = sprintf('P%dD', $days); - $now = new DateTime(); + if ($timeLeftPercent == null) { + $this->logger->error('validation-reminder-time-left-percent is not set in the configuration!'); - $dateTo = clone($now); - try { - $dateTo->add(new DateInterval($interval)); - } catch(\Exception $e) { - $this->logger->error(sprintf('Bad interval "%s" ?', $interval)); - return ; + return 0; } - foreach ($this->getValidationParticipantRepository()->findNotConfirmedAndNotRemindedParticipantsByExpireDate($dateTo, $now) as $participant) { + foreach ($this->getValidationParticipantRepository()->findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent($timeLeftPercent, new DateTime()) as $participant) { $validationSession = $participant->getSession(); $basket = $validationSession->getBasket(); + $expiresDate = $validationSession->getExpires(); + $diffInterval = $expiresDate->diff(new DateTime()); + + if ($diffInterval->days) { + $timeLeft = $diffInterval->format(' %d days %Hh%I '); + } else { + $timeLeft = $diffInterval->format(' %Hh%I '); + } + $canSend = true; $user = $participant->getUser(); // always ok ! @@ -94,19 +98,20 @@ class ValidationReminderWorker implements WorkerInterface $url = $this->app->url('lightbox_validation', ['basket' => $basket->getId()]); } - $this->doRemind($participant, $basket, $url); + $this->doRemind($participant, $basket, $url, $timeLeft); } $this->getEntityManager()->flush(); } - private function doRemind(ValidationParticipant $participant, Basket $basket, $url) + private function doRemind(ValidationParticipant $participant, Basket $basket, $url, $timeLeft) { $params = [ 'from' => $basket->getValidation()->getInitiator()->getId(), 'to' => $participant->getUser()->getId(), 'ssel_id' => $basket->getId(), 'url' => $url, + 'time_left'=> $timeLeft ]; $datas = json_encode($params); @@ -135,6 +140,7 @@ class ValidationReminderWorker implements WorkerInterface $this->logger->info(sprintf(' -> remind "%s" from "%s" to "%s"', $title, $emitter->getEmail(), $receiver->getEmail())); $mail = MailInfoValidationReminder::create($this->app, $receiver, $emitter); + $mail->setTimeLeft($timeLeft); $mail->setButtonUrl($params['url']); $mail->setTitle($title); diff --git a/lib/classes/eventsmanager/notify/validationreminder.php b/lib/classes/eventsmanager/notify/validationreminder.php index aab62e4b83..58c0b095d8 100644 --- a/lib/classes/eventsmanager/notify/validationreminder.php +++ b/lib/classes/eventsmanager/notify/validationreminder.php @@ -39,6 +39,7 @@ class eventsmanager_notify_validationreminder extends eventsmanager_notifyAbstra { $from = $data['from']; $ssel_id = $data['ssel_id']; + $timeLeft = $data['time_left']; if (null === $user = $this->app['repo.users']->find($from)) { return []; @@ -57,7 +58,7 @@ class eventsmanager_notify_validationreminder extends eventsmanager_notifyAbstra . $basket_name . ''; $ret = [ - 'text' => $this->app->trans('Rappel : Il vous reste %number% jours pour valider %title% de %user%', ['%number%' => $this->app['conf']->get(['registry', 'actions', 'validation-reminder-days']), '%title%' => $bask_link, '%user%' => $sender]) + 'text' => $this->app->trans('Rappel : Il vous reste %timeLeft% pour valider %title% de %user%', ['%timeLeft%' => $timeLeft, '%title%' => $bask_link, '%user%' => $sender]) , 'class' => ($unread == 1 ? 'reload_baskets' : '') ]; diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index 8bbf70379c..e631a6fa99 100644 --- a/resources/locales/messages.de.xlf +++ b/resources/locales/messages.de.xlf @@ -1,6 +1,6 @@ - +
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. @@ -827,7 +827,7 @@ Aide sur les expressions regulieres Hilfe zu reguläre Ausdrücken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -960,7 +960,7 @@ Ein Fehler ist aufgetreten Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -985,8 +985,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1035,8 +1035,8 @@ Ein Fehler ist aufgetreten Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1226,7 +1226,7 @@ Aucun statut editable Kein editierbarer Status - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2588,7 +2588,7 @@ Document has been successfully substitued Dokument wurde erfolgreich ersetzt - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2729,7 +2729,7 @@ Edition impossible Bearbeitung nicht möglich - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3273,9 +3273,9 @@ Datei befindet sich nicht mehr in der Quarantäne, bitte aktualisieren Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3685,10 +3685,10 @@ Wenn Sie vorhaben, grossen Dateien zu speichern, bitte vergewissern Sie, dass sie in diese Verzeichnisse einpassen werden. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Sie haben %quantity% verbleidende Tage, um Ihr Feedback zu beenden - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4086,7 +4086,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits Status von einigen Dokumenten werden nicht erreichbar, fehlende Rechte - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4762,11 +4762,6 @@ Anzahl admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Anzahl von Tagen vor der Ende der Validierung, um eine Erinnerungsmail zu senden - Form/Configuration/ActionsFormType.php - Number of records to process per batch Anzahl von Datensätzen per Stapel zu verarbeiten @@ -4970,6 +4965,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Holt regelmässig einen FTP Repository Inhalt lokal @@ -5425,15 +5425,15 @@ tab/shift-tab : Feld ändern web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Errinerung : Sie haben %number% verbleidende Tage, um Ihr Feedback über %title% von %user% zu senden - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Erinnerung für eine Bestätigungsanfrage - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5568,7 +5568,7 @@ Record Not Found Datensatz wurde nicht gefunden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5659,7 +5659,7 @@ Reminder : validate '%title%' Errinerung : Bestätigen Sie '%title%' - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6325,7 +6325,7 @@ Start validation Bestätigung starten Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6374,7 +6374,7 @@ Story Not Found Bericht wurde nicht gefunden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6867,7 +6867,7 @@ Thumbnail has been successfully substitued Vorschau wurde erfolgreich ersetzt - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7114,8 +7114,8 @@ eine Auswahl ohne Titel eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7340,7 +7340,7 @@ eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7421,7 +7421,7 @@ Vocabulary not found Vokabeln nicht gefunden - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9665,7 +9665,7 @@ an error occured Ein Fehler ist aufgetreten - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9749,8 +9749,8 @@ boutton::ajouter hinzufügen - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9763,8 +9763,8 @@ web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9857,8 +9857,8 @@ schliessen Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9930,7 +9930,7 @@ boutton::remplacer ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10033,8 +10033,8 @@ web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10367,7 +10367,7 @@ edit::preset:: titre Titel - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10481,10 +10481,10 @@ file is not valid Datei ist nicht gültig - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11466,13 +11466,13 @@ phraseanet:: presse-papier Zwischenablage - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Voransicht prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11496,7 +11496,7 @@ phraseanet:: thesaurus Thesaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11588,7 +11588,7 @@ phraseanet::chargement Bitte warten... Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12026,28 +12026,28 @@ prod::edit: Confirmation Edition latitude longitude Länge und Breite Bestätigung - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Unmöglich, Dokumente die aus verschiedenen Bilddatenbanken stammen gleichzeitig zu bearbeiten - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude Möchten Sie die Felder Länge und Breite mit den Daten von Geoname Service aufstellen? Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No Nein, aktuelle Werte behalten - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes Ja, Geolokalisierung aktualisieren - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12062,32 +12062,32 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants %not_actionable% Dokumente können nicht bearbeitet werden, da Sie keine Rechte darauf haben - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants Keine Bearbeitung möglich. Sie haben keinen Zugriff auf die Dokumente - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Keine Dokumente können bearbeitet werden, da Sie keine Berechtigung für das Bearbeiten haben - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Vorlage - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Suchen / Ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Änderungen bestätigen oder abbrechen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12102,62 +12102,62 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::editing::replace: remplacer dans le champ In dem Feld ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs In allen Feldern ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Indexierung in Vorbereitung - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Ersetzen durch - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Optionen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere regulärer Ausdruck - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte vollständiges Feld - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ im Feld gehalten - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Gross- und Kleinschreibung unterschieden - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Alles ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Gross- und Kleinschreibung nicht unterschieden - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher Suchen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12238,7 +12238,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::thesaurusTab:dlg:%number% record(s) updated %number% Datensatz(¨e) aktualisiert - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12293,7 +12293,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) Zuviele (%number%) Datensätze zu aktualisieren (limit=%maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12354,7 +12354,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::tools: document Dokument Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12818,7 +12818,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben reponses::document sans titre ohne Titel - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13537,12 +13537,12 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben task::archive:Archivage Archivierung auf Kollektion - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Gefundenen Dateien nach einem Hotfolder archivieren - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index db7dac424b..b2c8e2a0e5 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,6 +1,6 @@ - +
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. @@ -828,7 +828,7 @@ Aide sur les expressions regulieres Help about Regular expressions - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -961,7 +961,7 @@ An error occurred Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -986,8 +986,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1036,8 +1036,8 @@ An error occurred Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1227,7 +1227,7 @@ Aucun statut editable No editable status - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2591,7 +2591,7 @@ Document has been successfully substitued Document has been successfully substituted - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2732,7 +2732,7 @@ Edition impossible Unable to edit - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3276,9 +3276,9 @@ Document is not in quarantine anymore, please refresh Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3688,10 +3688,10 @@ If you plan to store large files, make sure they will fit in these directories. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Only %quantity% days left to send your feedback - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4089,7 +4089,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits your user rights do not allow you to modify Status for some of the selected documents - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4765,11 +4765,6 @@ Number admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Number of days before the end of the validation to send a reminder e-mail - Form/Configuration/ActionsFormType.php - Number of records to process per batch Number of records to process per batch @@ -4973,6 +4968,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Periodically fetches a FTP repository content locally @@ -5428,15 +5428,15 @@ tab/shift-tab : change field web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Reminder: You have %number% day left to validate %title% from %user% - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Reminder for a feedback - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5571,7 +5571,7 @@ Record Not Found Record not found - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5662,7 +5662,7 @@ Reminder : validate '%title%' Reminder: validate '%title%' - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6328,7 +6328,7 @@ Start validation Start feedback Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6377,7 +6377,7 @@ Story Not Found Story not found - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6870,7 +6870,7 @@ Thumbnail has been successfully substitued Thumbnail has been successfully substituted - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7117,8 +7117,8 @@ an untitled selection eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7343,7 +7343,7 @@ eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7424,7 +7424,7 @@ Vocabulary not found Vocabulary not found - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9668,7 +9668,7 @@ an error occured an error occured - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9752,8 +9752,8 @@ boutton::ajouter Add - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9766,8 +9766,8 @@ web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9860,8 +9860,8 @@ Close Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9933,7 +9933,7 @@ boutton::remplacer Replace - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10036,8 +10036,8 @@ web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10370,7 +10370,7 @@ edit::preset:: titre Title - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10484,10 +10484,10 @@ file is not valid file is not valid - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11469,13 +11469,13 @@ phraseanet:: presse-papier Clipboard - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Preview prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11499,7 +11499,7 @@ phraseanet:: thesaurus Thesaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11591,7 +11591,7 @@ phraseanet::chargement Loading Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12029,28 +12029,28 @@ prod::edit: Confirmation Edition latitude longitude Longitude and latitude confirmation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Selected documents come from differents databases, unable to edit - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude Do you wish to setup the longitude and latitude fields with the data returned by Geoname service? Warning: The current values will be overwritten by these new values - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No No, keep the current value - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes Yes, update geolocation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12065,32 +12065,32 @@ Warning: The current values will be overwritten by these new values prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants Your user rights do not allow you to edit %not_actionable% documents from selection - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants You do not have the required permissions to edit 1 document - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Your user rights do not allow you to edit any of the selected documents - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Caption template - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Find / Replace - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Valid changes or Cancel - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12107,62 +12107,62 @@ Warning: The current values will be overwritten by these new values prod::editing::replace: remplacer dans le champ Replace in field - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs Replace in all fields - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Processing indexation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Replace with - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Options - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere Regular expression - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte Whole field - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ In field - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Case sensitive - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Replace All - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Case insensitive - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher Find - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12243,7 +12243,7 @@ Warning: The current values will be overwritten by these new values prod::thesaurusTab:dlg:%number% record(s) updated %number% record(s) updated - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12298,7 +12298,7 @@ Warning: The current values will be overwritten by these new values prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) Too many records to update (%number% selected, maximum limit is %maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12359,7 +12359,7 @@ Warning: The current values will be overwritten by these new values prod::tools: document Document Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12826,7 +12826,7 @@ It is possible to place several search areas reponses::document sans titre Untitled - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13545,12 +13545,12 @@ It is possible to place several search areas task::archive:Archivage Archive in collection - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Archiving file(s) from hotfolder - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index be1a227b12..9ee0244906 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,6 +1,6 @@ - +
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. @@ -827,7 +827,7 @@ Aide sur les expressions regulieres Aide sur les expressions régulières - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -960,7 +960,7 @@ Une erreur est survenue. Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -985,8 +985,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1035,8 +1035,8 @@ Une erreur est survenue Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1226,7 +1226,7 @@ Aucun statut editable Aucun status à éditer - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2588,7 +2588,7 @@ Document has been successfully substitued Le document a été substitué - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2729,7 +2729,7 @@ Edition impossible Edition impossible - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3273,9 +3273,9 @@ Ce fichier n'est plus en quarantaine, rafraîchissez la page Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3685,10 +3685,10 @@ Si vous prévoyez de stocker des fichiers volumineux, assurez-vous que les répertoires de stockage sont prévus pour. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Il ne reste plus que %quantity% jours pour terminer la validation - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4086,7 +4086,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits Vous ne disposez pas des droits nécessaires pour accéder aux status de certains documents - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4762,11 +4762,6 @@ Nombre admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Nombre de jours avant la fin de la validation pour l'envoi d'un rappel par e-mail - Form/Configuration/ActionsFormType.php - Number of records to process per batch Nombre d'enregistrements à traiter par lot @@ -4970,6 +4965,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Récupère en local le contenu d'un répertoire FTP @@ -5427,15 +5427,15 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Tab/shift-tab : Changer de champs web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Il vous reste %number% jours pour valider %title% de %user% - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Rappel pour une demande de validation se terminant bientôt - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5570,7 +5570,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Record Not Found Enregistrement non trouvé - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5661,7 +5661,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Reminder : validate '%title%' Penser à adresser le rapport de validation pour %title% - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6327,7 +6327,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Start validation Démarrer la validation Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6376,7 +6376,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Story Not Found Reportage inconnu - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6869,7 +6869,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Thumbnail has been successfully substitued La vignette a été substituée - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7116,8 +7116,8 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis une sélection "sans titre" eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7342,7 +7342,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7423,7 +7423,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Vocabulary not found Vocabulaire non trouvé - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9668,7 +9668,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le an error occured une erreur est survenue - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9752,8 +9752,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le boutton::ajouter Ajouter - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9766,8 +9766,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9860,8 +9860,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Fermer Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9933,7 +9933,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le boutton::remplacer Remplacer - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10036,8 +10036,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10370,7 +10370,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le edit::preset:: titre Nom du modèle - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10484,10 +10484,10 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le file is not valid Le fichier n'est pas valide - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11469,13 +11469,13 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet:: presse-papier Presse-papier - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Prévisualisation prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11499,7 +11499,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet:: thesaurus Thésaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11591,7 +11591,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::chargement Chargement Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12029,28 +12029,28 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod::edit: Confirmation Edition latitude longitude Confirmation de longitude et de latitude - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Impossible d'éditer simultanément des documents provenant de bases différentes - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude Souhaitez-vous régler les champs longitude et latitude avec les données retournées par Geoname Service? Attention: les valeurs actuellement en place seront écrasées par ces nouvelles valeurs - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No Non, conserver les valeurs actuelles - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes Oui, mettre à jour la géolocalisation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12065,32 +12065,32 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants %not_actionable% document(s) éditables, vous ne disposez pas des autorisations nécessaires - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants Vous ne possédez pas les autorisations d'accès requises pour éditer 1 document - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Aucun document ne peut être édité car vous ne disposez pas des autorisations nécessaires - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Modèles - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Rechercher / Remplacer - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Valider ou annuler les modifications - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12107,62 +12107,62 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::editing::replace: remplacer dans le champ Remplacer dans le champ - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs Remplacer dans tous les champs - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Indexation en cours - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Remplacer par - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Options - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere Expression régulière - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte Champ complet - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ Contenu dans le champ - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Respecter la casse - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Remplacer tout - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Insensible à la casse - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher Rechercher - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12243,7 +12243,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::thesaurusTab:dlg:%number% record(s) updated %number% enregistrement(s) mis à jour - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12298,7 +12298,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) Trop d'enregistrements à mettre à jour (%number% demandés, maximum %maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12359,7 +12359,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::tools: document Document Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12829,7 +12829,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles reponses::document sans titre Sans titre - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13548,12 +13548,12 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles task::archive:Archivage Archive dans la collection - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Archiver les fichiers déposés dans le dossier - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index 0a84b67147..f66eb64c2b 100644 --- a/resources/locales/messages.nl.xlf +++ b/resources/locales/messages.nl.xlf @@ -1,6 +1,6 @@ - +
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. @@ -832,7 +832,7 @@ Aide sur les expressions regulieres Help over reguliere expressies - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -965,7 +965,7 @@ Er is een fout opgetreden Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -990,8 +990,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1040,8 +1040,8 @@ Er is een fout opgetreden Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1231,7 +1231,7 @@ Aucun statut editable Geen enkele bewerkbare status - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2595,7 +2595,7 @@ Document has been successfully substitued Document werd met succes vervangen - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2736,7 +2736,7 @@ Edition impossible Kan niet worden bewerkt - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3283,9 +3283,9 @@ Bestand is niet meer in de quarantiane aanwezig, gelieve te vernieuwen Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3695,10 +3695,10 @@ Als u grotere files wilt opslaan, wees dan zeker deze in die mappen zullen passen. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4096,7 +4096,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits De status van bepaalde documenten is niet toegestaan omwille van gebrek aan rechten. - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4772,11 +4772,6 @@ Nummer admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Aantal dagen voor het einde van de validatie om een herinneringsmail te sturen. - Form/Configuration/ActionsFormType.php - Number of records to process per batch Number of records to process per batch @@ -4980,6 +4975,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Periodically fetches an FTP repository content locally @@ -5435,15 +5435,15 @@ tab/shift-tab verspringt tussen de velden web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Rappel : Il vous reste %number% jours pour valider %title% de %user% - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Aanmaning voor een goedkeuringsaanvraag - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5578,7 +5578,7 @@ Record Not Found Document niet gevonden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5669,7 +5669,7 @@ Reminder : validate '%title%' Reminder : validate '%title%' - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6335,7 +6335,7 @@ Start validation Start validatie Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6384,7 +6384,7 @@ Story Not Found Artikel niet gevonden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6877,7 +6877,7 @@ Thumbnail has been successfully substitued Thumbnail werd met succes vervangen - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7124,8 +7124,8 @@ Een selectie eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7350,7 +7350,7 @@ eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7431,7 +7431,7 @@ Vocabulary not found Vocabulary niet gevonden - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9675,7 +9675,7 @@ an error occured een fout geeft zich voorgedaan - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9759,8 +9759,8 @@ boutton::ajouter Toevoegen - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9773,8 +9773,8 @@ web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9867,8 +9867,8 @@ Sluiten Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9940,7 +9940,7 @@ boutton::remplacer Vervangen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10043,8 +10043,8 @@ web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10377,7 +10377,7 @@ edit::preset:: titre Titel - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10491,10 +10491,10 @@ file is not valid bestand is niet geldig - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11476,13 +11476,13 @@ phraseanet:: presse-papier Klembord - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Voorvertoning prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11506,7 +11506,7 @@ phraseanet:: thesaurus Thesaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11598,7 +11598,7 @@ phraseanet::chargement Laden Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12036,27 +12036,27 @@ prod::edit: Confirmation Edition latitude longitude prod::edit: Confirmation Edition latitude longitude - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Onmogelijk om documenten afkomstig van verschillende databases samen te bewerken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude prod::edit:confirm: Edition latitude longitude - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No prod::edit:confirm: No - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes prod::edit:confirm: Yes - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12071,32 +12071,32 @@ prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants %not_actionable% documenten kunnen niet bewerkt worden omdat u niet voldoende rechten heeft - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants 1 document kan niet worden bewerkt omdat u niet voldoende rechten heeft - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Geen enkel document kan worden bewerkt omdat u niet voldoende rechten heeft - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Bestandsmodellen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Zoeken-vervangen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Bewaar of annuleer de aanpassingen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12111,62 +12111,62 @@ prod::editing::replace: remplacer dans le champ Vervangen in het veld - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs Vervangen in alle velden - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Indexatie is bezig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Vervangende string - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Vervanging opties - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere Een reguliere expressie gebruiken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte De waarde van het veld moet exact zijn - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ De waarde is in het veld opgenomen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Respecteer de hoofdlettergevoeligheid - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Alle zoektekst vervangen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Hoofdletterongevoelig blijven - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher String zoeken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12247,7 +12247,7 @@ prod::thesaurusTab:dlg:%number% record(s) updated prod::thesaurusTab:dlg:%number% record(s) updated - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12302,7 +12302,7 @@ prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12363,7 +12363,7 @@ prod::tools: document prod::tools: document Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12827,7 +12827,7 @@ reponses::document sans titre Documenten zonder titel - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13546,12 +13546,12 @@ task::archive:Archivage Archivering - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Archivering files gevonden in een 'hotfolder' - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index 9730763588..2901f7836c 100644 --- a/resources/locales/validators.de.xlf +++ b/resources/locales/validators.de.xlf @@ -1,6 +1,6 @@ - +
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. diff --git a/resources/locales/validators.en.xlf b/resources/locales/validators.en.xlf index dd16962b89..39fe42cb32 100644 --- a/resources/locales/validators.en.xlf +++ b/resources/locales/validators.en.xlf @@ -1,6 +1,6 @@ - +
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. diff --git a/resources/locales/validators.fr.xlf b/resources/locales/validators.fr.xlf index 7d0d88a503..077963e29b 100644 --- a/resources/locales/validators.fr.xlf +++ b/resources/locales/validators.fr.xlf @@ -1,6 +1,6 @@ - +
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. diff --git a/resources/locales/validators.nl.xlf b/resources/locales/validators.nl.xlf index 343a715c91..a18b85dc84 100644 --- a/resources/locales/validators.nl.xlf +++ b/resources/locales/validators.nl.xlf @@ -1,6 +1,6 @@ - +
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. From 36bcd5dad49c1165c79cc3fe1352b60fcb3d1646 Mon Sep 17 00:00:00 2001 From: aina esokia Date: Wed, 2 Dec 2020 18:10:23 +0300 Subject: [PATCH 06/42] fix test --- .../Notification/Mail/MailInfoValidationReminder.php | 6 +----- .../Repositories/ValidationParticipantRepositoryTest.php | 3 +-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php b/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php index 1eb66b0c00..d8b0305c3f 100644 --- a/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php +++ b/lib/Alchemy/Phrasea/Notification/Mail/MailInfoValidationReminder.php @@ -57,12 +57,8 @@ class MailInfoValidationReminder extends AbstractMailWithLink */ public function getMessage() { - if (!$this->timeLeft) { - throw new LogicException('You must set timeLeft before calling getSubject'); - } - return $this->app->trans('Il ne vous reste plus que %timeLeft% pour terminer votre validation', [ - '%timeLeft%' => $this->timeLeft + '%timeLeft%' => isset($this->timeLeft)? $this->timeLeft : '' ]); } diff --git a/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php b/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php index c3b16c01e1..3ad99426fc 100644 --- a/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php +++ b/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php @@ -12,8 +12,7 @@ class ValidationParticipantRepositoryTest extends \PhraseanetTestCase $em = self::$DI['app']['orm.em']; $repo = $em->getRepository('Phraseanet:ValidationParticipant'); /* @var $repo Alchemy\Phrasea\Model\Repositories\ValidationParticipantRepository */ - $expireDate = new \DateTime('+8 days'); - $participants = $repo->findNotConfirmedAndNotRemindedParticipantsByExpireDate($expireDate); + $participants = $repo->findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent(20, new \DateTime('+7 days')); $this->assertEquals(3, count($participants)); } } From e38d143dfe46c22e2258129dcf4b194d29c772df Mon Sep 17 00:00:00 2001 From: aina esokia Date: Thu, 3 Dec 2020 18:09:03 +0300 Subject: [PATCH 07/42] PHRAS-3277 --- .../ValidationParticipantRepository.php | 43 ++++++++++++++----- .../ValidationParticipantRepositoryTest.php | 2 +- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php index ebfe02c9d8..6057bf8fa9 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/ValidationParticipantRepository.php @@ -11,6 +11,7 @@ namespace Alchemy\Phrasea\Model\Repositories; +use Alchemy\Phrasea\Cache\Exception; use Alchemy\Phrasea\Model\Entities\ValidationParticipant; use DateTime; use Doctrine\ORM\EntityRepository; @@ -27,6 +28,7 @@ class ValidationParticipantRepository extends EntityRepository * @param $today DateTime fake "today" to allow to get past/future events * (used by SendValidationRemindersCommand.php to debug with --dry) * @return ValidationParticipant[] + * @throws \Exception */ public function findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent($timeLeftPercent, DateTime $today=null) { @@ -34,16 +36,37 @@ class ValidationParticipantRepository extends EntityRepository $rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\ValidationParticipant', 'p'); $selectClause = $rsm->generateSelectClause(); - $sql = ' - SELECT ' . $selectClause . ' - FROM ValidationParticipants p - INNER JOIN ValidationSessions s on p.validation_session_id = s.id - INNER JOIN Baskets b on b.id = s.basket_id - WHERE p.is_confirmed = 0 - AND p.reminded IS NULL - AND s.expires > '. ($today===null ? 'CURRENT_TIMESTAMP()' : ':today') . ' - AND DATE_SUB(s.expires, INTERVAL FLOOR((TO_SECONDS(s.expires) - TO_SECONDS(s.created)) * :percent) SECOND) <= '. ($today===null ? 'CURRENT_TIMESTAMP()' : ':today') - ; + switch($this->_em->getConnection()->getDriver()->getName()) { + case 'pdo_mysql': + $sql = ' + SELECT ' . $selectClause . ' + FROM ValidationParticipants p + INNER JOIN ValidationSessions s on p.validation_session_id = s.id + INNER JOIN Baskets b on b.id = s.basket_id + WHERE p.is_confirmed = 0 + AND p.reminded IS NULL + AND s.expires > '. ($today===null ? 'CURRENT_TIMESTAMP()' : ':today') . ' + AND DATE_SUB(s.expires, INTERVAL FLOOR((TO_SECONDS(s.expires) - TO_SECONDS(s.created)) * :percent) SECOND) <= '. ($today===null ? 'CURRENT_TIMESTAMP()' : ':today') + ; + + break; + case 'pdo_sqlite': + $sql = ' + SELECT ' . $selectClause . ' + FROM ValidationParticipants p + INNER JOIN ValidationSessions s on p.validation_session_id = s.id + INNER JOIN Baskets b on b.id = s.basket_id + WHERE p.is_confirmed = 0 + AND p.reminded IS NULL + AND s.expires > '. ($today===null ? 'strftime("%s","now")' : 'strftime("%s", :today)') . ' + AND (strftime("%s", s.expires) - ((strftime("%s", s.expires) - strftime("%s", s.created)) * :percent) )<= '. ($today===null ? 'strftime("%s","now")' : 'strftime("%s", :today)') + ; + + break; + default: + throw new Exception('Unused PDO!, if necessary define the query for this PDO'); + + } $q = $this->_em->createNativeQuery($sql, $rsm); $q->setParameter('percent', (float)($timeLeftPercent/100)); diff --git a/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php b/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php index 3ad99426fc..48fdc5bb7c 100644 --- a/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php +++ b/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php @@ -12,7 +12,7 @@ class ValidationParticipantRepositoryTest extends \PhraseanetTestCase $em = self::$DI['app']['orm.em']; $repo = $em->getRepository('Phraseanet:ValidationParticipant'); /* @var $repo Alchemy\Phrasea\Model\Repositories\ValidationParticipantRepository */ - $participants = $repo->findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent(20, new \DateTime('+7 days')); + $participants = $repo->findNotConfirmedAndNotRemindedParticipantsByTimeLeftPercent(20, new \DateTime()); $this->assertEquals(3, count($participants)); } } From cbfb8549382845eb23e1ca2c7ce36b2c21636a5c Mon Sep 17 00:00:00 2001 From: aina esokia Date: Mon, 7 Dec 2020 11:59:20 +0300 Subject: [PATCH 08/42] PHRAS-3277 generate locale --- resources/locales/messages.de.xlf | 170 ++++++++++++++-------------- resources/locales/messages.en.xlf | 170 ++++++++++++++-------------- resources/locales/messages.fr.xlf | 170 ++++++++++++++-------------- resources/locales/messages.nl.xlf | 170 ++++++++++++++-------------- resources/locales/validators.de.xlf | 2 +- resources/locales/validators.en.xlf | 2 +- resources/locales/validators.fr.xlf | 2 +- resources/locales/validators.nl.xlf | 2 +- 8 files changed, 344 insertions(+), 344 deletions(-) diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index e350a36c4d..e65d02f6aa 100644 --- a/resources/locales/messages.de.xlf +++ b/resources/locales/messages.de.xlf @@ -1,6 +1,6 @@ - +
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. @@ -827,7 +827,7 @@ Aide sur les expressions regulieres Hilfe zu reguläre Ausdrücken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -960,7 +960,7 @@ Ein Fehler ist aufgetreten Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -985,8 +985,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1035,8 +1035,8 @@ Ein Fehler ist aufgetreten Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1226,7 +1226,7 @@ Aucun statut editable Kein editierbarer Status - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2588,7 +2588,7 @@ Document has been successfully substitued Dokument wurde erfolgreich ersetzt - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2729,7 +2729,7 @@ Edition impossible Bearbeitung nicht möglich - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3273,9 +3273,9 @@ Datei befindet sich nicht mehr in der Quarantäne, bitte aktualisieren Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3685,10 +3685,10 @@ Wenn Sie vorhaben, grossen Dateien zu speichern, bitte vergewissern Sie, dass sie in diese Verzeichnisse einpassen werden. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Sie haben %quantity% verbleidende Tage, um Ihr Feedback zu beenden - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4086,7 +4086,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits Status von einigen Dokumenten werden nicht erreichbar, fehlende Rechte - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4762,11 +4762,6 @@ Anzahl admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Anzahl von Tagen vor der Ende der Validierung, um eine Erinnerungsmail zu senden - Form/Configuration/ActionsFormType.php - Number of records to process per batch Anzahl von Datensätzen per Stapel zu verarbeiten @@ -4970,6 +4965,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Holt regelmässig einen FTP Repository Inhalt lokal @@ -5425,15 +5425,15 @@ tab/shift-tab : Feld ändern web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Errinerung : Sie haben %number% verbleidende Tage, um Ihr Feedback über %title% von %user% zu senden - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Erinnerung für eine Bestätigungsanfrage - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5568,7 +5568,7 @@ Record Not Found Datensatz wurde nicht gefunden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5659,7 +5659,7 @@ Reminder : validate '%title%' Errinerung : Bestätigen Sie '%title%' - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6325,7 +6325,7 @@ Start validation Bestätigung starten Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6374,7 +6374,7 @@ Story Not Found Bericht wurde nicht gefunden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6867,7 +6867,7 @@ Thumbnail has been successfully substitued Vorschau wurde erfolgreich ersetzt - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7114,8 +7114,8 @@ eine Auswahl ohne Titel eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7340,7 +7340,7 @@ eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7421,7 +7421,7 @@ Vocabulary not found Vokabeln nicht gefunden - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9665,7 +9665,7 @@ an error occured Ein Fehler ist aufgetreten - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9749,8 +9749,8 @@ boutton::ajouter hinzufügen - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9763,8 +9763,8 @@ web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9857,8 +9857,8 @@ schliessen Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9930,7 +9930,7 @@ boutton::remplacer ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10033,8 +10033,8 @@ web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10367,7 +10367,7 @@ edit::preset:: titre Titel - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10481,10 +10481,10 @@ file is not valid Datei ist nicht gültig - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11466,13 +11466,13 @@ phraseanet:: presse-papier Zwischenablage - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Voransicht prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11496,7 +11496,7 @@ phraseanet:: thesaurus Thesaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11588,7 +11588,7 @@ phraseanet::chargement Bitte warten... Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12026,28 +12026,28 @@ prod::edit: Confirmation Edition latitude longitude Länge und Breite Bestätigung - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Unmöglich, Dokumente die aus verschiedenen Bilddatenbanken stammen gleichzeitig zu bearbeiten - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude Möchten Sie die Felder Länge und Breite mit den Daten von Geoname Service aufstellen? Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No Nein, aktuelle Werte behalten - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes Ja, Geolokalisierung aktualisieren - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12062,32 +12062,32 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants %not_actionable% Dokumente können nicht bearbeitet werden, da Sie keine Rechte darauf haben - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants Keine Bearbeitung möglich. Sie haben keinen Zugriff auf die Dokumente - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Keine Dokumente können bearbeitet werden, da Sie keine Berechtigung für das Bearbeiten haben - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Vorlage - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Suchen / Ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Änderungen bestätigen oder abbrechen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12102,62 +12102,62 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::editing::replace: remplacer dans le champ In dem Feld ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs In allen Feldern ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Indexierung in Vorbereitung - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Ersetzen durch - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Optionen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere regulärer Ausdruck - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte vollständiges Feld - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ im Feld gehalten - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Gross- und Kleinschreibung unterschieden - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Alles ersetzen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Gross- und Kleinschreibung nicht unterschieden - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher Suchen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12238,7 +12238,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::thesaurusTab:dlg:%number% record(s) updated %number% Datensatz(¨e) aktualisiert - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12293,7 +12293,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) Zuviele (%number%) Datensätze zu aktualisieren (limit=%maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12354,7 +12354,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben prod::tools: document Dokument Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12818,7 +12818,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben reponses::document sans titre ohne Titel - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13537,12 +13537,12 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben task::archive:Archivage Archivierung auf Kollektion - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Gefundenen Dateien nach einem Hotfolder archivieren - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index a97e7a9905..5ca44310e9 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,6 +1,6 @@ - +
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. @@ -828,7 +828,7 @@ Aide sur les expressions regulieres Help about Regular expressions - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -961,7 +961,7 @@ An error occurred Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -986,8 +986,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1036,8 +1036,8 @@ An error occurred Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1227,7 +1227,7 @@ Aucun statut editable No editable status - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2591,7 +2591,7 @@ Document has been successfully substitued Document has been successfully substituted - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2732,7 +2732,7 @@ Edition impossible Unable to edit - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3276,9 +3276,9 @@ Document is not in quarantine anymore, please refresh Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3688,10 +3688,10 @@ If you plan to store large files, make sure they will fit in these directories. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Only %quantity% days left to send your feedback - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4089,7 +4089,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits your user rights do not allow you to modify Status for some of the selected documents - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4765,11 +4765,6 @@ Number admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Number of days before the end of the validation to send a reminder e-mail - Form/Configuration/ActionsFormType.php - Number of records to process per batch Number of records to process per batch @@ -4973,6 +4968,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Periodically fetches a FTP repository content locally @@ -5428,15 +5428,15 @@ tab/shift-tab : change field web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Reminder: You have %number% day left to validate %title% from %user% - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Reminder for a feedback - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5571,7 +5571,7 @@ Record Not Found Record not found - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5662,7 +5662,7 @@ Reminder : validate '%title%' Reminder: validate '%title%' - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6328,7 +6328,7 @@ Start validation Start feedback Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6377,7 +6377,7 @@ Story Not Found Story not found - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6870,7 +6870,7 @@ Thumbnail has been successfully substitued Thumbnail has been successfully substituted - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7117,8 +7117,8 @@ an untitled selection eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7343,7 +7343,7 @@ eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7424,7 +7424,7 @@ Vocabulary not found Vocabulary not found - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9668,7 +9668,7 @@ an error occured an error occured - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9752,8 +9752,8 @@ boutton::ajouter Add - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9766,8 +9766,8 @@ web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9860,8 +9860,8 @@ Close Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9933,7 +9933,7 @@ boutton::remplacer Replace - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10036,8 +10036,8 @@ web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10370,7 +10370,7 @@ edit::preset:: titre Title - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10484,10 +10484,10 @@ file is not valid file is not valid - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11469,13 +11469,13 @@ phraseanet:: presse-papier Clipboard - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Preview prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11499,7 +11499,7 @@ phraseanet:: thesaurus Thesaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11591,7 +11591,7 @@ phraseanet::chargement Loading Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12029,28 +12029,28 @@ prod::edit: Confirmation Edition latitude longitude Longitude and latitude confirmation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Selected documents come from differents databases, unable to edit - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude Do you wish to setup the longitude and latitude fields with the data returned by Geoname service? Warning: The current values will be overwritten by these new values - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No No, keep the current value - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes Yes, update geolocation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12065,32 +12065,32 @@ Warning: The current values will be overwritten by these new values prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants Your user rights do not allow you to edit %not_actionable% documents from selection - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants You do not have the required permissions to edit 1 document - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Your user rights do not allow you to edit any of the selected documents - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Caption template - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Find / Replace - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Valid changes or Cancel - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12107,62 +12107,62 @@ Warning: The current values will be overwritten by these new values prod::editing::replace: remplacer dans le champ Replace in field - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs Replace in all fields - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Processing indexation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Replace with - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Options - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere Regular expression - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte Whole field - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ In field - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Case sensitive - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Replace All - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Case insensitive - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher Find - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12243,7 +12243,7 @@ Warning: The current values will be overwritten by these new values prod::thesaurusTab:dlg:%number% record(s) updated %number% record(s) updated - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12298,7 +12298,7 @@ Warning: The current values will be overwritten by these new values prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) Too many records to update (%number% selected, maximum limit is %maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12359,7 +12359,7 @@ Warning: The current values will be overwritten by these new values prod::tools: document Document Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12826,7 +12826,7 @@ It is possible to place several search areas reponses::document sans titre Untitled - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13545,12 +13545,12 @@ It is possible to place several search areas task::archive:Archivage Archive in collection - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Archiving file(s) from hotfolder - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index 90ccffffd7..c6fb859448 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,6 +1,6 @@ - +
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. @@ -827,7 +827,7 @@ Aide sur les expressions regulieres Aide sur les expressions régulières - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -960,7 +960,7 @@ Une erreur est survenue. Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -985,8 +985,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1035,8 +1035,8 @@ Une erreur est survenue Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1226,7 +1226,7 @@ Aucun statut editable Aucun status à éditer - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2588,7 +2588,7 @@ Document has been successfully substitued Le document a été substitué - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2729,7 +2729,7 @@ Edition impossible Edition impossible - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3273,9 +3273,9 @@ Ce fichier n'est plus en quarantaine, rafraîchissez la page Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3685,10 +3685,10 @@ Si vous prévoyez de stocker des fichiers volumineux, assurez-vous que les répertoires de stockage sont prévus pour. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Il ne reste plus que %quantity% jours pour terminer la validation - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4086,7 +4086,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits Vous ne disposez pas des droits nécessaires pour accéder aux status de certains documents - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4762,11 +4762,6 @@ Nombre admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Nombre de jours avant la fin de la validation pour l'envoi d'un rappel par e-mail - Form/Configuration/ActionsFormType.php - Number of records to process per batch Nombre d'enregistrements à traiter par lot @@ -4970,6 +4965,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Récupère en local le contenu d'un répertoire FTP @@ -5427,15 +5427,15 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Tab/shift-tab : Changer de champs web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Il vous reste %number% jours pour valider %title% de %user% - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Rappel pour une demande de validation se terminant bientôt - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5570,7 +5570,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Record Not Found Enregistrement non trouvé - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5661,7 +5661,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Reminder : validate '%title%' Penser à adresser le rapport de validation pour %title% - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6327,7 +6327,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Start validation Démarrer la validation Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6376,7 +6376,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Story Not Found Reportage inconnu - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6869,7 +6869,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Thumbnail has been successfully substitued La vignette a été substituée - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7116,8 +7116,8 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis une sélection "sans titre" eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7342,7 +7342,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7423,7 +7423,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Vocabulary not found Vocabulaire non trouvé - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9668,7 +9668,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le an error occured une erreur est survenue - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9752,8 +9752,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le boutton::ajouter Ajouter - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9766,8 +9766,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9860,8 +9860,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Fermer Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9933,7 +9933,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le boutton::remplacer Remplacer - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10036,8 +10036,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10370,7 +10370,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le edit::preset:: titre Nom du modèle - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10484,10 +10484,10 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le file is not valid Le fichier n'est pas valide - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11469,13 +11469,13 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet:: presse-papier Presse-papier - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Prévisualisation prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11499,7 +11499,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet:: thesaurus Thésaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11591,7 +11591,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::chargement Chargement Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12029,28 +12029,28 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod::edit: Confirmation Edition latitude longitude Confirmation de longitude et de latitude - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Impossible d'éditer simultanément des documents provenant de bases différentes - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude Souhaitez-vous régler les champs longitude et latitude avec les données retournées par Geoname Service? Attention: les valeurs actuellement en place seront écrasées par ces nouvelles valeurs - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No Non, conserver les valeurs actuelles - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes Oui, mettre à jour la géolocalisation - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12065,32 +12065,32 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants %not_actionable% document(s) éditables, vous ne disposez pas des autorisations nécessaires - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants Vous ne possédez pas les autorisations d'accès requises pour éditer 1 document - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Aucun document ne peut être édité car vous ne disposez pas des autorisations nécessaires - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Modèles - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Rechercher / Remplacer - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Valider ou annuler les modifications - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12107,62 +12107,62 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::editing::replace: remplacer dans le champ Remplacer dans le champ - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs Remplacer dans tous les champs - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Indexation en cours - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Remplacer par - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Options - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere Expression régulière - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte Champ complet - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ Contenu dans le champ - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Respecter la casse - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Remplacer tout - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Insensible à la casse - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher Rechercher - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12243,7 +12243,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::thesaurusTab:dlg:%number% record(s) updated %number% enregistrement(s) mis à jour - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12298,7 +12298,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) Trop d'enregistrements à mettre à jour (%number% demandés, maximum %maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12359,7 +12359,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles prod::tools: document Document Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12829,7 +12829,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles reponses::document sans titre Sans titre - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13548,12 +13548,12 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles task::archive:Archivage Archive dans la collection - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Archiver les fichiers déposés dans le dossier - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index 358ad081cf..aae278348e 100644 --- a/resources/locales/messages.nl.xlf +++ b/resources/locales/messages.nl.xlf @@ -1,6 +1,6 @@ - +
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. @@ -832,7 +832,7 @@ Aide sur les expressions regulieres Help over reguliere expressies - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Ajouter a @@ -965,7 +965,7 @@ Er is een fout opgetreden Controller/Prod/MoveCollectionController.php Controller/Prod/StoryController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Controller/Prod/LazaretController.php Controller/Prod/BasketController.php Controller/Admin/CollectionController.php @@ -990,8 +990,8 @@ Controller/Admin/DataboxController.php Controller/Admin/DataboxController.php Controller/Admin/DataboxesController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php web/admin/databases.html.twig admin/collection/collection.html.twig admin/collection/suggested_value.html.twig @@ -1040,8 +1040,8 @@ Er is een fout opgetreden Order/Controller/ProdOrderController.php Controller/Prod/BasketController.php - Controller/Api/V1Controller.php - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Controller/Admin/CollectionController.php Controller/Admin/SearchEngineController.php Controller/Admin/DataboxController.php @@ -1231,7 +1231,7 @@ Aucun statut editable Geen enkele bewerkbare status - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Aucune @@ -2595,7 +2595,7 @@ Document has been successfully substitued Document werd met succes vervangen - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Document refuse par %name% @@ -2736,7 +2736,7 @@ Edition impossible Kan niet worden bewerkt - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Editor @@ -3283,9 +3283,9 @@ Bestand is niet meer in de quarantiane aanwezig, gelieve te vernieuwen Controller/Prod/LazaretController.php Controller/Prod/LazaretController.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php - Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php + Model/Manipulator/LazaretManipulator.php File is too big : 64k max @@ -3695,10 +3695,10 @@ Als u grotere files wilt opslaan, wees dan zeker deze in die mappen zullen passen. web/setup/step2.html.twig - - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Il ne vous reste plus que %quantity% jours pour terminer votre validation - Notification/Mail/MailInfoValidationReminder.php + + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Il ne vous reste plus que %timeLeft% pour terminer votre validation + Notification/Mail/MailInfoValidationReminder.php Il se peux que vous ne voyez pas tous les elements. Vous ne verrez que les elements correspondants aux collections sur lesquelles vous gerez les commandes @@ -4096,7 +4096,7 @@ Les status de certains documents ne sont pas accessibles par manque de droits De status van bepaalde documenten is niet toegestaan omwille van gebrek aan rechten. - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Les termes apparaissent dans le(s) champs @@ -4772,11 +4772,6 @@ Nummer admin/databox/details.html.twig - - Number of days before the end of the validation to send a reminder email - Aantal dagen voor het einde van de validatie om een herinneringsmail te sturen. - Form/Configuration/ActionsFormType.php - Number of records to process per batch Number of records to process per batch @@ -4980,6 +4975,11 @@ Pause Controller/Prod/LanguageController.php + + Percent of the time left before the end of the validation to send a reminder email + Percent of the time left before the end of the validation to send a reminder email + Form/Configuration/ActionsFormType.php + Periodically fetches an FTP repository content locally Periodically fetches an FTP repository content locally @@ -5435,15 +5435,15 @@ tab/shift-tab verspringt tussen de velden web/prod/index.html.twig - - Rappel : Il vous reste %number% jours pour valider %title% de %user% - Rappel : Il vous reste %number% jours pour valider %title% de %user% - eventsmanager/notify/validationreminder.php + + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + Rappel : Il vous reste %timeLeft% pour valider %title% de %user% + eventsmanager/notify/validationreminder.php Rappel pour une demande de validation Aanmaning voor een goedkeuringsaanvraag - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Rapport de Validation @@ -5578,7 +5578,7 @@ Record Not Found Document niet gevonden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Record removed from basket @@ -5669,7 +5669,7 @@ Reminder : validate '%title%' Reminder : validate '%title%' - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Remove ICC Profile @@ -6335,7 +6335,7 @@ Start validation Start validatie Notification/Mail/MailInfoValidationRequest.php - Notification/Mail/MailInfoValidationReminder.php + Notification/Mail/MailInfoValidationReminder.php Started @@ -6384,7 +6384,7 @@ Story Not Found Artikel niet gevonden - Controller/Api/V1Controller.php + Controller/Api/V1Controller.php Story created @@ -6877,7 +6877,7 @@ Thumbnail has been successfully substitued Thumbnail werd met succes vervangen - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php Thumbnails directory is mounted to be accessible via HTTP, while other files are not. @@ -7124,8 +7124,8 @@ Een selectie eventsmanager/notify/validate.php eventsmanager/notify/validate.php - eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php Unhandled Error @@ -7350,7 +7350,7 @@ eventsmanager/notify/validate.php eventsmanager/notify/validationdone.php eventsmanager/notify/validationreminder.php - eventsmanager/notify/validationreminder.php + eventsmanager/notify/validationreminder.php lightbox/IE6/validate.html.twig @@ -7431,7 +7431,7 @@ Vocabulary not found Vocabulary niet gevonden - Controller/Prod/EditController.php + Controller/Prod/EditController.php Vocabulary type @@ -9675,7 +9675,7 @@ an error occured een fout geeft zich voorgedaan - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php an error occured : %message% @@ -9759,8 +9759,8 @@ boutton::ajouter Toevoegen - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig admin/collection/suggested_value.html.twig @@ -9773,8 +9773,8 @@ web/common/dialog_export.html.twig web/common/dialog_export.html.twig web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Youtube/video_modify.html.twig @@ -9867,8 +9867,8 @@ Sluiten Controller/Prod/LanguageController.php web/common/dialog_export.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod/actions/Push.html.twig web/report/all_content.html.twig web/thesaurus/accept.html.twig @@ -9940,7 +9940,7 @@ boutton::remplacer Vervangen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig boutton::renouveller @@ -10043,8 +10043,8 @@ web/account/access.html.twig web/account/reset-email.html.twig web/account/account.html.twig - prod/actions/edit_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig Bridge/Flickr/photo_modify.html.twig Bridge/Flickr/photo_moveinto_photoset.html.twig Bridge/Flickr/photoset_createcontainer.html.twig @@ -10377,7 +10377,7 @@ edit::preset:: titre Titel - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig effacer (OK) ou quitter (Annuler) ? @@ -10491,10 +10491,10 @@ file is not valid bestand is niet geldig - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php flash @@ -11476,13 +11476,13 @@ phraseanet:: presse-papier Klembord - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: preview Voorvertoning prod/actions/printer_default.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig phraseanet:: propositions @@ -11506,7 +11506,7 @@ phraseanet:: thesaurus Thesaurus web/prod/tab_headers.html.twig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/index.html.twig @@ -11598,7 +11598,7 @@ phraseanet::chargement Laden Controller/Prod/LanguageController.php - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig web/thesaurus/thesaurus.html.twig admin/collection/suggested_value.html.twig @@ -12036,27 +12036,27 @@ prod::edit: Confirmation Edition latitude longitude prod::edit: Confirmation Edition latitude longitude - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit: Impossible d'editer simultanement des documents provenant de bases differentes Onmogelijk om documenten afkomstig van verschillende databases samen te bewerken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Edition latitude longitude prod::edit:confirm: Edition latitude longitude - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: No prod::edit:confirm: No - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:confirm: Yes prod::edit:confirm: Yes - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::edit:story select all @@ -12071,32 +12071,32 @@ prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants %not_actionable% documenten kunnen niet bewerkt worden omdat u niet voldoende rechten heeft - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: 1 document ne peut etre edite car vos droits sont induffisants 1 document kan niet worden bewerkt omdat u niet voldoende rechten heeft - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: aucun documents ne peuvent etre edites car vos droits sont induffisants Geen enkel document kan worden bewerkt omdat u niet voldoende rechten heeft - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: modeles de fiches Bestandsmodellen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: rechercher-remplacer Zoeken-vervangen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing: valider ou annuler les modifications Bewaar of annuleer de aanpassingen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::annulation: abandonner les modification ? @@ -12111,62 +12111,62 @@ prod::editing::replace: remplacer dans le champ Vervangen in het veld - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing::replace: remplacer dans tous les champs Vervangen in alle velden - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:indexation en cours Indexatie is bezig - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: chaine remplacante Vervangende string - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace: options de remplacement Vervanging opties - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option : utiliser une expression reguliere Een reguliere expressie gebruiken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur du cahmp doit etre exacte De waarde van het veld moet exact zijn - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option la valeur est comprise dans le champ De waarde is in het veld opgenomen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option respecter la casse Respecteer de hoofdlettergevoeligheid - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: remplacer toutes les occurences Alle zoektekst vervangen - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:remplace::option: rester insensible a la casse Hoofdletterongevoelig blijven - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::editing:replace: chaine a rechercher String zoeken - prod/actions/edit_default.html.twig + prod/actions/edit_default.html.twig prod::export: send mail notification @@ -12247,7 +12247,7 @@ prod::thesaurusTab:dlg:%number% record(s) updated prod::thesaurusTab:dlg:%number% record(s) updated - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:dlg:Acceptation en cours. @@ -12302,7 +12302,7 @@ prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) prod::thesaurusTab:dlg:too many (%number%) records to update (limit=%maximum%) - Controller/Thesaurus/ThesaurusXmlHttpController.php + Controller/Thesaurus/ThesaurusXmlHttpController.php prod::thesaurusTab:thesaurus @@ -12363,7 +12363,7 @@ prod::tools: document prod::tools: document Controller/Prod/ShareController.php - Controller/Prod/ToolsController.php + Controller/Prod/ToolsController.php prod::videoTools:chapterTitle @@ -12827,7 +12827,7 @@ reponses::document sans titre Documenten zonder titel - classes/record/adapter.php + classes/record/adapter.php report:: (connexions) @@ -13546,12 +13546,12 @@ task::archive:Archivage Archivering - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:Archiving files found into a 'hotfolder' Archivering files gevonden in een 'hotfolder' - TaskManager/Job/ArchiveJob.php + TaskManager/Job/ArchiveJob.php task::archive:archivage sur base/collection/ diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index f8736508b6..13f35a3cb7 100644 --- a/resources/locales/validators.de.xlf +++ b/resources/locales/validators.de.xlf @@ -1,6 +1,6 @@ - +
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. diff --git a/resources/locales/validators.en.xlf b/resources/locales/validators.en.xlf index 8d2e1492f1..30d01f31a8 100644 --- a/resources/locales/validators.en.xlf +++ b/resources/locales/validators.en.xlf @@ -1,6 +1,6 @@ - +
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. diff --git a/resources/locales/validators.fr.xlf b/resources/locales/validators.fr.xlf index 297ac4c8a4..252597afae 100644 --- a/resources/locales/validators.fr.xlf +++ b/resources/locales/validators.fr.xlf @@ -1,6 +1,6 @@ - +
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. diff --git a/resources/locales/validators.nl.xlf b/resources/locales/validators.nl.xlf index 7d8f84dbb6..26a510ccf7 100644 --- a/resources/locales/validators.nl.xlf +++ b/resources/locales/validators.nl.xlf @@ -1,6 +1,6 @@ - +
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. From 7ebc1a0fc8d2bf850a1a7e1fce644772ebc92d2f Mon Sep 17 00:00:00 2001 From: jygaulier Date: Mon, 7 Dec 2020 19:50:01 +0100 Subject: [PATCH 09/42] fix : add php version --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8284f38fa7..e2065b52ff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,6 +5,8 @@ executors: docker_build: machine: docker_layer_caching: true + php: + version: 7.0.4 jobs: build: working_directory: ~/alchemy-fr/Phraseanet From 97156d4397aa279665ac3697f9fe2a198f8e4d7a Mon Sep 17 00:00:00 2001 From: jygaulier Date: Mon, 7 Dec 2020 20:03:33 +0100 Subject: [PATCH 10/42] fix : use phpenv --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e2065b52ff..6bc1edc75d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,8 +5,6 @@ executors: docker_build: machine: docker_layer_caching: true - php: - version: 7.0.4 jobs: build: working_directory: ~/alchemy-fr/Phraseanet @@ -20,6 +18,8 @@ jobs: - image: circleci/rabbitmq:3.7.7 steps: - checkout + - run: phpenv versions + - run: phpenv global 7.0.33 - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - run: working_directory: ~/alchemy-fr/Phraseanet From b41c0bcc3e0665cdc8f51516e3f877bd099c92eb Mon Sep 17 00:00:00 2001 From: jygaulier Date: Mon, 7 Dec 2020 20:12:55 +0100 Subject: [PATCH 11/42] fix : use 7.0.7 as listed by phpenv versions --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6bc1edc75d..0cf147a88a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -19,7 +19,7 @@ jobs: steps: - checkout - run: phpenv versions - - run: phpenv global 7.0.33 + - run: phpenv global 7.0.7 - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - run: working_directory: ~/alchemy-fr/Phraseanet From 28573b6e3f87936c32210e2621d37fc21857594f Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Tue, 8 Dec 2020 10:04:14 +0100 Subject: [PATCH 12/42] Update config.yml --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0cf147a88a..42d3743cce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,6 +20,7 @@ jobs: - checkout - run: phpenv versions - run: phpenv global 7.0.7 + - run: php -v - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - run: working_directory: ~/alchemy-fr/Phraseanet From ab592677b60c0d1642011a5ff9d7e9f1158aeeae Mon Sep 17 00:00:00 2001 From: aina esokia Date: Tue, 8 Dec 2020 18:07:12 +0300 Subject: [PATCH 13/42] PHRAS-3262 add or update user permission --- .../Controller/PSExposeController.php | 81 +++++++ .../Provider/PSExposeServiceProvider.php | 8 + .../web/prod/WorkZone/ExposeEdit.html.twig | 204 +++++++++++++++++- 3 files changed, 292 insertions(+), 1 deletion(-) diff --git a/lib/Alchemy/Phrasea/PhraseanetService/Controller/PSExposeController.php b/lib/Alchemy/Phrasea/PhraseanetService/Controller/PSExposeController.php index 6af7b9b0f3..25eadaa031 100644 --- a/lib/Alchemy/Phrasea/PhraseanetService/Controller/PSExposeController.php +++ b/lib/Alchemy/Phrasea/PhraseanetService/Controller/PSExposeController.php @@ -68,6 +68,87 @@ class PSExposeController extends Controller ]); } + /** + * Get list of user or group if param "groups" defined + * + * @param PhraseaApplication $app + * @param Request $request + * @return \Symfony\Component\HttpFoundation\JsonResponse + * + */ + public function listUsersAction(PhraseaApplication $app, Request $request) + { + $exposeConfiguration = $app['conf']->get(['phraseanet-service', 'expose-service', 'exposes'], []); + $exposeConfiguration = $exposeConfiguration[$request->get('exposeName')]; + + $userOrGroup = 'users'; + if ($request->get('groups')) { + $userOrGroup = 'groups'; + } + + $exposeClient = new Client(['base_uri' => $exposeConfiguration['expose_base_uri'], 'http_errors' => false]); + + $accessToken = $this->getAndSaveToken($exposeConfiguration); + + $response = $exposeClient->get('/permissions/' . $userOrGroup, [ + 'headers' => [ + 'Authorization' => 'Bearer '. $accessToken + ] + ]); + + $list = []; + if ($response->getStatusCode() == 200) { + $list = json_decode($response->getBody()->getContents(),true); + } + + return $app->json([ + 'list' => $list + ]); + } + + /** + * Add or update access control entry (ACE) for a publication + * + * @param PhraseaApplication $app + * @param Request $request + * @return \Symfony\Component\HttpFoundation\JsonResponse + */ + public function updatePublicationPermissionAction(PhraseaApplication $app, Request $request) + { + $exposeConfiguration = $app['conf']->get(['phraseanet-service', 'expose-service', 'exposes'], []); + $exposeConfiguration = $exposeConfiguration[$request->get('exposeName')]; + $exposeClient = new Client(['base_uri' => $exposeConfiguration['expose_base_uri'], 'http_errors' => false]); + + $accessToken = $this->getAndSaveToken($exposeConfiguration); + + try { + $response = $exposeClient->put('/permissions/ace', [ + 'headers' => [ + 'Authorization' => 'Bearer '. $accessToken, + 'Content-Type' => 'application/json' + ], + 'json' => $request->get('jsonData') + ]); + } catch(\Exception $e) { + return $this->app->json([ + 'success' => false, + 'message' => $e->getMessage() + ]); + } + + if ($response->getStatusCode() !== 200) { + return $this->app->json([ + 'success' => false, + 'message' => 'Status code: '. $response->getStatusCode() + ]); + } + + return $this->app->json([ + 'success' => true, + 'message' => 'Permission successfully updated!' + ]); + } + /** * Get list of publication * Use param "format=json" to retrieve a json diff --git a/lib/Alchemy/Phrasea/PhraseanetService/Provider/PSExposeServiceProvider.php b/lib/Alchemy/Phrasea/PhraseanetService/Provider/PSExposeServiceProvider.php index c377c2ad6d..dcfd9128b8 100644 --- a/lib/Alchemy/Phrasea/PhraseanetService/Provider/PSExposeServiceProvider.php +++ b/lib/Alchemy/Phrasea/PhraseanetService/Provider/PSExposeServiceProvider.php @@ -70,6 +70,14 @@ class PSExposeServiceProvider implements ControllerProviderInterface, ServicePro ->method('POST') ->bind('ps_expose_publication_add_assets'); + $controllers->match('/list/users', 'controller.ps.expose:listUsersAction') + ->method('GET') + ->bind('ps_expose_list_users'); + + $controllers->match('/publication/permission/update', 'controller.ps.expose:updatePublicationPermissionAction') + ->method('POST') + ->bind('ps_expose_publication_permission_update'); + return $controllers; } diff --git a/templates/web/prod/WorkZone/ExposeEdit.html.twig b/templates/web/prod/WorkZone/ExposeEdit.html.twig index a897781447..20dd855b16 100644 --- a/templates/web/prod/WorkZone/ExposeEdit.html.twig +++ b/templates/web/prod/WorkZone/ExposeEdit.html.twig @@ -113,6 +113,72 @@ +

Permission

+ +
+
+
+ +
+ +
+
+ +
+ + + + + + + + +
+ + + +
+ +
+
+ +
+ +
+
+ +
+ + + + + + + +
+ + +
+
+

Advanced setting

@@ -155,8 +221,18 @@ var publicationForm = publicationEdit.find("#publication-data-form"); var publicationParent = publicationEdit.find("#publication_parent"); var profileField = publicationEdit.find("#profile-field"); + var userList = publicationEdit.find("#user-list"); + var groupList = publicationEdit.find("#group-list"); var advancedSetting = publicationEdit.find("#advancedSetting"); + var userView = publicationEdit.find('input[name=user-view]'); + var userEdit = publicationEdit.find('input[name=user-edit]'); + var userDelete = publicationEdit.find('input[name=user-delete]'); + + var groupView = publicationEdit.find('input[name=group-view]'); + var groupEdit = publicationEdit.find('input[name=group-edit]'); + var groupDelete = publicationEdit.find('input[name=group-delete]'); + var publicationFieldClass = publicationEdit.find(".publication-field"); $.datepicker.regional['default'] = { @@ -207,7 +283,7 @@ url: `/prod/expose/list-profile?exposeName={{ exposeName }}`, success: function (data) { profileField.empty().html(''); - for (i = 0; i < data.profiles.length; i++) { + for (let i = 0; i < data.profiles.length; i++) { let selected = ''; if ({{ nbProfile }} && data.profiles[i].id === '{{ publication.profile.id }}') { selected = 'selected="selected"'; @@ -223,6 +299,36 @@ } }); + $.ajax({ + type: "GET", + url: `/prod/expose/list/users?exposeName={{ exposeName }}`, + success: function (data) { + userList.empty().html(''); + for (i = 0; i < data.list.length; i++) { + userList.append('' + ); + } + } + }); + + $.ajax({ + type: "GET", + url: `/prod/expose/list/users?groups=1&exposeName={{ exposeName }}`, + success: function (data) { + groupList.empty().html(''); + for (i = 0; i < data.list.length; i++) { + groupList.append('' + ); + } + } + }); + }); /**convert Object data to Json**/ @@ -374,6 +480,102 @@ }); + publicationEdit.find('#permission-user').on('submit', function (e) { + e.preventDefault(); + let mask = 0; + + if (userView.is(':checked')) { + mask = mask | 1; + } + + if (userEdit.is(':checked')) { + mask = mask | 4; + } + + if (userDelete.is(':checked')) { + mask = mask | 8; + } + + if (userList.val() !== '') { + publicationEdit.find("#user-permission-error").addClass("hidden"); + publicationEdit.find("#user-permission-success").addClass("hidden"); + + $.ajax({ + type: "POST", + url: "/prod/expose/publication/permission/update", + dataType: 'json', + data: { + exposeName: "{{ exposeName }}", + jsonData: { + userType: "user", + userId: userList.val(), + objectType: "publication", + objectId: "{{ publication.id }}", + mask: mask + } + }, + success: function (data) { + if (data.success) { + publicationEdit.find("#user-permission-error").addClass("hidden"); + publicationEdit.find("#user-permission-success").removeClass("hidden").html(data.message); + } else { + publicationEdit.find("#user-permission-success").addClass("hidden"); + publicationEdit.find("#user-permission-error").removeClass("hidden").html(data.message); + } + } + }); + } + + }); + + publicationEdit.find('#permission-group').on('submit', function (e) { + e.preventDefault(); + let mask = 0; + + if (groupView.is(':checked')) { + mask = mask | 1; + } + + if (groupEdit.is(':checked')) { + mask = mask | 4; + } + + if (groupDelete.is(':checked')) { + mask = mask | 8; + } + + if (groupList.val() !== '') { + publicationEdit.find("#group-permission-error").addClass("hidden"); + publicationEdit.find("#group-permission-success").addClass("hidden"); + + $.ajax({ + type: "POST", + url: "/prod/expose/publication/permission/update", + dataType: 'json', + data: { + exposeName: "{{ exposeName }}", + jsonData: { + userType: "group", + userId: groupList.val(), + objectType: "publication", + objectId: "{{ publication.id }}", + mask: mask + } + }, + success: function (data) { + if (data.success) { + publicationEdit.find("#group-permission-error").addClass("hidden"); + publicationEdit.find("#group-permission-success").removeClass("hidden").html(data.message); + } else { + publicationEdit.find("#group-permission-success").addClass("hidden"); + publicationEdit.find("#group-permission-error").removeClass("hidden").html(data.message); + } + } + }); + } + + }); + +{% endblock %} - +
+
+ + +
+
+ +
+ {% if publication.parent.id %} + {% set parentId = publication.parent.id %} + {% endif %} +
-
- - -
-
- -
- - -
-
- - -
-
-
- - -
-
- -
- -
-
- -
- -
-
- - -
-
- - -
-
+
+ + {% set nbProfile = publication.profile|length %} -

Permission

- -
-
-
- -
- -
+ +
+
+ + +
+
+ +
+ +
- -
- - - - - - - - +
+ +
- - - - - -
-
- -
- -
+
+
+ + +
+
+ +
+
- -
- - - - - - - +
+
- - - + +
+
+ + +
+
+ + +
+ -
-
-

Advanced setting

- +
+ +
+
+

Permission

+
+ + +
+ +
+
+
+ +
+ + + + + + + + + + + + {% for permission in permissions %} + {% if permission.userType == 'user' %} + + + + + + + {% endif %} + {% endfor %} + +
+ User + + View + + Edit + + Delete +
+ {{ permission.username }} + + + + + + +
+ +
+
+
+ +
+ + + + + + + + + + + + {% for permission in permissions %} + {% if permission.userType == 'group' %} + + + + + + + {% endif %} + {% endfor %} + +
+ Group + + View + + Edit + + Delete +
+ {{ permission.name }} + + + + + + +
+
+
+