diff --git a/Dockerfile b/Dockerfile index 5b317cd003..418e8e812d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,11 @@ RUN apt-get update \ xpdf \ && update-locale "LANG=fr_FR.UTF-8 UTF-8" \ && dpkg-reconfigure --frontend noninteractive locales \ - && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ + && docker-php-source extract \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install zip exif iconv mbstring pcntl sockets xsl intl pdo_mysql gettext bcmath mcrypt \ && pecl install redis amqp-1.9.3 zmq-beta imagick-beta \ @@ -126,6 +130,12 @@ RUN mkdir -p /var/alchemy/Phraseanet/logs \ FROM phraseanet-system as phraseanet-fpm +RUN docker-php-source extract \ + && pecl install xdebug-2.9.0 \ + && docker-php-ext-enable xdebug \ + #&& pecl clear-cache \ + && docker-php-source delete + COPY --from=builder --chown=app /var/alchemy /var/alchemy/Phraseanet ADD ./docker/phraseanet/ / WORKDIR /var/alchemy/Phraseanet diff --git a/bin/console b/bin/console index 552cb672d0..c973195ff6 100755 --- a/bin/console +++ b/bin/console @@ -23,7 +23,9 @@ use Alchemy\Phrasea\Command\SearchEngine\IndexPopulateCommand; use Alchemy\Phrasea\Command\Thesaurus\FindConceptsCommand; use Alchemy\Phrasea\Core\Version; use Alchemy\Phrasea\Command\CreateCollection; +use Alchemy\Phrasea\Command\Collection\ListCollectionCommand; use Alchemy\Phrasea\Command\Databox\CreateDataboxCommand; +use Alchemy\Phrasea\Command\Databox\ListDataboxCommand; use Alchemy\Phrasea\Command\MailTest; use Alchemy\Phrasea\Command\Compile\Configuration; use Alchemy\Phrasea\Command\RecordAdd; @@ -46,6 +48,9 @@ use Alchemy\Phrasea\Command\Task\TaskRun; use Alchemy\Phrasea\Command\Task\TaskStart; use Alchemy\Phrasea\Command\Task\TaskState; use Alchemy\Phrasea\Command\Task\TaskStop; +use Alchemy\Phrasea\Command\User\UserCreateCommand; +use Alchemy\Phrasea\Command\User\UserSetPasswordCommand; +use Alchemy\Phrasea\Command\User\UserListCommand; use Alchemy\Phrasea\Command\UpgradeDBDatas; require_once __DIR__ . '/../lib/autoload.php'; @@ -108,8 +113,18 @@ $cli->command(new \module_console_fieldsRename('fields:rename')); $cli->command(new \module_console_fieldsMerge('fields:merge')); $cli->command(new CreateCollection('collection:create')); +$cli->command(new ListCollectionCommand('collection:list')); + +$cli->command(new ListDataboxCommand('databox:list')); $cli->command(new CreateDataboxCommand('databox:create')); +$cli->command(new UserCreateCommand('user:create')); + +$cli->command(new UserSetPasswordCommand('user:set-password')); + +$cli->command(new UserListCommand('user:list')); + + $cli->command(new RecordAdd('records:add')); $cli->command(new RescanTechnicalDatas('records:rescan-technical-datas')); $cli->command(new BuildMissingSubdefs('records:build-missing-subdefs')); diff --git a/composer.lock b/composer.lock index e257b750f2..41a8b05beb 100644 --- a/composer.lock +++ b/composer.lock @@ -131,16 +131,16 @@ }, { "name": "alchemy/embed-bundle", - "version": "2.0.8", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/alchemy-fr/embed-bundle.git", - "reference": "cbaa5e34b7b6ccbe128f8c804649c8a3ecd1e621" + "reference": "8cdb9612a9e3edd998b68f0803eacca8e0f50775" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alchemy-fr/embed-bundle/zipball/cbaa5e34b7b6ccbe128f8c804649c8a3ecd1e621", - "reference": "cbaa5e34b7b6ccbe128f8c804649c8a3ecd1e621", + "url": "https://api.github.com/repos/alchemy-fr/embed-bundle/zipball/8cdb9612a9e3edd998b68f0803eacca8e0f50775", + "reference": "8cdb9612a9e3edd998b68f0803eacca8e0f50775", "shasum": "" }, "require-dev": { @@ -177,7 +177,11 @@ } ], "description": "Embed resources bundle", - "time": "2019-10-09T14:34:23+00:00" + "support": { + "source": "https://github.com/alchemy-fr/embed-bundle/tree/2.0.9", + "issues": "https://github.com/alchemy-fr/embed-bundle/issues" + }, + "time": "2020-02-04T14:53:00+00:00" }, { "name": "alchemy/geonames-api-consumer", @@ -271,16 +275,16 @@ }, { "name": "alchemy/mediavorus", - "version": "0.4.9", + "version": "0.4.10", "source": { "type": "git", "url": "https://github.com/alchemy-fr/MediaVorus.git", - "reference": "1a96dc4142ff8474c11285cab9eab11df9683255" + "reference": "3e235eb1efb528aea2973c946f4bf47630b98985" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alchemy-fr/MediaVorus/zipball/1a96dc4142ff8474c11285cab9eab11df9683255", - "reference": "1a96dc4142ff8474c11285cab9eab11df9683255", + "url": "https://api.github.com/repos/alchemy-fr/MediaVorus/zipball/3e235eb1efb528aea2973c946f4bf47630b98985", + "reference": "3e235eb1efb528aea2973c946f4bf47630b98985", "shasum": "" }, "require": { @@ -296,6 +300,7 @@ }, "require-dev": { "jms/serializer": "~0.12.0", + "phpunit/phpunit": "^4.0|^5.0", "silex/silex": "~1.0", "symfony/yaml": "~2.0" }, @@ -329,7 +334,7 @@ "keywords": [ "metadata" ], - "time": "2019-01-22T11:23:34+00:00" + "time": "2020-02-18T13:37:45+00:00" }, { "name": "alchemy/oauth2php", @@ -2856,6 +2861,7 @@ } ], "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.", + "abandoned": true, "time": "2015-05-20T03:37:09+00:00" }, { @@ -2906,6 +2912,7 @@ "Guzzle", "stream" ], + "abandoned": true, "time": "2014-10-12T19:18:40+00:00" }, { @@ -6162,7 +6169,7 @@ ], "description": "A WebProfiler for Silex", "homepage": "http://silex.sensiolabs.org/", - "abandoned": true, + "abandoned": "symfony/web-profiler-bundle", "time": "2016-01-10T11:39:13+00:00" }, { @@ -6412,6 +6419,7 @@ "profiler", "silex" ], + "abandoned": true, "time": "2016-10-26T11:08:02+00:00" }, { @@ -6454,6 +6462,7 @@ "plugin", "silex" ], + "abandoned": true, "time": "2015-11-11T07:16:28+00:00" }, { diff --git a/config/configuration.sample.yml b/config/configuration.sample.yml index fbaa368ed9..9bbea0d4bc 100644 --- a/config/configuration.sample.yml +++ b/config/configuration.sample.yml @@ -22,13 +22,54 @@ main: path: '/tmp/db.sqlite' charset: UTF8 cache: - type: MemcacheCache + type: redis options: host: localhost - port: 11211 + port: 6379 search-engine: - type: phrasea - options: [] + type: elasticsearch + options: + host: elasticsearch + port: 9200 + index: '' + shards: 3 + replicas: 0 + minScore: 2 + highlight: true + populate_order: RECORD_ID + populate_direction: DESC + activeTab: '' + facets: + _base: + limit: 10 + _collection: + limit: 10 + _doctype: + limit: 10 + _camera_model: + limit: 0 + _iso: + limit: 0 + _aperture: + limit: 0 + _shutterspeed: + limit: 0 + _flashfired: + limit: 0 + _framerate: + limit: 0 + _audiosamplerate: + limit: 0 + _videocodec: + limit: 0 + _audiocodec: + limit: 0 + _orientation: + limit: 0 + _colorspace: + limit: 0 + _mimetype: + limit: 0 task-manager: status: started enabled: true @@ -62,12 +103,7 @@ main: mp4box_timeout: 60 swftools_timeout: 60 unoconv_timeout: 60 - task-manager: - status: started - listener: - protocol: tcp - host: 127.0.0.1 - port: 6700 + exiftool_timeout: 60 storage: subdefs: null cache: null @@ -75,20 +111,7 @@ main: download: null lazaret: null caption: null - bridge: - youtube: - enabled: false - client_id: null - client_secret: null - developer_key: null - flickr: - enabled: false - client_id: null - client_secret: null - dailymotion: - enabled: false - client_id: null - client_secret: null + tmp_files: null border-manager: enabled: true extension-mapping: @@ -98,12 +121,17 @@ border-manager: - type: Checker\Sha256 enabled: true + collections: [] + compare-ignore-collections: [] - type: Checker\UUID enabled: true + collections: [] + compare-ignore-collections: [] - type: Checker\Colorspace enabled: false + collections: [] options: colorspaces: [cmyk, grayscale, rgb] media_types: [Image] @@ -123,6 +151,8 @@ border-manager: enabled: false options: sensitive: true + collections: [] + compare-ignore-collections: [] - type: Checker\MediaType enabled: false @@ -244,6 +274,14 @@ embed_bundle: document: player: flexpaper enable_pdfjs: true +video-editor: + ChapterVttFieldName: VideoTextTrackChapters + seekBackwardStep: 500 # in ms + seekForwardStep: 500 # in ms + playbackRates: + - 1 + - '1.5' + - 3 geocoding-providers: - map-provider: mapboxWebGL diff --git a/docker/phraseanet/auto-install.sh b/docker/phraseanet/auto-install.sh index b69490fd03..00e8601edb 100755 --- a/docker/phraseanet/auto-install.sh +++ b/docker/phraseanet/auto-install.sh @@ -27,9 +27,10 @@ fi /var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.host elasticsearch /var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.minScore 2 -/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.base_aggregate_limit 10 -/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.collection_aggregate_limit 10 -/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.doctype_aggregate_limit 10 +/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.minScore 2 +/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.facets._base.limit 10 +/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.facets._collection.limit 10 +/var/alchemy/Phraseanet/bin/setup system:config set main.search-engine.options.facets._doctype.limit 10 ## Redis /var/alchemy/Phraseanet/bin/setup system:config set main.cache.options.host redis diff --git a/docker/phraseanet/boot.sh b/docker/phraseanet/boot.sh index 444b63a64c..578da3a8da 100755 --- a/docker/phraseanet/boot.sh +++ b/docker/phraseanet/boot.sh @@ -14,4 +14,4 @@ else runuser app -c '/auto-install.sh' fi -php-fpm +php-fpm -F diff --git a/docker/phraseanet/phraseanet-entrypoint.sh b/docker/phraseanet/phraseanet-entrypoint.sh index 225b56a672..3040718c11 100755 --- a/docker/phraseanet/phraseanet-entrypoint.sh +++ b/docker/phraseanet/phraseanet-entrypoint.sh @@ -4,5 +4,16 @@ set -e envsubst < /php.ini.sample > /usr/local/etc/php/php.ini envsubst < /php-fpm.conf.sample > /usr/local/etc/php-fpm.conf +echo "XDEBUG=$XDEBUG" +if [ $XDEBUG = "ON" ]; then + echo "XDEBUG IS ENABLED. YOU MAY KEEP THIS FEATURE DISABLED IN PRODUCTION." + echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + echo "xdebug.remote_host=$XDEBUG_SERVER" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + echo "xdebug.remote_port=$XDEBUG_REMOTE_PORT" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + echo "xdebug.remote_handler=dbgp" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + #echo "xdebug.idekey=11896" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini +fi bash -e docker-php-entrypoint $@ diff --git a/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php b/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php new file mode 100644 index 0000000000..7cf2d91ced --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/Collection/ListCollectionCommand.php @@ -0,0 +1,86 @@ +setDescription('List all collection in Phraseanet') + ->addOption('databox_id', 'd', InputOption::VALUE_REQUIRED, 'The id of the databox to list collection') + ->addOption('jsonformat', null, InputOption::VALUE_NONE, 'Output in json format') + ->setHelp(''); + return $this; + } + protected function doExecute(InputInterface $input, OutputInterface $output) + { + try { + $jsonformat = $input->getOption('jsonformat'); + $databox = $this->container->findDataboxById($input->getOption('databox_id')); + $collections = $this->listDataboxCollections($databox); + + if ($jsonformat) { + foreach ($collections as $collection) { + $collectionList[] = array_combine(['id local for API', 'id distant', 'name','label','status','total records'], $collection); + } + echo json_encode($collectionList); + } else { + $table = $this->getHelperSet()->get('table'); + $table + ->setHeaders(['id local for API', 'id distant', 'name','label','status','total records']) + ->setRows($collections) + ->render($output); + } + + } catch (\Exception $e) { + $output->writeln("{$e->getMessage()}"); + } + return 0; + } + + private function listDataboxCollections(\databox $databox) + { + return array_map(function (\collection $collection) { + return $this->listCollection($collection); + }, array_merge($databox->get_collections(),$this->getUnabledCollection($databox->get_activable_colls()))); + } + + private function getUnabledCollection($collections) + { + return array_map(function ($colId){ + return \collection::getByBaseId($this->container, $colId); + },$collections); + + } + + private function listCollection(\collection $collection) + { + return [ + $collection->get_base_id(), + $collection->get_coll_id(), + $collection->get_name(), + 'en: ' . $collection->get_label('en') . + ', de: ' . $collection->get_label('de') . + ', fr: ' . $collection->get_label('fr') . + ', nl: ' . $collection->get_label('nl'), + ($collection->is_active()) ? 'enabled' : 'disabled', + $collection->get_record_amount() + ]; + } +} \ No newline at end of file diff --git a/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php b/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php new file mode 100644 index 0000000000..92a30435fe --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/Databox/ListDataboxCommand.php @@ -0,0 +1,72 @@ +setDescription('List all databox in Phraseanet') + ->addOption('jsonformat', null, InputOption::VALUE_NONE, 'Output in json format') + ->setHelp(''); + + return $this; + } + + protected function doExecute(InputInterface $input, OutputInterface $output) + { + try { + $jsonformat = $input->getOption('jsonformat'); + $databoxes = array_map(function (\databox $databox) { + return $this->listDatabox($databox); + }, $this->container->getApplicationBox()->get_databoxes()); + + if ($jsonformat) { + foreach ($databoxes as $databox) { + $databoxList[] = array_combine(['id', 'name', 'alias'], $databox); + } + echo json_encode($databoxList); + } else { + $table = $this->getHelperSet()->get('table'); + $table + ->setHeaders(['id', 'name', 'alias']) + ->setRows($databoxes) + ->render($output); + } + + } catch (\Exception $e) { + $output->writeln('Listing databox failed : '.$e->getMessage().''); + } + + return 0; + } + + private function listDatabox(\databox $databox) + { + return [ + $databox->get_sbas_id(), + $databox->get_dbname(), + $databox->get_viewname() + ]; + } + +} diff --git a/lib/Alchemy/Phrasea/Command/Developer/JsFixtures.php b/lib/Alchemy/Phrasea/Command/Developer/JsFixtures.php index 890fed9e6d..112914d088 100644 --- a/lib/Alchemy/Phrasea/Command/Developer/JsFixtures.php +++ b/lib/Alchemy/Phrasea/Command/Developer/JsFixtures.php @@ -15,6 +15,7 @@ use Alchemy\Phrasea\Application; use Alchemy\Phrasea\Command\Command; use Alchemy\Phrasea\Exception\RuntimeException; use Alchemy\Phrasea\Model\Entities\User; +use Alchemy\Phrasea\Plugin\Plugin; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\HttpKernel\Client; @@ -30,6 +31,15 @@ class JsFixtures extends Command protected function doExecute(InputInterface $input, OutputInterface $output) { + /** @var Plugin $plugin */ + $msg = []; + foreach($this->container['plugins.manager']->listPlugins() as $plugin) { + $msg[] = sprintf(" bin/setup plugins:remove \"%s\"", $plugin->getName()); + } + if(count($msg) !== 0) { + throw new RuntimeException("You must remove plugins first:\n" . join("\n", $msg)); + } + if (!file_exists($this->container['db.fixture.info']['path'])) { throw new RuntimeException('You must generate sqlite db first, run "bin/developer phraseanet:regenerate-sqlite" command.'); } @@ -104,6 +114,7 @@ class JsFixtures extends Command private function writeResponse(OutputInterface $output, $method, $path, $to, $authenticateUser = false) { $environment = Application::ENV_TEST; + /** @var Application $app */ $app = require __DIR__ . '/../../Application/Root.php'; $app['orm.em'] = $app->extend('orm.em', function($em, $app) { return $app['orm.ems'][$app['db.fixture.hash.key']]; diff --git a/lib/Alchemy/Phrasea/Command/User/UserCreateCommand.php b/lib/Alchemy/Phrasea/Command/User/UserCreateCommand.php new file mode 100644 index 0000000000..66a33f1916 --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/User/UserCreateCommand.php @@ -0,0 +1,211 @@ +setDescription('Create user in Phraseanet') + ->addOption('user_login', null, InputOption::VALUE_REQUIRED, 'The desired login for created user.') + ->addOption('user_mail', null, InputOption::VALUE_OPTIONAL, 'The desired mail for created user.') + ->addOption('user_password', null, InputOption::VALUE_OPTIONAL, 'The desired password') + ->addOption('send_mail_confirm', null, InputOption::VALUE_NONE, 'Send an email to user, for validate email.') + ->addOption('send_mail_password', null, InputOption::VALUE_NONE, 'Send an email to user, for password definition, work only if user_password is not define') + ->addOption('model_number', null, InputOption::VALUE_OPTIONAL, 'Id of model') + ->addOption('user_gender', null, InputOption::VALUE_OPTIONAL, 'The gender for created user.') + ->addOption('user_firstname', null, InputOption::VALUE_OPTIONAL, 'The first name for created user.') + ->addOption('user_lastname', null, InputOption::VALUE_OPTIONAL, 'The last name for created user.') + ->addOption('user_compagny', null, InputOption::VALUE_OPTIONAL, 'The compagny for created user.') + ->addOption('user_job', null, InputOption::VALUE_OPTIONAL, 'The job for created user.') + ->addOption('user_activitie', null, InputOption::VALUE_OPTIONAL, 'The activitie for created user.') + ->addOption('user_phone', null, InputOption::VALUE_OPTIONAL, 'The phone number for created user.') + ->setHelp(''); + + return $this; + } + + protected function doExecute(InputInterface $input, OutputInterface $output) + { + + $userLogin = $input->getOption('user_login'); + $userMail = $input->getOption('user_mail'); + $userPassword = $input->getOption('user_password'); + $sendMailConfirm = $input->getOption('send_mail_confirm'); + $sendMailPassword = $input->getOption('send_mail_password'); + $modelNumber = $input->getOption('model_number'); + $userGender = $input->getOption('user_gender'); + $userFirstName = $input->getOption('user_firstname'); + $userLastName = $input->getOption('user_lastname'); + $userCompagny = $input->getOption('user_compagny'); + $userJob = $input->getOption('user_job'); + $userActivity = $input->getOption('user_activitie'); + $userPhone = $input->getOption('user_phone'); + + $userRepository = $this->container['repo.users']; + + if ($userMail) { + if (!\Swift_Validate::email($userMail)) { + $output->writeln('Invalid mail address'); + return 0; + } + + if (null !== $userRepository->findByEmail($userMail)) { + $output->writeln('An user exist with this email.'); + return 0; + } + + } + + $password = (!is_null($userPassword)) ? $userPassword : $this->container['random.medium']->generateString(128); + $userManipulator = $this->container['manipulator.user']; + $user = $userManipulator->createUser($userLogin, $password, $userMail); + + if ($userGender) { + if (null === $gender = $this->verifyGender($userGender)) { + $output->writeln('Gender '.$userGender.' not exists.'); + } + $user->setGender($gender); + } + + if($userFirstName) $user->setFirstName($userFirstName); + if($userLastName) $user->setLastName($userLastName); + if($userCompagny) $user->setCompany($userCompagny); + if($userJob) $user->setJob($userJob); + if($userActivity) $user->setActivity($userActivity); + if($userPhone) $user->setPhone($userPhone); + + if ($sendMailPassword and $userMail and is_null($userPassword)) { + $this->sendPasswordSetupMail($user); + } + + if ($sendMailConfirm and $userMail) { + $user->setMailLocked(true); + $this->sendAccountUnlockEmail($user); + } + + if ($modelNumber) { + $template = $userRepository->find($modelNumber); + if (!$template) { + $output->writeln('Model '.$modelNumber.' not found.'); + } else { + $base_ids = []; + foreach ($this->container->getApplicationBox()->get_databoxes() as $databox) { + foreach ($databox->get_collections() as $collection) { + $base_ids[] = $collection->get_base_id(); + } + } + $this->container->getAclForUser($user)->apply_model($template, $base_ids); + } + } + + $this->container['orm.em']->flush(); + + $output->writeln("Create new user successful !"); + + return 0; + } + + /** + * Get gender for user + * @param $type + * @return int|null + */ + private function verifyGender($type) + { + switch (strtolower($type)) { + case "mlle.": + case "mlle": + case "miss": + case "mademoiselle": + case "0": + $gender = User::GENDER_MISS; + break; + case "mme": + case "madame": + case "ms": + case "ms.": + case "1": + $gender = User::GENDER_MRS; + break; + case "m": + case "m.": + case "mr": + case "mr.": + case "monsieur": + case "mister": + case "2": + $gender = User::GENDER_MR; + break; + default: + $gender = null; + } + return $gender; + } + + /** + * Send mail for renew password + * @param User $user + */ + public function sendPasswordSetupMail(User $user) + { + $this->setDelivererLocator(new LazyLocator($this->container, 'notification.deliverer')); + $receiver = Receiver::fromUser($user); + + $token = $this->container['manipulator.token']->createResetPasswordToken($user); + + $mail = MailRequestPasswordSetup::create($this->container, $receiver); + $servername = $this->container['conf']->get('servername'); + $mail->setButtonUrl('http://'.$servername.'/login/renew-password/?token='.$token->getValue()); + $mail->setLogin($user->getLogin()); + + $this->deliver($mail); + } + + /** + * @param User $user + */ + public function sendAccountUnlockEmail(User $user) + { + $this->setDelivererLocator(new LazyLocator($this->container, 'notification.deliverer')); + $receiver = Receiver::fromUser($user); + + $token = $this->container['manipulator.token']->createAccountUnlockToken($user); + + $mail = MailRequestEmailConfirmation::create($this->container, $receiver); + $servername = $this->container['conf']->get('servername'); + $mail->setButtonUrl('http://'.$servername.'/login/register-confirm/?code='.$token->getValue()); + $mail->setExpiration($token->getExpiration()); + + $this->deliver($mail); + } + +} diff --git a/lib/Alchemy/Phrasea/Command/User/UserListCommand.php b/lib/Alchemy/Phrasea/Command/User/UserListCommand.php new file mode 100644 index 0000000000..bf3f87e478 --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/User/UserListCommand.php @@ -0,0 +1,287 @@ +setDescription('List of all user (experimental)') + ->addOption('user_id', null, InputOption::VALUE_OPTIONAL, ' The id of user export only info this user ') + ->addOption('user_email', null, InputOption::VALUE_OPTIONAL, 'The mail of user export only info this user .') + ->addOption('database_id', null, InputOption::VALUE_OPTIONAL, 'Id of database.') + ->addOption('collection_id', null, InputOption::VALUE_OPTIONAL, 'Id of the collection.') + ->addOption('mail_lock_status', null, InputOption::VALUE_NONE, 'Status by mail locked') + ->addOption('guest', null, InputOption::VALUE_NONE, 'Only guest user') + ->addOption('created', null, InputOption::VALUE_OPTIONAL, 'Created at with operator,aaaa-mm-jj hh:mm:ss.') + ->addOption('updated', null, InputOption::VALUE_OPTIONAL, 'Update at with operator,aaaa-mm-jj hh:mm:ss.') + ->addOption('application', null, InputOption::VALUE_NONE, 'List application of user work only if --user_id is set') + ->addOption('right', null, InputOption::VALUE_NONE, 'Show right information') + ->addOption('adress', null, InputOption::VALUE_NONE, 'Show adress information') + ->addOption('models', null, InputOption::VALUE_NONE, "Show only defined models, if --user_id is set with --models it's the template owner") + ->addOption('jsonformat', null, InputOption::VALUE_NONE, 'Output in json format') + ->setHelp(''); + + return $this; + } + + protected function doExecute(InputInterface $input, OutputInterface $output) + { + + $userId = $input->getOption('user_id'); + $userEmail = $input->getOption('user_email'); + $databaseId = $input->getOption('database_id'); + $collectionId = $input->getOption('collection_id'); + $lockStatus = $input->getOption('mail_lock_status'); + $guest = $input->getOption('guest'); + $application = $input->getOption('application'); + $withAdress = $input->getOption('adress'); + $created = $input->getOption('created'); + $updated = $input->getOption('updated'); + $withRight = $input->getOption('right'); + $models = $input->getOption('models'); + $jsonformat = $input->getOption('jsonformat'); + + $query = $this->container['phraseanet.user-query']; + + if($databaseId) $query->on_base_ids([$databaseId]); + if($collectionId) $query->on_sbas_ids([$collectionId]); + if($created) $this->addFilterDate($created,'created',$query); + if($updated) $this->addFilterDate($updated,'updated',$query); + if($userId && !$models) $query->addSqlFilter('Users.id = ?' ,[$userId]); + if($userEmail && !$models) $query->addSqlFilter('Users.email = ?' ,[$userEmail]); + if($lockStatus && !$models) $query->addSqlFilter('Users.mail_locked = 1'); + if($guest && !$models) $query->include_invite(true)->addSqlFilter('Users.guest = 1'); + + if ($application and !$userId) { + $output->writeln('You must provide --user_id when using --application option'); + return 0; + } + + /** @var UserRepository $userRepository */ + $userRepository = $this->container['repo.users']; + + if ($models && $userId) { + $users = $userRepository->findBy(['templateOwner' => $userId]); + } elseif ($models) { + $users = $userRepository->findTemplate(); + } else { + $users = $query->execute()->get_results(); + } + + $userList = []; + $showApplication = false; + foreach ($users as $key => $user) { + if ($userId and $application) { + $showApplication = true; + } + $userList[] = $this->listUser($user, $withAdress, $withRight); + + $userListRaw[] = array_combine($this->headerTable($withAdress, $withRight), $this->listUser($user, $withAdress, $withRight)); + } + + if ($jsonformat) { + echo json_encode($userListRaw); + } else { + $table = $this->getHelperSet()->get('table'); + $table + ->setHeaders($this->headerTable($withAdress, $withRight)) + ->setRows($userList) + ->render($output); + ; + + + if ($showApplication) { + $applicationTable = $this->getHelperSet()->get('table'); + $applicationTable->setHeaders(array( + array(new TableCell('Applications', array('colspan' => 5))), + ['name','callback','client_secret','client_id','token'], + ))->setRows($this->getApplicationOfUser($users[0]))->render($output); + } + + } + + + return 0; + } + + /** + * @param $withAdress + * @param $withRight + * @return array + */ + private function headerTable($withAdress,$withRight) + { + $defaultHeader = ['id', 'login', 'email','last_model','first_name','last_name','gender','created','updated','status','locale']; + $adressHeader = [ 'address', 'zip_code', 'city', 'country', 'phone', 'fax', 'job','position', 'company', 'geoname_id']; + $rightHeader = [ 'admin', 'guest', 'mail_notification', 'ldap_created', 'mail_locked']; + + return $this->createInformation($withAdress,$withRight,$defaultHeader,['adress' => $adressHeader,'right' =>$rightHeader]); + } + + /** + * @param User $user + * @param $withAdress + * @param $withRight + * @return array + */ + private function listUser(User $user,$withAdress,$withRight) + { + switch ($user->getGender()) { + case User::GENDER_MRS: + $gender = 'Mrs'; + break; + case User::GENDER_MISS: + $gender = 'Miss'; + break; + case User::GENDER_MR: + default: + $gender = 'Mr'; + } + + $defaultInfo = [ + $user->getId(), + $user->getLogin() ?: '-', + $user->getEmail() ?: '-', + $user->getLastAppliedTemplate() ? $user->getLastAppliedTemplate()->getLogin() : '-', + $user->getFirstName() ?: '-', + $user->getLastName() ?: '-', + $gender, + NullableDateTime::format($user->getCreated(),'Y-m-d H:i:s'), + NullableDateTime::format($user->getUpdated(),'Y-m-d H:i:s'), + 'status', + $user->getLocale() ?: '-', + ]; + + return $this->createInformation($withAdress,$withRight,$defaultInfo,['adress' => $this->userAdress($user),'right' => $this->userRight($user)]); + } + + /** + * @param User $user + * @return array + */ + private function userAdress(User $user) + { + return [ + $user->getAddress() ?: '-', + $user->getZipCode() ?: '-', + $user->getCity() ?: '-', + $user->getCountry() ?: '-', + $user->getPhone() ?: '-', + $user->getFax() ?: '-', + $user->getJob() ?: '-', + $user->getActivity() ?: '-', + $user->getCompany() ?: '-', + $user->getGeonameId() ?: '-', + ]; + } + + /** + * @param User $user + * @return array + */ + private function userRight(User $user) + { + return [ + $user->isAdmin() ?: false, + $user->isGuest() ?: false, + $user->hasMailNotificationsActivated() ?: false, + $user->hasLdapCreated() ?: false, + $user->isMailLocked() ?: false, + ]; + } + + /** + * @param User $user + * @return array + */ + private function getApplicationOfUser(User $user) + { + $apiRepository = $this->container['repo.api-applications']; + $applications = $apiRepository->findByUser($user); + + if (empty($applications)) { + return []; + } + + $accountRepository = $this->container['repo.api-accounts']; + $apiOauthRepository = $this->container['repo.api-oauth-tokens']; + $usersApplication = []; + foreach ($applications as $application) { + $account = $accountRepository->findByUserAndApplication($user, $application); + $token = $account ? $apiOauthRepository->findDeveloperToken($account) : null; + $usersApplication[] = [ + $application->getName(), + $application->getRedirectUri(), + $application->getClientSecret(), + $application->getClientId(), + ($token) ? $token->getOauthToken() : '-' + ]; + } + + return $usersApplication; + } + + /** + * @param $withAdress + * @param $withRight + * @param $default + * @param $infoToMerge + * @return array + */ + private function createInformation($withAdress,$withRight,$default,$infoToMerge) + { + if ($withAdress && $withRight) { + $information = array_merge($default, $infoToMerge['adress'],$infoToMerge['right']); + } elseif ($withAdress && !$withRight) { + $information = array_merge($default, $infoToMerge['adress']); + } elseif(!$withAdress && $withRight) { + $information = array_merge($default, $infoToMerge['right']); + } else { + $information = $default; + } + + return $information; + } + + /** + * @param $date + * @param $type + * @param $query + */ + private function addFilterDate($date,$type,$query){ + + list($operator,$dateAt) = explode(',', $date); + + if (!in_array($operator,['=','>=','<=','>','<'])) { + throw new \InvalidArgumentException(" '=' or '<=' or '>=' or '>' or '<'"); + } + + $query->addSqlFilter($type.$operator.' ?' ,[$dateAt]); + } + +} diff --git a/lib/Alchemy/Phrasea/Command/User/UserSetPasswordCommand.php b/lib/Alchemy/Phrasea/Command/User/UserSetPasswordCommand.php new file mode 100644 index 0000000000..963910db02 --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/User/UserSetPasswordCommand.php @@ -0,0 +1,79 @@ +setDescription('Set user password in Phraseanet') + ->addOption('user_id', null, InputOption::VALUE_REQUIRED, 'The id of user.') + ->addOption('generate', null, InputOption::VALUE_NONE, 'Generate the password') + ->addOption('password', null, InputOption::VALUE_OPTIONAL, 'The password') + ->setHelp(''); + + return $this; + } + + protected function doExecute(InputInterface $input, OutputInterface $output) + { + + $dialog = $this->getHelperSet()->get('dialog'); + $userRepository = $this->container['repo.users']; + $userManipulator = $this->container['manipulator.user']; + $user = $userRepository->find($input->getOption('user_id')); + $password = $input->getOption('password'); + $generate = $input->getOption('generate'); + + if ($user === null) { + $output->writeln('Not found User.'); + return 0; + } + + if ($generate) { + $password = $this->container['random.medium']->generateString(64); + } else { + if (!$password) { + $output->writeln('--password option not specified'); + return 0; + } + } + + do { + $continue = mb_strtolower($dialog->ask($output, 'Do you want really set password to this user? (y/N)', 'N')); + } while (!in_array($continue, ['y', 'n'])); + + if ($continue !== 'y') { + $output->writeln('Aborting !'); + + return; + } + + $userManipulator->setPassword($user,$password); + $output->writeln('New password: ' . $password . ''); + + return 0; + } + +} diff --git a/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php b/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php index 8cf04e7839..04762b3aef 100644 --- a/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php +++ b/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php @@ -13,9 +13,11 @@ namespace Alchemy\Phrasea\Controller\Admin; use Alchemy\Phrasea\Controller\Controller; use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchSettingsFormType; use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions; +use Alchemy\Phrasea\SearchEngine\Elastic\Structure\GlobalStructure; use Symfony\Component\Form\FormInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use databox_descriptionStructure; class SearchEngineController extends Controller { @@ -31,7 +33,19 @@ class SearchEngineController extends Controller $form->handleRequest($request); if ($form->isValid()) { - $this->saveElasticSearchOptions($form->getData()); + /** @var ElasticsearchOptions $data */ + $data = $form->getData(); + // $q = $request->request->get('elasticsearch_settings'); + $facetNames = []; // rebuild the data "_customValues/facets" list following the form order + foreach($request->request->get('elasticsearch_settings') as $name=>$value) { + $matches = null; + if(preg_match('/^facets:(.+):limit$/', $name, $matches) === 1) { + $facetNames[] = $matches[1]; + } + } + $data->reorderAggregableFields($facetNames); + + $this->saveElasticSearchOptions($data); return $this->app->redirectPath('admin_searchengine_form'); } @@ -76,6 +90,16 @@ class SearchEngineController extends Controller */ private function saveElasticSearchOptions(ElasticsearchOptions $configuration) { + // save to databoxes fields for backward compatibility (useless ?) + foreach($configuration->getAggregableFields() as $fname=>$aggregableField) { + foreach ($this->app->getDataboxes() as $databox) { + if(!is_null($f = $databox->get_meta_structure()->get_element_by_name($fname, databox_descriptionStructure::STRICT_COMPARE))) { + $f->set_aggregable($aggregableField['limit'])->save(); + } + } + } + + // save to conf $this->getConf()->set(['main', 'search-engine', 'options'], $configuration->toArray()); } @@ -85,7 +109,10 @@ class SearchEngineController extends Controller */ private function getConfigurationForm(ElasticsearchOptions $options) { - return $this->app->form(new ElasticsearchSettingsFormType(), $options, [ + /** @var GlobalStructure $g */ + $g = $this->app['search_engine.structure']; + + return $this->app->form(new ElasticsearchSettingsFormType($g, $options), $options, [ 'action' => $this->app->url('admin_searchengine_form'), ]); } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/FeedController.php b/lib/Alchemy/Phrasea/Controller/Prod/FeedController.php index 2bc333f45c..39a0a8f48d 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/FeedController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/FeedController.php @@ -19,8 +19,10 @@ use Alchemy\Phrasea\Core\PhraseaEvents; use Alchemy\Phrasea\Feed\Aggregate; use Alchemy\Phrasea\Feed\Link\AggregateLinkGenerator; use Alchemy\Phrasea\Feed\Link\FeedLinkGenerator; +use Alchemy\Phrasea\Model\Entities\Feed; use Alchemy\Phrasea\Model\Entities\FeedEntry; use Alchemy\Phrasea\Model\Entities\FeedItem; +use Alchemy\Phrasea\Model\Entities\FeedPublisher; use Alchemy\Phrasea\Model\Repositories\FeedEntryRepository; use Alchemy\Phrasea\Model\Repositories\FeedItemRepository; use Alchemy\Phrasea\Model\Repositories\FeedPublisherRepository; @@ -46,6 +48,7 @@ class FeedController extends Controller } public function createFeedEntryAction(Request $request) { + /** @var Feed $feed */ $feed = $this->getFeedRepository()->find($request->request->get('feed_id')); if (null === $feed) { @@ -53,6 +56,8 @@ class FeedController extends Controller } $user = $this->getAuthenticatedUser(); + + /** @var FeedPublisher $publisher */ $publisher = $this->getFeedPublisherRepository()->findOneBy([ 'feed' => $feed, 'user' => $user, diff --git a/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php b/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php index d327e860c5..8afd22d2b3 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php @@ -433,24 +433,15 @@ class QueryController extends Controller // populates facets (aggregates) $facets = []; - // $facetClauses = []; foreach ($result->getFacets() as $facet) { $facetName = $facet['name']; if(array_key_exists($facetName, $fieldsInfosByName)) { - $f = $fieldsInfosByName[$facetName]; - $facet['label'] = $f['trans_label']; $facet['labels'] = $f['labels']; $facet['type'] = strtoupper($f['type']) . "-AGGREGATE"; $facets[] = $facet; - - // $facetClauses[] = [ - // 'type' => strtoupper($f['type']) . "-AGGREGATE", - // 'field' => $f['field'], - // 'facet' => $facet - // ]; } } diff --git a/lib/Alchemy/Phrasea/Controller/Root/AccountController.php b/lib/Alchemy/Phrasea/Controller/Root/AccountController.php index b4053a6ce1..6bf2d11f17 100644 --- a/lib/Alchemy/Phrasea/Controller/Root/AccountController.php +++ b/lib/Alchemy/Phrasea/Controller/Root/AccountController.php @@ -458,9 +458,9 @@ class AccountController extends Controller ->setZipCode($request->request->get("form_zip")) ->setPhone($request->request->get("form_phone")) ->setFax($request->request->get("form_fax")) - ->setJob($request->request->get("form_activity")) + ->setJob($request->request->get("form_function")) ->setCompany($request->request->get("form_company")) - ->setPosition($request->request->get("form_function")) + ->setPosition($request->request->get("form_activity")) ->setNotifications((Boolean) $request->request->get("mail_notifications")); $service->updateAccount($command); diff --git a/lib/Alchemy/Phrasea/Core/Configuration/DisplaySettingService.php b/lib/Alchemy/Phrasea/Core/Configuration/DisplaySettingService.php index 104230411d..24fcff9b2c 100644 --- a/lib/Alchemy/Phrasea/Core/Configuration/DisplaySettingService.php +++ b/lib/Alchemy/Phrasea/Core/Configuration/DisplaySettingService.php @@ -20,6 +20,7 @@ class DisplaySettingService const ORDER_BY_ADMIN = "ORDER_BY_ADMIN"; const ORDER_BY_BCT = "ORDER_BY_BCT"; const ORDER_BY_HITS = "ORDER_BY_HITS"; + const ORDER_BY_HITS_ASC = "ORDER_BY_HITS_ASC"; /** * The default user settings. @@ -31,7 +32,7 @@ class DisplaySettingService 'images_per_page' => '20', 'images_size' => '120', 'editing_images_size' => '134', - 'editing_top_box' => '180px', + 'editing_top_box' => '120px', 'editing_right_box' => '400px', 'editing_left_box' => '710px', 'basket_sort_field' => 'name', diff --git a/lib/Alchemy/Phrasea/Core/Event/Subscriber/FeedEntrySubscriber.php b/lib/Alchemy/Phrasea/Core/Event/Subscriber/FeedEntrySubscriber.php index 03a72a95b4..8bc7cb2b52 100644 --- a/lib/Alchemy/Phrasea/Core/Event/Subscriber/FeedEntrySubscriber.php +++ b/lib/Alchemy/Phrasea/Core/Event/Subscriber/FeedEntrySubscriber.php @@ -13,7 +13,9 @@ namespace Alchemy\Phrasea\Core\Event\Subscriber; use Alchemy\Phrasea\Core\Event\FeedEntryEvent; use Alchemy\Phrasea\Core\PhraseaEvents; +use Alchemy\Phrasea\Model\Entities\User; use Alchemy\Phrasea\Model\Entities\WebhookEvent; +use Alchemy\Phrasea\Model\Manipulator\TokenManipulator; use Alchemy\Phrasea\Notification\Receiver; use Alchemy\Phrasea\Notification\Mail\MailInfoNewPublication; @@ -53,36 +55,43 @@ class FeedEntrySubscriber extends AbstractNotificationSubscriber do { $results = $Query->limit($start, $perLoop)->execute()->get_results(); - foreach ($results as $user_to_notif) { - $mailed = false; + $users_emailed = []; // for all users + $users_to_email = []; // list only users who must be emailed (=create tokens) - if ($params['notify_email'] && $this->shouldSendNotificationFor($user_to_notif, 'eventsmanager_notify_feed')) { - $readyToSend = false; - try { - $token = $this->app['manipulator.token']->createFeedEntryToken($user_to_notif, $entry); - $url = $this->app->url('lightbox', ['LOG' => $token->getValue()]); - - $receiver = Receiver::fromUser($user_to_notif); - $readyToSend = true; - } catch (\Exception $e) { - - } - - if ($readyToSend) { - $mail = MailInfoNewPublication::create($this->app, $receiver); - $mail->setButtonUrl($url); - $mail->setAuthor($entry->getAuthorName()); - $mail->setTitle($entry->getTitle()); - - $this->deliver($mail); - $mailed = true; - } + /** @var User $user */ + foreach ($results as $user) { + $users_emailed[$user->getId()] = false; + if ($params['notify_email'] && $this->shouldSendNotificationFor($user, 'eventsmanager_notify_feed')) { + $users_to_email[$user->getId()] = $user; } - - $this->app['events-manager']->notify($user_to_notif->getId(), 'eventsmanager_notify_feed', $datas, $mailed); } + + // get many tokens in one shot + $tokens = $this->getTokenManipulator()->createFeedEntryTokens($users_to_email, $entry); + foreach($tokens as $token) { + try { + $url = $this->app->url('lightbox', ['LOG' => $token->getValue()]); + $receiver = Receiver::fromUser($token->getUser()); + + $mail = MailInfoNewPublication::create($this->app, $receiver); + $mail->setButtonUrl($url); + $mail->setAuthor($entry->getAuthorName()); + $mail->setTitle($entry->getTitle()); + + $this->deliver($mail); + $users_emailed[$token->getUser()->getId()] = true; + } + catch (\Exception $e) { + // no-op + } + } + foreach($users_emailed as $id => $emailed) { + $this->app['events-manager']->notify($id, 'eventsmanager_notify_feed', $datas, $emailed); + } + $start += $perLoop; - } while (count($results) > 0); + } + while (count($results) > 0); } public static function getSubscribedEvents() @@ -91,4 +100,12 @@ class FeedEntrySubscriber extends AbstractNotificationSubscriber PhraseaEvents::FEED_ENTRY_CREATE => 'onCreate', ]; } + + /** + * @return TokenManipulator + */ + private function getTokenManipulator() + { + return $this->app['manipulator.token']; + } } diff --git a/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php b/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php index 5092c6c77f..cc55894313 100644 --- a/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php +++ b/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php @@ -9,6 +9,8 @@ use MediaVorus\MediaVorusServiceProvider; use MP4Box\MP4BoxServiceProvider; use Neutron\Silex\Provider\ImagineServiceProvider; use PHPExiftool\PHPExiftoolServiceProvider; +use PHPExiftool\Reader; +use PHPExiftool\Writer; use Silex\Application; use Silex\ServiceProviderInterface; @@ -48,6 +50,21 @@ class MediaUtilitiesMetaServiceProvider implements ServiceProviderInterface public function boot(Application $app) { - // no-op + if(isset($app['exiftool.reader']) && isset($app['conf'])) { + try { + $timeout = $app['conf']->get(['main', 'binaries', 'exiftool_timeout'], 60); + + /** @var Reader $exiftoolReader */ + $exiftoolReader = $app['exiftool.reader']; + $exiftoolReader->setTimeout($timeout); + + /** @var Writer $exiftoolWriter */ + $exiftoolWriter = $app['exiftool.writer']; + $exiftoolWriter->setTimeout($timeout); + } + catch(\Exception $e) { + // no-nop + } + } } } diff --git a/lib/Alchemy/Phrasea/Core/Provider/SearchEngineServiceProvider.php b/lib/Alchemy/Phrasea/Core/Provider/SearchEngineServiceProvider.php index 58f77475a1..e342bf8380 100644 --- a/lib/Alchemy/Phrasea/Core/Provider/SearchEngineServiceProvider.php +++ b/lib/Alchemy/Phrasea/Core/Provider/SearchEngineServiceProvider.php @@ -97,7 +97,7 @@ class SearchEngineServiceProvider implements ServiceProviderInterface }); $app['elasticsearch.facets_response.factory'] = $app->protect(function (array $response) use ($app) { - return new FacetsResponse(new Escaper(), $response, $app['search_engine.structure']); + return new FacetsResponse($app['elasticsearch.options'], new Escaper(), $response, $app['search_engine.structure']); }); return $app; @@ -228,7 +228,8 @@ class SearchEngineServiceProvider implements ServiceProviderInterface }); $app['elasticsearch.options'] = $app->share(function ($app) { - $options = ElasticsearchOptions::fromArray($app['conf']->get(['main', 'search-engine', 'options'], [])); + $conf = $app['conf']->get(['main', 'search-engine', 'options'], []); + $options = ElasticsearchOptions::fromArray($conf); if (empty($options->getIndexName())) { $options->setIndexName(strtolower(sprintf('phraseanet_%s', str_replace( diff --git a/lib/Alchemy/Phrasea/Core/Version.php b/lib/Alchemy/Phrasea/Core/Version.php index c209691c0b..c029f2be01 100644 --- a/lib/Alchemy/Phrasea/Core/Version.php +++ b/lib/Alchemy/Phrasea/Core/Version.php @@ -16,7 +16,8 @@ class Version /** * @var string */ - private $number = '4.1.0-alpha.19a'; + + private $number = '4.1.0-alpha.23a'; /** * @var string diff --git a/lib/Alchemy/Phrasea/Helper/User/Edit.php b/lib/Alchemy/Phrasea/Helper/User/Edit.php index 5c760a55de..2c7513fb3f 100644 --- a/lib/Alchemy/Phrasea/Helper/User/Edit.php +++ b/lib/Alchemy/Phrasea/Helper/User/Edit.php @@ -657,8 +657,8 @@ class Edit extends \Alchemy\Phrasea\Helper\Helper ->setEmail($parm['email']) ->setAddress($parm['address']) ->setZipCode($parm['zip']) - ->setActivity($parm['function']) - ->setJob($parm['activite']) + ->setActivity($parm['activite']) + ->setJob($parm['function']) ->setCompany($parm['company']) ->setPhone($parm['telephone']) ->setFax($parm['fax']); diff --git a/lib/Alchemy/Phrasea/Model/Entities/Token.php b/lib/Alchemy/Phrasea/Model/Entities/Token.php index 576cf05d36..81c632f97d 100644 --- a/lib/Alchemy/Phrasea/Model/Entities/Token.php +++ b/lib/Alchemy/Phrasea/Model/Entities/Token.php @@ -15,7 +15,14 @@ use Doctrine\ORM\Mapping as ORM; use Gedmo\Mapping\Annotation as Gedmo; /** - * @ORM\Table(name="Tokens") + * @ORM\Table(name="Tokens", + * indexes={ + * @ORM\index(name="type", columns={"type"}), + * @ORM\index(name="created", columns={"created"}), + * @ORM\index(name="updated", columns={"updated"}), + * @ORM\index(name="expiration", columns={"expiration"}) + * } + * ) * @ORM\Entity(repositoryClass="Alchemy\Phrasea\Model\Repositories\TokenRepository") */ class Token diff --git a/lib/Alchemy/Phrasea/Model/Entities/WebhookEventPayload.php b/lib/Alchemy/Phrasea/Model/Entities/WebhookEventPayload.php index 1befac1843..141d415e22 100644 --- a/lib/Alchemy/Phrasea/Model/Entities/WebhookEventPayload.php +++ b/lib/Alchemy/Phrasea/Model/Entities/WebhookEventPayload.php @@ -30,7 +30,7 @@ class WebhookEventPayload private $id; /** - * @ORM\OneToOne(targetEntity="WebhookEventDelivery") + * @ORM\OneToOne(targetEntity="WebhookEventDelivery", inversedBy="payload") * @ORM\JoinColumn(name="delivery_id", referencedColumnName="id") */ private $delivery; diff --git a/lib/Alchemy/Phrasea/Model/Manipulator/TokenManipulator.php b/lib/Alchemy/Phrasea/Model/Manipulator/TokenManipulator.php index 2a43363693..56c4e9fc36 100644 --- a/lib/Alchemy/Phrasea/Model/Manipulator/TokenManipulator.php +++ b/lib/Alchemy/Phrasea/Model/Manipulator/TokenManipulator.php @@ -22,7 +22,6 @@ use RandomLib\Generator; class TokenManipulator implements ManipulatorInterface { const LETTERS_AND_NUMBERS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - const TYPE_FEED_ENTRY = 'FEED_ENTRY'; const TYPE_PASSWORD = 'password'; const TYPE_ACCOUNT_UNLOCK = 'account-unlock'; @@ -126,6 +125,38 @@ class TokenManipulator implements ManipulatorInterface return $this->create($user, self::TYPE_FEED_ENTRY, null, $entry->getId()); } + /** + * Create feedEntryTokens for many users in one shot + * + * @param User[] $users + * @param FeedEntry $entry + * @return Token[] + * @throws \Doctrine\DBAL\DBALException + */ + public function createFeedEntryTokens($users, FeedEntry $entry) + { + // $this->removeExpiredTokens(); + + $tokens = []; + foreach ($users as $user) { + $value = $this->random->generateString(32, self::LETTERS_AND_NUMBERS) . $user->getId(); + + $token = new Token(); + $token->setUser($user) + ->setType(self::TYPE_FEED_ENTRY) + ->setValue($value) + ->setExpiration(null) + ->setData($entry->getId()); + $tokens[] = $token; + + $this->om->persist($token); + } + $this->om->flush(); + $this->om->clear(); + + return $tokens; + } + /** * @param User $user * @param $data diff --git a/lib/Alchemy/Phrasea/Model/Repositories/TokenRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/TokenRepository.php index ad45425f7c..8e40f9ebd8 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/TokenRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/TokenRepository.php @@ -72,4 +72,9 @@ class TokenRepository extends EntityRepository return $query->getResult(); } + + public function getEntityManager() + { + return parent::getEntityManager(); + } } diff --git a/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php index d122922091..e428f8554b 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php @@ -122,4 +122,15 @@ class UserRepository extends EntityRepository { return $this->findBy(['templateOwner' => $user->getId()]); } + + /** + * Finds all templates + */ + public function findTemplate() + { + $qb = $this->createQueryBuilder('u'); + $qb->where('u.templateOwner is NOT NULL'); + + return $qb->getQuery()->getResult(); + } } diff --git a/lib/Alchemy/Phrasea/Out/Module/PDFRecords.php b/lib/Alchemy/Phrasea/Out/Module/PDFRecords.php index 3c72b25e20..8dd5dd4492 100644 --- a/lib/Alchemy/Phrasea/Out/Module/PDFRecords.php +++ b/lib/Alchemy/Phrasea/Out/Module/PDFRecords.php @@ -396,25 +396,25 @@ class PDFRecords extends PDF $this->pdf->SetY($this->pdf->GetY()+10); $this->pdf->SetFont(PhraseaPDF::FONT, 'B', 12); - $this->pdf->Write(5, $this->app->trans("print_feedback:: Document generated on : " . " ")); + $this->pdf->Write(5, $this->app->trans("print_feedback:: Document generated on : ") . " "); $this->pdf->SetFont(PhraseaPDF::FONT, '', 12); $this->pdf->Write(5, $this->formatDate(new \DateTime('now'))); $this->pdf->Write(12, "\n"); $this->pdf->SetFont(PhraseaPDF::FONT, 'B', 12); - $this->pdf->Write(5, $this->app->trans("print_feedback:: Feedback initiated by : " . " ")); + $this->pdf->Write(5, $this->app->trans("print_feedback:: Feedback initiated by : ") . " "); $this->pdf->SetFont(PhraseaPDF::FONT, '', 12); $this->pdf->Write(5, $this->getDisplayName($validation->getInitiator())); $this->pdf->Write(6, "\n"); $this->pdf->SetFont(PhraseaPDF::FONT, 'B', 12); - $this->pdf->Write(5, $this->app->trans("print_feedback:: Feedback initiated on : " . " ")); + $this->pdf->Write(5, $this->app->trans("print_feedback:: Feedback initiated on : ") . " "); $this->pdf->SetFont(PhraseaPDF::FONT, '', 12); $this->pdf->Write(5, $this->formatDate($validation->getCreated())); $this->pdf->Write(6, "\n"); $this->pdf->SetFont(PhraseaPDF::FONT, 'B', 12); - $this->pdf->Write(5, $this->app->trans("print_feedback:: Feedback expiring on : " . " ")); + $this->pdf->Write(5, $this->app->trans("print_feedback:: Feedback expiring on : ") . " "); $this->pdf->SetFont(PhraseaPDF::FONT, '', 12); $this->pdf->Write(5, $this->formatDate($validation->getExpires())); $this->pdf->Write(12, "\n"); diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php index 63d9ec108e..2424330031 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php @@ -668,17 +668,20 @@ class ElasticSearchEngine implements SearchEngineInterface } // fields aggregates $structure = $this->context_factory->getLimitedStructure($options); - foreach ($structure->getFacetFields() as $name => $field) { - // 2015-05-26 (mdarse) Removed databox filtering. - // It was already done by the ACL filter in the query scope, so no - // document that shouldn't be displayed can go this far. - $agg = [ - 'terms' => [ - 'field' => $field->getIndexField(true), - 'size' => $field->getFacetValuesLimit() - ] - ]; - $aggs[$name] = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); + foreach($structure->getAllFields() as $name => $field) { + $size = $this->options->getAggregableFieldLimit($name); + if ($size !== databox_field::FACET_DISABLED) { + if ($size === databox_field::FACET_NO_LIMIT) { + $size = ESField::FACET_NO_LIMIT; + } + $agg = [ + 'terms' => [ + 'field' => $field->getIndexField(true), + 'size' => $size + ] + ]; + $aggs[$name] = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); + } } return $aggs; diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchOptions.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchOptions.php index 0532f85c30..07e54449eb 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchOptions.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchOptions.php @@ -9,6 +9,10 @@ */ namespace Alchemy\Phrasea\SearchEngine\Elastic; +use databox_field; +use igorw; + + class ElasticsearchOptions { const POPULATE_ORDER_RID = "RECORD_ID"; @@ -35,7 +39,7 @@ class ElasticsearchOptions private $populateDirection; /** @var int[] */ - private $_customValues; + private $_customValues = []; private $activeTab; /** @@ -57,14 +61,10 @@ class ElasticsearchOptions 'populate_order' => self::POPULATE_ORDER_RID, 'populate_direction' => self::POPULATE_DIRECTION_DESC, 'activeTab' => null, + 'facets' => [] ]; - - foreach(self::getAggregableTechnicalFields() as $k => $f) { - $defaultOptions[$k.'_limit'] = 0; - } $options = array_replace($defaultOptions, $options); - $self = new self(); $self->setHost($options['host']); $self->setPort($options['port']); @@ -76,11 +76,10 @@ class ElasticsearchOptions $self->setPopulateOrder($options['populate_order']); $self->setPopulateDirection($options['populate_direction']); $self->setActiveTab($options['activeTab']); - foreach(self::getAggregableTechnicalFields() as $k => $f) { - $self->setAggregableFieldLimit($k, $options[$k.'_limit']); + foreach($options['facets'] as $fieldname=>$attributes) { + $self->setAggregableField($fieldname, $attributes); } - return $self; } @@ -99,10 +98,11 @@ class ElasticsearchOptions 'highlight' => $this->highlight, 'populate_order' => $this->populateOrder, 'populate_direction' => $this->populateDirection, - 'activeTab' => $this->activeTab + 'activeTab' => $this->activeTab, + 'facets' => [] ]; - foreach(self::getAggregableTechnicalFields() as $k => $f) { - $ret[$k.'_limit'] = $this->getAggregableFieldLimit($k); + foreach($this->getAggregableFields() as $fieldname=>$attributes) { + $ret['facets'][$fieldname] = $attributes; } return $ret; @@ -222,12 +222,51 @@ class ElasticsearchOptions public function setAggregableFieldLimit($key, $value) { - $this->_customValues[$key.'_limit'] = $value; + if(is_null($this->getAggregableField($key))) { + $this->_customValues['facets'][$key] = []; + } + $this->_customValues['facets'][$key]['limit'] = $value; + } + + public function setAggregableField($key, $attributes) + { + $this->getAggregableFields(); // ensure facets exists + $this->_customValues['facets'][$key] = $attributes; } public function getAggregableFieldLimit($key) { - return $this->_customValues[$key.'_limit']; + $facet = $this->getAggregableField($key); + return (is_array($facet) && array_key_exists('limit', $facet)) ? $facet['limit'] : databox_field::FACET_DISABLED; + } + + public function getAggregableField($key) + { + $facets = $this->getAggregableFields(); + return array_key_exists($key, $facets) ? $facets[$key] : null; + } + + /** + * @return array + */ + public function getAggregableFields() + { + if(!array_key_exists('facets', $this->_customValues) || !is_array($this->_customValues['facets'])) { + $this->_customValues['facets'] = []; + } + return $this->_customValues['facets']; + } + + // set to change the facets order during admin/form save + public function reorderAggregableFields($facetNames) + { + $newFacets = []; + foreach ($facetNames as $name) { + if(($facet = $this->getAggregableField($name)) !== null) { + $newFacets[$name] = $facet; + } + } + $this->_customValues['facets'] = $newFacets; } public function getActiveTab() @@ -241,56 +280,56 @@ class ElasticsearchOptions public function __get($key) { - if(!array_key_exists($key, $this->_customValues)) { - $this->_customValues[$key] = 0; - } - return $this->_customValues[$key]; + $keys = explode(':', $key); + + return igorw\get_in($this->_customValues, $keys); } public function __set($key, $value) { - $this->_customValues[$key] = $value; + $keys = explode(':', $key); + $this->_customValues = igorw\assoc_in($this->_customValues, $keys, $value); } public static function getAggregableTechnicalFields() { return [ - 'base_aggregate' => [ + '_base' => [ 'type' => 'string', 'label' => 'prod::facet:base_label', 'field' => "database", 'esfield' => 'databox_name', 'query' => 'database:%s', ], - 'collection_aggregate' => [ + '_collection' => [ 'type' => 'string', 'label' => 'prod::facet:collection_label', 'field' => "collection", 'esfield' => 'collection_name', 'query' => 'collection:%s', ], - 'doctype_aggregate' => [ + '_doctype' => [ 'type' => 'string', 'label' => 'prod::facet:doctype_label', 'field' => "type", 'esfield' => 'type', 'query' => 'type:%s', ], - 'camera_model_aggregate' => [ + '_camera_model' => [ 'type' => 'string', 'label' => 'Camera Model', 'field' => "meta.CameraModel", 'esfield' => 'metadata_tags.CameraModel', 'query' => 'meta.CameraModel:%s', ], - 'iso_aggregate' => [ + '_iso' => [ 'type' => 'number', 'label' => 'ISO', 'field' => "meta.ISO", 'esfield' => 'metadata_tags.ISO', 'query' => 'meta.ISO=%s', ], - 'aperture_aggregate' => [ + '_aperture' => [ 'type' => 'number', 'label' => 'Aperture', 'field' => "meta.Aperture", @@ -300,7 +339,7 @@ class ElasticsearchOptions return round($value, 1); }, ], - 'shutterspeed_aggregate' => [ + '_shutterspeed' => [ 'type' => 'number', 'label' => 'Shutter speed', 'field' => "meta.ShutterSpeed", @@ -313,7 +352,7 @@ class ElasticsearchOptions return $value . ' s.'; }, ], - 'flashfired_aggregate' => [ + '_flashfired' => [ 'type' => 'boolean', 'label' => 'FlashFired', 'field' => "meta.FlashFired", @@ -327,49 +366,49 @@ class ElasticsearchOptions return array_key_exists($value, $map) ? $map[$value] : $value; }, ], - 'framerate_aggregate' => [ + '_framerate' => [ 'type' => 'number', 'label' => 'FrameRate', 'field' => "meta.FrameRate", 'esfield' => 'metadata_tags.FrameRate', 'query' => 'meta.FrameRate=%s', ], - 'audiosamplerate_aggregate' => [ + '_audiosamplerate' => [ 'type' => 'number', 'label' => 'Audio Samplerate', 'field' => "meta.AudioSamplerate", 'esfield' => 'metadata_tags.AudioSamplerate', 'query' => 'meta.AudioSamplerate=%s', ], - 'videocodec_aggregate' => [ + '_videocodec' => [ 'type' => 'string', 'label' => 'Video codec', 'field' => "meta.VideoCodec", 'esfield' => 'metadata_tags.VideoCodec', 'query' => 'meta.VideoCodec:%s', ], - 'audiocodec_aggregate' => [ + '_audiocodec' => [ 'type' => 'string', 'label' => 'Audio codec', 'field' => "meta.AudioCodec", 'esfield' => 'metadata_tags.AudioCodec', 'query' => 'meta.AudioCodec:%s', ], - 'orientation_aggregate' => [ + '_orientation' => [ 'type' => 'string', 'label' => 'Orientation', 'field' => "meta.Orientation", 'esfield' => 'metadata_tags.Orientation', 'query' => 'meta.Orientation=%s', ], - 'colorspace_aggregate' => [ + '_colorspace' => [ 'type' => 'string', 'label' => 'Colorspace', 'field' => "meta.ColorSpace", 'esfield' => 'metadata_tags.ColorSpace', 'query' => 'meta.ColorSpace:%s', ], - 'mimetype_aggregate' => [ + '_mimetype' => [ 'type' => 'string', 'label' => 'MimeType', 'field' => "meta.MimeType", diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php index e1aaa3e378..1f2fa3d1e2 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php @@ -9,6 +9,7 @@ */ namespace Alchemy\Phrasea\SearchEngine\Elastic; +use Alchemy\Phrasea\SearchEngine\Elastic\Structure\GlobalStructure; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; @@ -17,6 +18,18 @@ use Symfony\Component\Validator\Constraints\Range; class ElasticsearchSettingsFormType extends AbstractType { + /** @var GlobalStructure */ + private $globalStructure; + + /** @var ElasticsearchOptions */ + private $esSettings; + + public function __construct(GlobalStructure $g, ElasticsearchOptions $settings) + { + $this->globalStructure = $g; + $this->esSettings = $settings; + } + public function buildForm(FormBuilderInterface $builder, array $options) { $builder @@ -56,59 +69,89 @@ class ElasticsearchSettingsFormType extends AbstractType ->add('minScore', 'integer', [ 'label' => 'Thesaurus Min score', 'constraints' => new Range(['min' => 0]), - ]); + ]) + ->add('highlight', 'checkbox', [ + 'label' => 'Activate highlight', + 'required' => false + ]) + // ->add('save', 'submit', [ + // 'attr' => ['class' => 'btn btn-primary'] + // ]) + ->add('esSettingFromIndex', 'button', [ + 'label' => 'Get setting form index', + 'attr' => [ + 'onClick' => 'esSettingFromIndex()', + 'class' => 'btn' + ] + ]) + ->add('dumpField', 'textarea', [ + 'label' => false, + 'required' => false, + 'mapped' => false, + 'attr' => ['class' => 'dumpfield hide'] + ]) + ->add('activeTab', 'hidden'); - foreach(ElasticsearchOptions::getAggregableTechnicalFields() as $k => $f) { - if(array_key_exists('choices', $f)) { - // choices[] : choice_key => choice_value - $choices = $f['choices']; - } - else { - $choices = [ - "10 values" => 10, - "20 values" => 20, - "50 values" => 50, - "100 values" => 100, - "all values" => -1 - ]; - } - // array_unshift($choices, "not aggregated"); // always as first choice - $choices = array_merge(["not aggregated" => 0], $choices); - $builder - ->add($k.'_limit', ChoiceType::class, [ - // 'label' => $f['label'],// . ' ' . 'aggregate limit', - 'choices_as_values' => true, - 'choices' => $choices, - 'attr' => [ - 'class' => 'aggregate' - ] - ]); + // keep aggregates in configuration order with this intermediate array + $aggs = []; + + // helper fct to add aggregate to a tmp list + $addAgg = function($k, $label, $help, $disabled=false, $choices=null) use (&$aggs) { + if(!$choices) { + $choices = [ + "10 values" => 10, + "50 values" => 50, + "100 values" => 100, + "all values" => -1 + ]; } + $choices = array_merge(["not aggregated" => 0], $choices); // add this option always as first choice + $aggs[$k] = [ // default value will be replaced by hardcoded tech fields & all databoxes fields + 'label' => $label, + 'choices_as_values' => true, + 'choices' => $choices, + 'attr' => [ + 'class' => 'aggregate' + ], + 'disabled' => $disabled, + 'help_message' => $help // todo : not displayed ? + ]; + }; - $builder - ->add('highlight', 'checkbox', [ - 'label' => 'Activate highlight', - 'required' => false - ]) -// ->add('save', 'submit', [ -// 'attr' => ['class' => 'btn btn-primary'] -// ]) - ->add('esSettingFromIndex', 'button', [ - 'label' => 'Get setting form index', - 'attr' => [ - 'onClick' => 'esSettingFromIndex()', - 'class' => 'btn' - ] - ]) - ->add('dumpField', 'textarea', [ - 'label' => false, - 'required' => false, - 'mapped' => false, - 'attr' => ['class' => 'dumpfield hide'] - ]) - ->add('activeTab', 'hidden'); + // all fields fron conf + foreach($this->esSettings->getAggregableFields() as $k=>$f) { + // default value will be replaced by hardcoded tech fields & all databoxes fields + $addAgg($k, "/?\\ " . $k, "This field does not exists in current databoxes.", true); + } + + // add or replace hardcoded tech fields + foreach(ElasticsearchOptions::getAggregableTechnicalFields() as $k => $f) { + $choices = array_key_exists('choices', $f) ? $f['choices'] : null; // a tech-field can publish it's own choices + $help = null; + $label = '#' . $k; + if(!array_key_exists($k, $aggs)) { + $label = "/!\\ " . $label; + $help = "New field, please confirm setting."; + } + $addAgg($k, $label, $help, false, $choices); + } + + // add or replace all databoxes fields (nb: new db field - unknown in conf - will be a the end) + foreach($this->globalStructure->getAllFields() as $field) { + $k = $label = $field->getName(); + $help = null; + if(!array_key_exists($field->getName(), $aggs)) { + $label = "/!\\ " . $label; + $help = "New field, please confirm setting."; + } + $addAgg($k, $label, $help); // default choices + } + + // populate aggs to form + foreach($aggs as $k=>$agg) { + $builder->add('facets:' . $k . ':limit', ChoiceType::class, $agg); + } - ; } public function getName() diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php index 2f2d966c51..efcc6d1c76 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php @@ -15,7 +15,7 @@ class FacetsResponse private $escaper; private $facets = array(); - public function __construct(Escaper $escaper, array $response, GlobalStructure $structure) + public function __construct(ElasticsearchOptions $options, Escaper $escaper, array $response, GlobalStructure $structure) { $this->escaper = $escaper; @@ -25,7 +25,13 @@ class FacetsResponse $atf = ElasticsearchOptions::getAggregableTechnicalFields(); - foreach ($response['aggregations'] as $name => $aggregation) { + // sort facets respecting the order defined in options + foreach($options->getAggregableFields() as $name=>$foptions) { + if(!array_key_exists($name, $response['aggregations'])) { + continue; + } + $aggregation = $response['aggregations'][$name]; + $tf = null; $valueFormatter = function($v){ return $v; }; // default equality formatter @@ -78,6 +84,7 @@ class FacetsResponse ]; } } + } diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/GlobalStructure.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/GlobalStructure.php index ea4022dffb..0793c91c7b 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/GlobalStructure.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/GlobalStructure.php @@ -35,11 +35,6 @@ final class GlobalStructure implements Structure */ private $private = array(); - /** - * @var Field[] - */ - private $facets = array(); - /** * @var Flag[] */ @@ -145,9 +140,11 @@ final class GlobalStructure implements Structure $this->private[$name] = $field; } + /* if ($field->isFacet() && $field->isSearchable()) { $this->facets[$name] = $field; } + */ if ($field->hasConceptInference()) { $this->thesaurus_fields[$name] = $field; @@ -183,14 +180,6 @@ final class GlobalStructure implements Structure return $this->private; } - /** - * @return Field[] - */ - public function getFacetFields() - { - return $this->facets; - } - /** * @return Field[] */ diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/LimitedStructure.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/LimitedStructure.php index 671bf87c93..053ca6b0e0 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/LimitedStructure.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/LimitedStructure.php @@ -47,14 +47,6 @@ final class LimitedStructure implements Structure return $this->limit($this->structure->getPrivateFields()); } - /** - * @return Field[] - */ - public function getFacetFields() - { - return $this->limit($this->structure->getFacetFields()); - } - public function getThesaurusEnabledFields() { return $this->limit($this->structure->getThesaurusEnabledFields()); diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/Structure.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/Structure.php index 3c2be701e1..44d58e9d5f 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/Structure.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Structure/Structure.php @@ -33,11 +33,6 @@ interface Structure */ public function getPrivateFields(); - /** - * @return Field[] - */ - public function getFacetFields(); - /** * @return Field[] */ diff --git a/lib/classes/eventsmanager/broker.php b/lib/classes/eventsmanager/broker.php index 62244756ce..468a0bc621 100644 --- a/lib/classes/eventsmanager/broker.php +++ b/lib/classes/eventsmanager/broker.php @@ -39,7 +39,6 @@ class eventsmanager_broker ], 'notify' => [ 'eventsmanager_notify_autoregister', - 'eventsmanager_notify_bridgeuploadfail', 'eventsmanager_notify_downloadmailfail', 'eventsmanager_notify_feed', 'eventsmanager_notify_order', diff --git a/lib/classes/eventsmanager/notify/order.php b/lib/classes/eventsmanager/notify/order.php index d5aca30998..bba2c686f0 100644 --- a/lib/classes/eventsmanager/notify/order.php +++ b/lib/classes/eventsmanager/notify/order.php @@ -42,7 +42,7 @@ class eventsmanager_notify_order extends eventsmanager_notifyAbstract $ret = [ 'text' => $this->app->trans('%user% a passe une %opening_link% commande %end_link%', [ '%user%' => $sender, - '%opening_link%' => '', + '%opening_link%' => '', '%end_link%' => '',]) , 'class' => '' ]; diff --git a/lib/classes/patch/410alpha17a.php b/lib/classes/patch/410alpha17a.php index ff682b1ef9..a719c2b62b 100644 --- a/lib/classes/patch/410alpha17a.php +++ b/lib/classes/patch/410alpha17a.php @@ -62,6 +62,16 @@ class patch_410alpha17a implements patchInterface // $sql = "ALTER TABLE `metadatas_structure` ADD `gui_editable` INT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `readonly`"; // $databox->get_connection()->executeQuery($sql); + foreach ($databox->get_meta_structure() as $databox_field) { + if ($databox_field->get_tbranch() != '') { + $databox_field->set_generate_cterms(true); + } else { + $databox_field->set_generate_cterms(false); + } + + $databox_field->save(); + } + return true; } } diff --git a/lib/classes/patch/410alpha21a.php b/lib/classes/patch/410alpha21a.php new file mode 100644 index 0000000000..58091e62f2 --- /dev/null +++ b/lib/classes/patch/410alpha21a.php @@ -0,0 +1,111 @@ +release; + } + + /** + * {@inheritdoc} + */ + public function concern() + { + return $this->concern; + } + + /** + * {@inheritdoc} + */ + public function require_all_upgrades() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function getDoctrineMigrations() + { + return []; + } + + /** + * {@inheritdoc} + */ + public function apply(base $databox, Application $app) + { + // fix the Longitude value + + $sql = 'SELECT id, record_id, name, value FROM technical_datas WHERE trim(name) = "LongitudeRef" '; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + foreach ($rs as $row) { + if (trim($row['value']) === 'W' ) { + $sql = 'UPDATE technical_datas SET value = CONCAT("-", value) WHERE trim(name) = "Longitude" AND record_id =:record_id'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute([':record_id' => $row['record_id']]); + } + + $sqlDelete = 'DELETE FROM technical_datas WHERE id =:id'; + + $stmt1 = $databox->get_connection()->prepare($sqlDelete); + $stmt1->execute([':id' => $row['id']]); + $stmt1->closeCursor(); + } + + $stmt->closeCursor(); + + // fix the Latitude value + + $sql = 'SELECT id, record_id, name, value FROM technical_datas WHERE trim(name) = "LatitudeRef" '; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + foreach ($rs as $row) { + if (trim($row['value']) === 'S' ) { + $sql = 'UPDATE technical_datas SET value = CONCAT("-", value) WHERE trim(name) = "Latitude" AND record_id =:record_id'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute([':record_id' => $row['record_id']]); + } + + $sqlDelete = 'DELETE FROM technical_datas WHERE id =:id'; + + $stmt1 = $databox->get_connection()->prepare($sqlDelete); + $stmt1->execute([':id' => $row['id']]); + $stmt1->closeCursor(); + } + + $stmt->closeCursor(); + + return true; + } +} diff --git a/lib/classes/patch/410alpha22a.php b/lib/classes/patch/410alpha22a.php new file mode 100644 index 0000000000..6a80bd058e --- /dev/null +++ b/lib/classes/patch/410alpha22a.php @@ -0,0 +1,75 @@ +release; + } + + /** + * {@inheritdoc} + */ + public function concern() + { + return $this->concern; + } + + /** + * {@inheritdoc} + */ + public function require_all_upgrades() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function getDoctrineMigrations() + { + return []; + } + + /** + * {@inheritdoc} + */ + public function apply(base $appbox, Application $app) + { + foreach(['type', 'created', 'updated', 'expiration'] as $t) { + $sql = "ALTER TABLE `Tokens` ADD INDEX `".$t."` (`".$t."`);"; + try { + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + catch (\Exception $e) { + // the inex already exists ? + } + } + + return true; + } +} diff --git a/lib/classes/patch/410alpha23a.php b/lib/classes/patch/410alpha23a.php new file mode 100644 index 0000000000..eae272bc8e --- /dev/null +++ b/lib/classes/patch/410alpha23a.php @@ -0,0 +1,111 @@ +release; + } + + /** + * {@inheritdoc} + */ + public function concern() + { + return $this->concern; + } + + /** + * {@inheritdoc} + */ + public function require_all_upgrades() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function getDoctrineMigrations() + { + return []; + } + + /** + * {@inheritdoc} + */ + public function apply(base $appbox, Application $app) + { + // fix embed-bundle keys + if ($app['conf']->has(['embed_bundle', 'video', 'available-speeds'])) { + $availableSpeed = $app['conf']->get(['embed_bundle', 'video', 'available-speeds']); + $app['conf']->remove(['embed_bundle', 'video', 'available-speeds']); + $app['conf']->set(['embed_bundle', 'video', 'available_speeds'], $availableSpeed); + } + + if ($app['conf']->has(['embed_bundle', 'audio', 'available-speeds'])) { + $availableSpeed = $app['conf']->get(['embed_bundle', 'audio', 'available-speeds']); + $app['conf']->remove(['embed_bundle', 'audio', 'available-speeds']); + $app['conf']->set(['embed_bundle', 'audio', 'available_speeds'], $availableSpeed); + } + + if ($app['conf']->has(['embed_bundle', 'document', 'enable-pdfjs'])) { + $enablePdfjs = $app['conf']->get(['embed_bundle', 'document', 'enable-pdfjs']); + $app['conf']->remove(['embed_bundle', 'document', 'enable-pdfjs']); + $app['conf']->set(['embed_bundle', 'document', 'enable_pdfjs'], $enablePdfjs); + } + + // geoloc section change replace 'name' to 'map-provider' + if ($app['conf']->has(['geocoding-providers', 0, 'name'])) { + $geocodingName = $app['conf']->get(['geocoding-providers', 0, 'name']); + $app['conf']->remove(['geocoding-providers', 0, 'name']); + $app['conf']->set(['geocoding-providers', 0, 'map-provider'], $geocodingName); + } + + // video-editor section change, replace 'vttFieldName' to 'ChapterVttFieldName' + if ($app['conf']->has(['video-editor', 'vttFieldName'])) { + $chapterVttFieldName = $app['conf']->get(['video-editor', 'vttFieldName']); + $app['conf']->remove(['video-editor', 'vttFieldName']); + $app['conf']->set(['video-editor', 'ChapterVttFieldName'], $chapterVttFieldName); + } + + // remove registry classic section if exist + if ($app['conf']->has(['registry', 'classic'])) { + $app['conf']->remove(['registry', 'classic']); + } + + // remove bridge section if exist + if ($app['conf']->has(['main', 'bridge'])) { + $app['conf']->remove(['main', 'bridge']); + } + + // insert RGPD bloc if not exist + if (!$app['conf']->has(['user_account', 'deleting_policies', 'email_confirmation'])) { + $app['conf']->set(['user_account', 'deleting_policies', 'email_confirmation'], true); + } + + return true; + } +} diff --git a/lib/conf.d/configuration.yml b/lib/conf.d/configuration.yml index 0e13eba50c..f237b8318f 100644 --- a/lib/conf.d/configuration.yml +++ b/lib/conf.d/configuration.yml @@ -39,21 +39,37 @@ main: populate_order: RECORD_ID populate_direction: DESC activeTab: '#elastic-search' - base_aggregate_limit: 10 - collection_aggregate_limit: 10 - doctype_aggregate_limit: 0 - camera_model_aggregate_limit: 0 - iso_aggregate_limit: 0 - aperture_aggregate_limit: 0 - shutterspeed_aggregate_limit: 0 - flashfired_aggregate_limit: 0 - framerate_aggregate_limit: 0 - audiosamplerate_aggregate_limit: 0 - videocodec_aggregate_limit: 0 - audiocodec_aggregate_limit: 0 - orientation_aggregate_limit: 0 - colorspace_aggregate_limit: 0 - mimetype_aggregate_limit: 0 + facets: + _base: + limit: 10 + _collection: + limit: 10 + _doctype: + limit: 10 + _camera_model: + limit: 0 + _iso: + limit: 0 + _aperture: + limit: 0 + _shutterspeed: + limit: 0 + _flashfired: + limit: 0 + _framerate: + limit: 0 + _audiosamplerate: + limit: 0 + _videocodec: + limit: 0 + _audiocodec: + limit: 0 + _orientation: + limit: 0 + _colorspace: + limit: 0 + _mimetype: + limit: 0 task-manager: status: started enabled: true @@ -87,6 +103,7 @@ main: mp4box_timeout: 60 swftools_timeout: 60 unoconv_timeout: 60 + exiftool_timeout: 60 storage: subdefs: null cache: null @@ -94,6 +111,7 @@ main: download: null lazaret: null caption: null + tmp_files: null trusted-proxies: [] debugger: @@ -241,7 +259,7 @@ embed_bundle: geocoding-providers: - map-provider: 'mapboxWebGL' - enabled: true + enabled: false public-key: '' map-layers: - @@ -284,7 +302,7 @@ geocoding-providers: provincefields: Province countryfields: 'Country, Pays' video-editor: - vttFieldName: VideoTextTrackChapters + ChapterVttFieldName: VideoTextTrackChapters seekBackwardStep: 500 # in ms seekForwardStep: 500 # in ms playbackRates: diff --git a/package.json b/package.json index 57ae3e628f..8ac01be75a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "normalize-css": "^2.1.0", "npm": "^6.0.0", "npm-modernizr": "^2.8.3", - "phraseanet-production-client": "0.34.116-d", + "phraseanet-production-client": "0.34.139-d", "requirejs": "^2.3.5", "tinymce": "^4.0.28", "underscore": "^1.8.3", diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index 78fc1ee82e..cb9c16cbbd 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. @@ -118,8 +118,8 @@ %basket_length% documents %basket_length% Dokument(e) mobile/lightbox/validate.html.twig - web/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig + web/lightbox/index.html.twig %countable% documents can not be modified. @@ -278,7 +278,7 @@ %record_count% records match the unique identifier : %record_count% Datensätze entsprechen dem eindeutigen Bezeichner: - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig %s field has been created with success. @@ -383,17 +383,17 @@ (validation) a envoyer zu senden - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) envoyee gesendet - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) session terminee Sitzung beendet - web/lightbox/index.html.twig + web/lightbox/index.html.twig *Phraseanet Navigator* is a smartphone application that allow user to connect on this instance @@ -489,7 +489,7 @@ A record matches the unique identifier : Ein Datensatz entspricht dem eindeutigen Bezeichner : - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig A required field is missing or has an empty value @@ -627,7 +627,7 @@ Action Forbidden : You are not the publisher Aktion verboten: Sie sind nicht der Veröffentlicher - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php Actions @@ -642,7 +642,7 @@ Activate highlight Highlight aktivieren - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -676,8 +676,8 @@ Add Hinzufügen prod/actions/Push.html.twig - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig prod/User/Add.html.twig @@ -760,8 +760,8 @@ Advanced Search Erweiterte Suche - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Advanced mode @@ -776,37 +776,42 @@ Affichage Anzeige - web/prod/index.html.twig + web/prod/index.html.twig Affichage au demarrage beim Start anzeigen - web/prod/index.html.twig + web/prod/index.html.twig Afficher la fiche descriptive das beschriftliche Blatt anzeigen - web/prod/index.html.twig + web/prod/index.html.twig Afficher le titre den Titel anzeigen - web/prod/index.html.twig + web/prod/index.html.twig Afficher les status die Status anzeigen - web/prod/index.html.twig + web/prod/index.html.twig Afficher une icone eine Ikone anzeigen - web/prod/index.html.twig + web/prod/index.html.twig After metadata Nach Metadaten - web/prod/index.html.twig + web/prod/index.html.twig + + + Aggregated + Aggregated + admin/search-engine/general-aggregation.html.twig Aggregation @@ -816,7 +821,7 @@ Aide Hilfe - web/prod/index.html.twig + web/prod/index.html.twig Aide sur les expressions regulieres @@ -868,12 +873,7 @@ All these conditions Alle Bedingungen - web/prod/index.html.twig - - - All values - Alle Werte - admin/fields/templates.html.twig + web/prod/index.html.twig Aller a @@ -938,14 +938,15 @@ Alphabetic asc aufsteigender alphabetischer Reihenfolge - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Alphabetic desc absteigender alphabetischer Reihenfolge - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Also delete records that rely on groupings. @@ -1032,7 +1033,7 @@ Ein Fehler ist aufgetreten Order/Controller/ProdOrderController.php Controller/Admin/DataboxController.php - Controller/Admin/SearchEngineController.php + Controller/Admin/SearchEngineController.php Controller/Admin/CollectionController.php Controller/Prod/BasketController.php Controller/Api/V3Controller.php @@ -1068,7 +1069,7 @@ Aperture Blende - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1265,7 +1266,7 @@ Audio Audio - web/prod/index.html.twig + web/prod/index.html.twig Audio Birate @@ -1281,7 +1282,7 @@ Audio Samplerate Audio Samplerate - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Audio channel @@ -1291,7 +1292,7 @@ Audio codec Audio-Codec - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php AudioSamplerate @@ -1524,9 +1525,9 @@ Browse Baskets Sammelkörbe durchsuchen - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Browser @@ -1554,7 +1555,7 @@ By field Nach Feld - web/prod/index.html.twig + web/prod/index.html.twig CHAMPS @@ -1564,7 +1565,7 @@ Camera Model Kameramodell - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1822,7 +1823,7 @@ Collection Kollektion prod/Story/Create.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/databox/details.html.twig @@ -1839,7 +1840,7 @@ Collection order Kollektionen Ordnung - web/prod/index.html.twig + web/prod/index.html.twig Color Depth @@ -1854,7 +1855,7 @@ Colorspace Colorspace - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Commande @@ -1910,7 +1911,7 @@ Configuration Konfiguration - web/prod/index.html.twig + web/prod/index.html.twig Confirm new email address @@ -1966,7 +1967,7 @@ Contains enthält - web/prod/index.html.twig + web/prod/index.html.twig Continuer ? @@ -2021,7 +2022,7 @@ Couleur de selection Farbauswahl - web/prod/index.html.twig + web/prod/index.html.twig Country @@ -2042,7 +2043,7 @@ Create index Index erstellen - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Creation date @@ -2131,7 +2132,7 @@ Current configuration contains some errors Die aktuelle Konfiguration enthält einige Fehler - admin/fields/templates.html.twig + admin/fields/templates.html.twig Current operations cannot be executed because the site is temporarily in maintenance mode. Wait a few minutes and try your request again @@ -2229,12 +2230,12 @@ Date Datum - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Date Added Hinzufügungsdatum - web/prod/index.html.twig + web/prod/index.html.twig Date Creation @@ -2244,7 +2245,7 @@ Date Updated Aktualisierungsdatum - web/prod/index.html.twig + web/prod/index.html.twig Date de connexion @@ -2273,7 +2274,7 @@ Date(s) from field(s) Datum vom Feld - web/prod/index.html.twig + web/prod/index.html.twig De @@ -2351,7 +2352,7 @@ Defined by admin Von Administrator festgelegt - web/prod/index.html.twig + web/prod/index.html.twig Defined in Apache configuration @@ -2371,8 +2372,8 @@ Delete Löschen - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/task-manager/templates.html.twig @@ -2529,7 +2530,7 @@ Display technical data Technische Informationen anzeigen - web/prod/index.html.twig + web/prod/index.html.twig Display thumbnails @@ -2539,7 +2540,7 @@ Do not display Nicht anzeigen - web/prod/index.html.twig + web/prod/index.html.twig Do not forget to restart the tasks scheduler @@ -2571,7 +2572,7 @@ Document Dokument - web/prod/index.html.twig + web/prod/index.html.twig Document Type Sharing @@ -2639,7 +2640,7 @@ Drop index Drop index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2747,19 +2748,19 @@ ElasticSearch index name ElasticSearch Index Name - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch server host ElasticSearch Server Host - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch service port ElasticSearch Service Schnittstelle - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -3010,7 +3011,7 @@ Equals gleicht - web/prod/index.html.twig + web/prod/index.html.twig Erreur @@ -3153,7 +3154,7 @@ Ex : Paris, bleu, montagne Ex : Berlin, blau, Gebirge - web/prod/index.html.twig + web/prod/index.html.twig Executables externes @@ -3303,7 +3304,7 @@ Filename Dateiname - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Fils disponibles @@ -3336,13 +3337,13 @@ Flash Flash - web/prod/index.html.twig + web/prod/index.html.twig web/common/technical_datas.html.twig FlashFired FlashFired - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Flatten layers @@ -3401,7 +3402,7 @@ FrameRate Framerate - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Frequence d'echantillonage @@ -3472,7 +3473,7 @@ Geo Search Lokalisierung - web/prod/index.html.twig + web/prod/index.html.twig Geonames server address @@ -3487,7 +3488,7 @@ Get setting form index Index Daten erhalten - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Gives the option to your application to communicate with Phraseanet. This webhook can be used to trigger some actions on your application side. @@ -3547,7 +3548,7 @@ Graphiste (preview au rollover) Grafiker (Voransicht mit Rollover) - web/prod/index.html.twig + web/prod/index.html.twig Great @@ -3646,7 +3647,7 @@ ISO ISO - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php ISO sensibility @@ -3656,7 +3657,7 @@ Iconographe (description au rollover) Bildredakteur (Beschreibung mit Rollover) - web/prod/index.html.twig + web/prod/index.html.twig Id @@ -3701,7 +3702,7 @@ Image Bild - web/prod/index.html.twig + web/prod/index.html.twig ImageMagick @@ -3727,7 +3728,7 @@ In the answer grid In einem Tooltip - web/prod/index.html.twig + web/prod/index.html.twig Include Business-fields in caption @@ -3951,7 +3952,7 @@ Language Sprache - web/prod/index.html.twig + web/prod/index.html.twig Last Name @@ -3981,7 +3982,7 @@ Last uploaded version zuletzte geladene Version - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Le bridge Dailymotion ne prend en charge que les videos @@ -4088,7 +4089,7 @@ Les termes apparaissent dans le(s) champs Die Begriffe befinden sich in Feld(er): - web/prod/index.html.twig + web/prod/index.html.twig Light Value @@ -4218,7 +4219,7 @@ Ma derniere question meine letzte Suchabfrage - web/prod/index.html.twig + web/prod/index.html.twig Mail line %line% is empty @@ -4324,7 +4325,7 @@ MimeType MimeType - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Minimum number of letters before truncation @@ -4375,7 +4376,7 @@ Mode de presentation Anzeigemodus - web/prod/index.html.twig + web/prod/index.html.twig Modele de donnees @@ -4688,7 +4689,8 @@ Not aggregated Nicht aggregiert - admin/fields/templates.html.twig + admin/search-engine/general-aggregation.html.twig + admin/fields/templates.html.twig Notification par email @@ -4754,13 +4756,13 @@ Number of replicas Anzahl von Nachbauten - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Number of shards Anzahl von Scherben - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -4798,7 +4800,7 @@ One of these conditions Eine von diesen Bedingungen - web/prod/index.html.twig + web/prod/index.html.twig Only %nbEditableDocuments% records can be modified. @@ -4861,7 +4863,7 @@ Orientation Ausrichtung - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Original name @@ -4901,7 +4903,7 @@ mobile/lightbox/index.html.twig mobile/lightbox/index.html.twig web/account/account.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig lightbox/IE6/validate.html.twig web/lightbox/validate.html.twig @@ -5141,10 +5143,10 @@ Preferences Einstellungen - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Prefix for notification emails @@ -5159,12 +5161,12 @@ Presentation de vignettes Miniaturansichten - web/prod/index.html.twig + web/prod/index.html.twig Presentation de vignettes de panier Vorstellung der Voransichten des Sammelkorbes - web/prod/index.html.twig + web/prod/index.html.twig Presets @@ -5217,7 +5219,7 @@ Publications Veröffentlichungen - web/prod/index.html.twig + web/prod/index.html.twig admin/publications/wrapper.html.twig web/admin/tree.html.twig web/common/menubar.html.twig @@ -5330,80 +5332,80 @@ Raccourcis claviers de la zone des paniers : Sammelkörbe und Funktionen Abkürzungen - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de editing : Fenster Abkürzungen bearbeiten - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de preview : Fenster Abkürzungen, Detailansicht - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de recherche : Hauptfenster Abkürzungen - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-a : tout selectionner ctrl-a : alles auswählen - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-e : editer la selection ctrl-e : Auswahl bearbeiten - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-p : imprimer la selection ctrl-p : drucken - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::espace : arreter/demarrer le diaporama Dia-Schau starten - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche bas : scroll vertical Abwärtspfeil: vertikal scrollen - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche droite : page suivante Rechtspfeil: nächste Seite - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en arriere Abwärtspfeil: letztes Dokument - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en avant Rechtspfeil: nächstes Dokument - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : page precedente Linkspfeil: vorherige Seite - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche haut : scroll vertical Pfeil oben: vertikal scrollen - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::tab/shift-tab se ballade dans les champs tab/shift-tab : Feld ändern - web/prod/index.html.twig + web/prod/index.html.twig Rappel : Il vous reste %number% jours pour valider %title% de %user% @@ -5425,7 +5427,7 @@ Zurücksetzen prod/Baskets/Reorder.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig Re-ordonner @@ -5528,7 +5530,7 @@ Rechercher dans un champ date im Feld "Datum" suchen - web/prod/index.html.twig + web/prod/index.html.twig Recommendations @@ -5619,7 +5621,7 @@ Relevance Relevanz - web/prod/index.html.twig + web/prod/index.html.twig Remember me @@ -5898,7 +5900,7 @@ Speichern actions/Feedback/list.html.twig web/account/change-password.html.twig - admin/search-engine/general-aggregation.html.twig + admin/search-engine/general-aggregation.html.twig admin/search-engine/elastic-search.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig @@ -5997,7 +5999,7 @@ Select a field Wählen Sie ein Feld aus - web/prod/index.html.twig + web/prod/index.html.twig Select a list on the left and edit it ! @@ -6032,7 +6034,7 @@ Selected base(s) Ausgewählte Datenbank(en) : - web/prod/index.html.twig + web/prod/index.html.twig Selected files @@ -6166,7 +6168,7 @@ Shutter speed Verschlusszeit - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6309,7 +6311,7 @@ Status des documents a rechercher Zustand der Dokumente - web/prod/index.html.twig + web/prod/index.html.twig Status edition @@ -6404,8 +6406,8 @@ Substitute Ersatz - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Substitution is not possible for this kind of record @@ -6729,7 +6731,7 @@ Theme Thema - web/prod/index.html.twig + web/prod/index.html.twig There is no one to validate orders, please contact an administrator @@ -6749,13 +6751,13 @@ Thesaurus Min score Thesaurus Hits (minimal) - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Thesaurus branch Thesaurus Sprung - admin/fields/templates.html.twig + admin/fields/templates.html.twig Thesaurus ou CTerms invalide @@ -6906,7 +6908,7 @@ Tout type Bildschirmtyp - web/prod/index.html.twig + web/prod/index.html.twig Toutes les publications @@ -6932,7 +6934,7 @@ Trier par Sortieren nach - web/prod/index.html.twig + web/prod/index.html.twig Try to extract embedded thumbnails @@ -6957,7 +6959,7 @@ Type de documents Dokumenttyp - web/prod/index.html.twig + web/prod/index.html.twig Type nombre @@ -7080,7 +7082,7 @@ Une question personnelle eine persönliche Frage - web/prod/index.html.twig + web/prod/index.html.twig Une selection @@ -7172,7 +7174,7 @@ Uploaded by : %username% von: %username% hochgeladen - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Use Google Chart API @@ -7192,7 +7194,7 @@ Use latest search settings on Production loading die letzte gestellte Frage in Prod benutzen - web/prod/index.html.twig + web/prod/index.html.twig Use my Phraseanet account @@ -7370,7 +7372,7 @@ Video Video - web/prod/index.html.twig + web/prod/index.html.twig Video Codec @@ -7380,7 +7382,7 @@ Video codec Video-Codec - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Videos @@ -7401,13 +7403,13 @@ Vocabulary type Wortschatz Typ - admin/fields/templates.html.twig + admin/fields/templates.html.twig Voici vos paniers Ihre Sammelkörbe mobile/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig Voici vos validations en cours @@ -7567,7 +7569,7 @@ Vous pouvez quitter la plupart des fenetres survolantes via la touche echap esc : Sie können die meiste Teile der Overlay Fenster schliessen - web/prod/index.html.twig + web/prod/index.html.twig Warning ! @@ -7668,8 +7670,8 @@ YYYY/MM/DD YYYY/MM/DD - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Yes @@ -7990,7 +7992,7 @@ action : bridge Bridge - web/prod/index.html.twig + web/prod/index.html.twig action : collection @@ -8017,7 +8019,7 @@ prod/results/record.html.twig prod/results/record.html.twig prod/preview/tools.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig @@ -8047,7 +8049,7 @@ prod/WorkZone/Story.html.twig prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig action : push @@ -8073,16 +8075,16 @@ action:: nouveau panier Neuer - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action:: nouveau reportage Neuer Bericht - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action::Valider @@ -9152,12 +9154,12 @@ boutton:: selectionner aucune base Keine - web/prod/index.html.twig + web/prod/index.html.twig boutton:: selectionner toutes les bases Alle - web/prod/index.html.twig + web/prod/index.html.twig boutton::ajouter @@ -9327,7 +9329,7 @@ boutton::rechercher suchen Controller/Prod/LanguageController.php - web/prod/index.html.twig + web/prod/index.html.twig boutton::refresh @@ -9370,7 +9372,7 @@ admin/collection/details.html.twig user/import/file.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/developers/application.html.twig @@ -9462,7 +9464,7 @@ prod/actions/edit_default.html.twig prod/actions/edit_default.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-text-dialog.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/import-dialog.html.twig @@ -9490,7 +9492,7 @@ user/import/view.html.twig admin/user/registrations.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/report/all_content.html.twig @@ -9588,7 +9590,7 @@ choisir wählen - web/prod/index.html.twig + web/prod/index.html.twig admin/databox/databox.html.twig admin/collection/create.html.twig @@ -9670,7 +9672,7 @@ created_on erstellt am - web/prod/index.html.twig + web/prod/index.html.twig dans %category% @@ -9941,6 +9943,17 @@ Änderungen wurden hergestellt admin/databox/databox.html.twig + + help::help-search: OR + help::help-search: OR + prod/results/help.html.twig + + + help::help-search: relaunch search without filter + help::help-search: relaunch search without filter + prod/results/help.html.twig + web/prod/index.html.twig + help::help-section-bullet: check-spelling Vergewissern Sie sich, dass kein Schreibfehler oder Tippfehler vorliegt @@ -10016,42 +10029,47 @@ index::advance_search: disable-facet Facetten mit nur einem Ergebnis ausblenden (experimentell) - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet Einstellungen für Facetten - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-order Reihenfolge der Facettenanzeige - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-tech-order Standard Reihenfolge - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-values-order Reihenfolge der Facettenwerte - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: hidden-facet-values-order Versteckte Facetten - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: order-by-hits Nach Hits sortieren - web/prod/index.html.twig + web/prod/index.html.twig + + + index::advance_search: order-by-hits-asc + index::advance_search: order-by-hits-asc + web/prod/index.html.twig index:advanced-preferences:: use truncation Trunkierung aktivieren - web/prod/index.html.twig + web/prod/index.html.twig invite:: Redirection vers la zone d'authentification, cliquez sur OK pour continuer ou annulez @@ -10083,6 +10101,16 @@ Die Dienstleistung wird in einige Minuten wieder verfügbar sein. actions/Bridge/deactivated.html.twig + + lightbox::See_less_feedback + lightbox::See_less_feedback + web/lightbox/index.html.twig + + + lightbox::See_more_feedback + lightbox::See_more_feedback + web/lightbox/index.html.twig + lightbox::list lightbox::list @@ -10095,6 +10123,16 @@ web/lightbox/agreement_box.html.twig web/lightbox/validate.html.twig + + lightbox::see_less_basket + lightbox::see_less_basket + web/lightbox/index.html.twig + + + lightbox::see_more_basket + lightbox::see_more_basket + web/lightbox/index.html.twig + login:: Changer mon adresse email meine E-Mail Adresse ändern @@ -10664,7 +10702,7 @@ phraseanet:: Preferences Einstellungen - web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: Un email vient de vous etre envoye @@ -10813,17 +10851,17 @@ phraseanet:: tri par date nach Datum sortieren - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-topics-dialog.html.twig phraseanet:: tri par nom alphabetische Sortierung - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: user @@ -11008,12 +11046,12 @@ phraseanet::time:: a zu - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::time:: de von - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: audios @@ -11024,7 +11062,7 @@ phraseanet::type:: documents Dokumente web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: images @@ -11034,7 +11072,7 @@ phraseanet::type:: reportages Berichte - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: videos @@ -11059,17 +11097,17 @@ preview:: Description Beschreibung - web/prod/index.html.twig + web/prod/index.html.twig preview:: Historique Historie - web/prod/index.html.twig + web/prod/index.html.twig preview:: Popularite Beliebtheit - web/prod/index.html.twig + web/prod/index.html.twig preview:: arreter le diaporama @@ -11171,6 +11209,11 @@ Mosaikansicht prod/actions/printer_default.html.twig + + print_feedback:: Document generated on : + print_feedback:: Document generated on : + Out/Module/PDFRecords.php + print_feedback:: Feedback active Feedback ist aktiviert @@ -11181,6 +11224,21 @@ Feedback ist abgelaufen Out/Module/PDFRecords.php + + print_feedback:: Feedback expiring on : + print_feedback:: Feedback expiring on : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated by : + print_feedback:: Feedback initiated by : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated on : + print_feedback:: Feedback initiated on : + Out/Module/PDFRecords.php + print_feedback:: Feedback on basket %name% Feedback auf Sammelkorb %name% @@ -11268,12 +11326,12 @@ prod::advancesearch:tooltips:datefield_restriction_explanation Suchergebnisse auf Datum beschränken - web/prod/index.html.twig + web/prod/index.html.twig prod::advancesearch:tooltips:field_restriction_explanation Suchen Sie den Inhalt der Felder - web/prod/index.html.twig + web/prod/index.html.twig prod::collection deplacer egalement les documents rattaches a ce(s) regroupement(s) @@ -11293,12 +11351,12 @@ 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 @@ -11393,17 +11451,17 @@ prod::facet:base_label Datenbanken - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label Kollektionen - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label Dokumenttyp - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::feedback:feedback_set_title @@ -11616,6 +11674,11 @@ Auswahl entfernen prod/actions/Push.html.twig + + prod:workzone:facetstab:search_and_facets_sort_options + prod:workzone:facetstab:search_and_facets_sort_options + web/prod/index.html.twig + public öffentlich @@ -11651,8 +11714,8 @@ publication::Voici votre fil RSS personnel. Il vous permettra d'etre tenu au courrant des publications. Hier finden Sie Ihr eigenes RSS Feed. Dank des RSS werden Sie über neue Veröffentlichungen automatisch informiert - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications:: s'abonner aux publications @@ -11663,14 +11726,14 @@ publications::Ne le partagez pas, il est strictement confidentiel Dieses RSS nicht weiterleiten - es ist vertraulich - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications::votre rss personnel Ihr eigenes RSS - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php push::mail:: Rapport de validation de %user% pour %title% @@ -11690,12 +11753,12 @@ raccourci :: a propos des raccourcis claviers Über Abkürzungen - web/prod/index.html.twig + web/prod/index.html.twig raccourcis :: ne plus montrer cette aide Diese Hilfe nicht mehr anzeigen - web/prod/index.html.twig + web/prod/index.html.twig rafraichir @@ -11764,17 +11827,17 @@ reponses:: images par pages : Suchergebnisse nach Seite - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode liste Liste - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode vignettes Miniaturansichten - web/prod/index.html.twig + web/prod/index.html.twig reponses:: partager @@ -11796,7 +11859,7 @@ reponses:: taille des images : Miniaturansichtengrösse - web/prod/index.html.twig + web/prod/index.html.twig reponses::document sans titre @@ -13180,7 +13243,7 @@ updated_on aktualisiert am - web/prod/index.html.twig + web/prod/index.html.twig upload:: Destination (collection) : @@ -13193,7 +13256,7 @@ Status prod/upload/upload.html.twig prod/upload/upload-flash.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig users rights have been reseted diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 18bf3237ba..014648af36 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,14 +1,14 @@ - + - +
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.
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -118,8 +118,8 @@ %basket_length% documents %basket_length% document(s) mobile/lightbox/validate.html.twig - web/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig + web/lightbox/index.html.twig
%countable% documents can not be modified. @@ -278,7 +278,7 @@ %record_count% records match the unique identifier : %record_count% records match the unique identifier: - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig %s field has been created with success. @@ -383,17 +383,17 @@ (validation) a envoyer Feedback request to send - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) envoyee Feedback request sent. - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) session terminee Feedback session ended. - web/lightbox/index.html.twig + web/lightbox/index.html.twig *Phraseanet Navigator* is a smartphone application that allow user to connect on this instance @@ -489,7 +489,7 @@ A record matches the unique identifier : A record matches the unique identifier: - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig A required field is missing or has an empty value @@ -627,7 +627,7 @@ Action Forbidden : You are not the publisher Forbidden: You are not the publisher - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php Actions @@ -642,7 +642,7 @@ Activate highlight Activate highlight on full text (experimental). Impact the time performance of search. - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -676,8 +676,8 @@ Add Add prod/actions/Push.html.twig - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig prod/User/Add.html.twig @@ -761,8 +761,8 @@ Advanced Search Advanced search - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Advanced mode @@ -777,37 +777,42 @@ Affichage Display - web/prod/index.html.twig + web/prod/index.html.twig Affichage au demarrage Display On startup - web/prod/index.html.twig + web/prod/index.html.twig Afficher la fiche descriptive Show Caption - web/prod/index.html.twig + web/prod/index.html.twig Afficher le titre Show Title - web/prod/index.html.twig + web/prod/index.html.twig Afficher les status Show Status - web/prod/index.html.twig + web/prod/index.html.twig Afficher une icone Display an Icon - web/prod/index.html.twig + web/prod/index.html.twig After metadata After captions - web/prod/index.html.twig + web/prod/index.html.twig + + + Aggregated + Aggregated + admin/search-engine/general-aggregation.html.twig Aggregation @@ -817,7 +822,7 @@ Aide Help - web/prod/index.html.twig + web/prod/index.html.twig Aide sur les expressions regulieres @@ -869,12 +874,7 @@ All these conditions All these conditions - web/prod/index.html.twig - - - All values - All values - admin/fields/templates.html.twig + web/prod/index.html.twig Aller a @@ -939,14 +939,15 @@ Alphabetic asc Alphabetic asc - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Alphabetic desc Alphabetic desc - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Also delete records that rely on groupings. @@ -1033,7 +1034,7 @@ An error occurred Order/Controller/ProdOrderController.php Controller/Admin/DataboxController.php - Controller/Admin/SearchEngineController.php + Controller/Admin/SearchEngineController.php Controller/Admin/CollectionController.php Controller/Prod/BasketController.php Controller/Api/V3Controller.php @@ -1069,7 +1070,7 @@ Aperture Aperture - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1266,7 +1267,7 @@ Audio Audio - web/prod/index.html.twig + web/prod/index.html.twig Audio Birate @@ -1282,7 +1283,7 @@ Audio Samplerate Audio Samplerate - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Audio channel @@ -1292,7 +1293,7 @@ Audio codec Audio codec - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php AudioSamplerate @@ -1452,9 +1453,9 @@ Dabase succesfully emptied Controller/Admin/DataboxController.php - + Basket - Basket + Basket prod/WorkZone/Macros.html.twig @@ -1525,9 +1526,9 @@ Browse Baskets Browse baskets - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Browser @@ -1555,7 +1556,7 @@ By field By field - web/prod/index.html.twig + web/prod/index.html.twig CHAMPS @@ -1565,7 +1566,7 @@ Camera Model Camera model - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1824,7 +1825,7 @@ Collection Collection prod/Story/Create.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/databox/details.html.twig @@ -1841,7 +1842,7 @@ Collection order Collection order - web/prod/index.html.twig + web/prod/index.html.twig Color Depth @@ -1856,7 +1857,7 @@ Colorspace Colorspace - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Commande @@ -1912,7 +1913,7 @@ Configuration Configuration - web/prod/index.html.twig + web/prod/index.html.twig Confirm new email address @@ -1968,7 +1969,7 @@ Contains Contains - web/prod/index.html.twig + web/prod/index.html.twig Continuer ? @@ -2023,7 +2024,7 @@ Couleur de selection Selection color - web/prod/index.html.twig + web/prod/index.html.twig Country @@ -2044,7 +2045,7 @@ Create index Create index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Creation date @@ -2134,7 +2135,7 @@ errors Current configuration contains some errors - admin/fields/templates.html.twig + admin/fields/templates.html.twig Current operations cannot be executed because the site is temporarily in maintenance mode. Wait a few minutes and try your request again @@ -2232,12 +2233,12 @@ Date Date - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Date Added Date added - web/prod/index.html.twig + web/prod/index.html.twig Date Creation @@ -2247,7 +2248,7 @@ Date Updated Date Updated - web/prod/index.html.twig + web/prod/index.html.twig Date de connexion @@ -2276,7 +2277,7 @@ Date(s) from field(s) Date(s) from field(s) - web/prod/index.html.twig + web/prod/index.html.twig De @@ -2354,7 +2355,7 @@ Defined by admin Defined by admin - web/prod/index.html.twig + web/prod/index.html.twig Defined in Apache configuration @@ -2374,8 +2375,8 @@ Delete Delete - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/task-manager/templates.html.twig @@ -2532,7 +2533,7 @@ Display technical data Display technical data - web/prod/index.html.twig + web/prod/index.html.twig Display thumbnails @@ -2542,7 +2543,7 @@ Do not display Do not display - web/prod/index.html.twig + web/prod/index.html.twig Do not forget to restart the tasks scheduler @@ -2574,7 +2575,7 @@ Document Document - web/prod/index.html.twig + web/prod/index.html.twig Document Type Sharing @@ -2642,7 +2643,7 @@ Drop index Drop index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2750,19 +2751,19 @@ ElasticSearch index name ElasticSearch index name - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch server host ElasticSearch server host - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch service port ElasticSearch service port - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -3013,7 +3014,7 @@ Equals Equals - web/prod/index.html.twig + web/prod/index.html.twig Erreur @@ -3156,7 +3157,7 @@ Ex : Paris, bleu, montagne Ex : Paris, blue, mountain - web/prod/index.html.twig + web/prod/index.html.twig Executables externes @@ -3306,7 +3307,7 @@ Filename File Name - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Fils disponibles @@ -3339,13 +3340,13 @@ Flash Flash - web/prod/index.html.twig + web/prod/index.html.twig web/common/technical_datas.html.twig FlashFired FlashFired - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Flatten layers @@ -3404,7 +3405,7 @@ FrameRate FrameRate - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Frequence d'echantillonage @@ -3475,7 +3476,7 @@ Geo Search Geo Search - web/prod/index.html.twig + web/prod/index.html.twig Geonames server address @@ -3490,7 +3491,7 @@ Get setting form index Get setting form index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Gives the option to your application to communicate with Phraseanet. This webhook can be used to trigger some actions on your application side. @@ -3550,7 +3551,7 @@ Graphiste (preview au rollover) Graphist (preview on thumbnail rollover) - web/prod/index.html.twig + web/prod/index.html.twig Great @@ -3649,7 +3650,7 @@ ISO ISO - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php ISO sensibility @@ -3659,7 +3660,7 @@ Iconographe (description au rollover) Iconograph (caption on thumbnail rollover) - web/prod/index.html.twig + web/prod/index.html.twig Id @@ -3704,7 +3705,7 @@ Image Image - web/prod/index.html.twig + web/prod/index.html.twig ImageMagick @@ -3730,7 +3731,7 @@ In the answer grid In the answer grid - web/prod/index.html.twig + web/prod/index.html.twig Include Business-fields in caption @@ -3954,7 +3955,7 @@ Language Language - web/prod/index.html.twig + web/prod/index.html.twig Last Name @@ -3984,7 +3985,7 @@ Last uploaded version Last uploaded version - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Le bridge Dailymotion ne prend en charge que les videos @@ -4091,7 +4092,7 @@ Les termes apparaissent dans le(s) champs Word(s) from field(s) - web/prod/index.html.twig + web/prod/index.html.twig Light Value @@ -4221,7 +4222,7 @@ Ma derniere question My last query - web/prod/index.html.twig + web/prod/index.html.twig Mail line %line% is empty @@ -4327,7 +4328,7 @@ MimeType MimeType - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Minimum number of letters before truncation @@ -4378,7 +4379,7 @@ Mode de presentation Display mode - web/prod/index.html.twig + web/prod/index.html.twig Modele de donnees @@ -4691,7 +4692,8 @@ Not aggregated Not aggregated - admin/fields/templates.html.twig + admin/search-engine/general-aggregation.html.twig + admin/fields/templates.html.twig Notification par email @@ -4757,13 +4759,13 @@ Number of replicas Number of replicas - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Number of shards Number of shards - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -4801,7 +4803,7 @@ One of these conditions One of these conditions - web/prod/index.html.twig + web/prod/index.html.twig Only %nbEditableDocuments% records can be modified. @@ -4864,7 +4866,7 @@ Orientation Orientation - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Original name @@ -4904,7 +4906,7 @@ mobile/lightbox/index.html.twig mobile/lightbox/index.html.twig web/account/account.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig lightbox/IE6/validate.html.twig web/lightbox/validate.html.twig @@ -5144,10 +5146,10 @@ Preferences Settings - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Prefix for notification emails @@ -5162,12 +5164,12 @@ Presentation de vignettes Thumbnails - web/prod/index.html.twig + web/prod/index.html.twig Presentation de vignettes de panier Basket display setup - web/prod/index.html.twig + web/prod/index.html.twig Presets @@ -5220,7 +5222,7 @@ Publications Publications - web/prod/index.html.twig + web/prod/index.html.twig admin/publications/wrapper.html.twig web/admin/tree.html.twig web/common/menubar.html.twig @@ -5333,80 +5335,80 @@ Raccourcis claviers de la zone des paniers : - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de editing : Edit window shortcuts - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de preview : Detailed View window shortcut - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de recherche : Main windows shortcuts - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-a : tout selectionner ctrl-a : select all - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-e : editer la selection ctrl-e : edit selection - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-p : imprimer la selection ctrl-p : print selected - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::espace : arreter/demarrer le diaporama space : start/stop diaporama - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche bas : scroll vertical down arrow : vertical scroll - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche droite : page suivante right arrow : next page - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en arriere left arrow : previous document - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en avant right arrow : next document - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : page precedente left arrow : previous page - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche haut : scroll vertical up arrow : vertical scroll - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::tab/shift-tab se ballade dans les champs tab/shift-tab : change field - web/prod/index.html.twig + web/prod/index.html.twig Rappel : Il vous reste %number% jours pour valider %title% de %user% @@ -5428,7 +5430,7 @@ Reset prod/Baskets/Reorder.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig Re-ordonner @@ -5531,7 +5533,7 @@ Rechercher dans un champ date In a date field - web/prod/index.html.twig + web/prod/index.html.twig Recommendations @@ -5622,7 +5624,7 @@ Relevance Relevance - web/prod/index.html.twig + web/prod/index.html.twig Remember me @@ -5901,7 +5903,7 @@ Save actions/Feedback/list.html.twig web/account/change-password.html.twig - admin/search-engine/general-aggregation.html.twig + admin/search-engine/general-aggregation.html.twig admin/search-engine/elastic-search.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig @@ -6000,7 +6002,7 @@ Select a field Select a field - web/prod/index.html.twig + web/prod/index.html.twig Select a list on the left and edit it ! @@ -6035,7 +6037,7 @@ Selected base(s) Selected database(s) : - web/prod/index.html.twig + web/prod/index.html.twig Selected files @@ -6169,7 +6171,7 @@ Shutter speed Shutter speed - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6312,7 +6314,7 @@ Status des documents a rechercher Document status - web/prod/index.html.twig + web/prod/index.html.twig Status edition @@ -6407,8 +6409,8 @@ Substitute Substitute - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Substitution is not possible for this kind of record @@ -6467,9 +6469,9 @@ Suggested values admin/collection/suggested_value.html.twig - + Suppr - Suppr + Suppr Controller/Prod/LanguageController.php @@ -6732,7 +6734,7 @@ Theme Skin - web/prod/index.html.twig + web/prod/index.html.twig There is no one to validate orders, please contact an administrator @@ -6752,13 +6754,13 @@ Thesaurus Min score Thesaurus Min score - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Thesaurus branch Thesaurus branch - admin/fields/templates.html.twig + admin/fields/templates.html.twig Thesaurus ou CTerms invalide @@ -6909,7 +6911,7 @@ Tout type All types - web/prod/index.html.twig + web/prod/index.html.twig Toutes les publications @@ -6935,7 +6937,7 @@ Trier par Sort by - web/prod/index.html.twig + web/prod/index.html.twig Try to extract embedded thumbnails @@ -6960,7 +6962,7 @@ Type de documents Document Type - web/prod/index.html.twig + web/prod/index.html.twig Type nombre @@ -7083,7 +7085,7 @@ Une question personnelle The query - web/prod/index.html.twig + web/prod/index.html.twig Une selection @@ -7175,7 +7177,7 @@ Uploaded by : %username% Uploaded by: %username% - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Use Google Chart API @@ -7195,7 +7197,7 @@ Use latest search settings on Production loading Use latest search settings on Production when loading - web/prod/index.html.twig + web/prod/index.html.twig Use my Phraseanet account @@ -7373,7 +7375,7 @@ Video Video - web/prod/index.html.twig + web/prod/index.html.twig Video Codec @@ -7383,7 +7385,7 @@ Video codec Video codec - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Videos @@ -7404,13 +7406,13 @@ Vocabulary type Vocabulary type - admin/fields/templates.html.twig + admin/fields/templates.html.twig Voici vos paniers Your Basket(s) mobile/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig Voici vos validations en cours @@ -7570,7 +7572,7 @@ Vous pouvez quitter la plupart des fenetres survolantes via la touche echap esc : close most of overlayed windows - web/prod/index.html.twig + web/prod/index.html.twig Warning ! @@ -7671,8 +7673,8 @@ YYYY/MM/DD YYYY/MM/DD - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Yes @@ -7993,7 +7995,7 @@ action : bridge Bridge - web/prod/index.html.twig + web/prod/index.html.twig action : collection @@ -8020,7 +8022,7 @@ prod/results/record.html.twig prod/results/record.html.twig prod/preview/tools.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig @@ -8050,7 +8052,7 @@ prod/WorkZone/Story.html.twig prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig action : push @@ -8076,16 +8078,16 @@ action:: nouveau panier New basket - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action:: nouveau reportage New Story - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action::Valider @@ -9155,12 +9157,12 @@ boutton:: selectionner aucune base None - web/prod/index.html.twig + web/prod/index.html.twig boutton:: selectionner toutes les bases All - web/prod/index.html.twig + web/prod/index.html.twig boutton::ajouter @@ -9330,7 +9332,7 @@ boutton::rechercher Search Controller/Prod/LanguageController.php - web/prod/index.html.twig + web/prod/index.html.twig boutton::refresh @@ -9373,7 +9375,7 @@ admin/collection/details.html.twig user/import/file.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/developers/application.html.twig @@ -9465,7 +9467,7 @@ prod/actions/edit_default.html.twig prod/actions/edit_default.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-text-dialog.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/import-dialog.html.twig @@ -9493,7 +9495,7 @@ user/import/view.html.twig admin/user/registrations.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/report/all_content.html.twig @@ -9591,7 +9593,7 @@ choisir Select - web/prod/index.html.twig + web/prod/index.html.twig admin/databox/databox.html.twig admin/collection/create.html.twig @@ -9655,9 +9657,9 @@ Presets web/admin/subdefs.html.twig - + create_subdef_modal_preview_mediatype - Preview Media Type (mime type) : + Preview Media Type (mime type) : web/admin/subdefs.html.twig @@ -9673,7 +9675,7 @@ created_on created on - web/prod/index.html.twig + web/prod/index.html.twig dans %category% @@ -9944,6 +9946,17 @@ Modifications done admin/databox/databox.html.twig + + help::help-search: OR + Or + prod/results/help.html.twig + + + help::help-search: relaunch search without filter + Remove all filters and relaunch search + prod/results/help.html.twig + web/prod/index.html.twig + help::help-section-bullet: check-spelling Check that there are no misspellings or typing errors. @@ -10019,42 +10032,47 @@ index::advance_search: disable-facet Hide facets with 1 result (experimental) - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet Facets Preferences - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-order Facets order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-tech-order Default order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-values-order Facets values order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: hidden-facet-values-order Hidden Facets - web/prod/index.html.twig + web/prod/index.html.twig - + index::advance_search: order-by-hits - Order by hits - web/prod/index.html.twig + By Hits + web/prod/index.html.twig + + + index::advance_search: order-by-hits-asc + By Hits asc + web/prod/index.html.twig index:advanced-preferences:: use truncation use truncation - web/prod/index.html.twig + web/prod/index.html.twig invite:: Redirection vers la zone d'authentification, cliquez sur OK pour continuer ou annulez @@ -10076,9 +10094,9 @@ June classes/module/report.php - + language - Language + Current Language login/include/language-block.html.twig @@ -10086,6 +10104,16 @@ Service will be available again in a few minutes actions/Bridge/deactivated.html.twig + + lightbox::See_less_feedback + See less feedback + web/lightbox/index.html.twig + + + lightbox::See_more_feedback + See more feedback + web/lightbox/index.html.twig + lightbox::list Summary @@ -10098,6 +10126,16 @@ web/lightbox/agreement_box.html.twig web/lightbox/validate.html.twig + + lightbox::see_less_basket + See less baskets + web/lightbox/index.html.twig + + + lightbox::see_more_basket + See more baskets + web/lightbox/index.html.twig + login:: Changer mon adresse email Change my e-mail @@ -10667,7 +10705,7 @@ phraseanet:: Preferences Preferences - web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: Un email vient de vous etre envoye @@ -10700,9 +10738,9 @@ Feedback report with caption prod/actions/printer_default.html.twig - + phraseanet:: baskets - phraseanet:: baskets + Workzone tab web/prod/tab_headers.html.twig @@ -10816,17 +10854,17 @@ phraseanet:: tri par date Sort by date - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-topics-dialog.html.twig phraseanet:: tri par nom Sort by name - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: user @@ -11011,12 +11049,12 @@ phraseanet::time:: a To - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::time:: de From - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: audios @@ -11027,7 +11065,7 @@ phraseanet::type:: documents Documents web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: images @@ -11037,7 +11075,7 @@ phraseanet::type:: reportages Stories - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: videos @@ -11062,17 +11100,17 @@ preview:: Description Caption - web/prod/index.html.twig + web/prod/index.html.twig preview:: Historique Timeline - web/prod/index.html.twig + web/prod/index.html.twig preview:: Popularite Statistics - web/prod/index.html.twig + web/prod/index.html.twig preview:: arreter le diaporama @@ -11134,9 +11172,9 @@ Feedback report with caption prod/actions/printer_default.html.twig - + print:: basket feedback only - Feedback report + Feedback report prod/actions/printer_default.html.twig @@ -11174,19 +11212,39 @@ Thumbnails prod/actions/printer_default.html.twig - + + print_feedback:: Document generated on : + Generated on : + Out/Module/PDFRecords.php + + print_feedback:: Feedback active - Feedback session open + Feedback session still opened Out/Module/PDFRecords.php - + print_feedback:: Feedback expired - Feedback session close + Feedback session closed Out/Module/PDFRecords.php + + print_feedback:: Feedback expiring on : + Feedback expiring on : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated by : + Feedback initiated by : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated on : + Feedback initiated on : + Out/Module/PDFRecords.php + print_feedback:: Feedback on basket %name% - Feedback report on basket %name% + Feedback report on basket : %name% Out/Module/PDFRecords.php @@ -11209,14 +11267,14 @@ Approvals : Out/Module/PDFRecords.php - + print_feedback:: base name: - print_feedback:: base name: + Base Name : Out/Module/PDFRecords.php - + print_feedback:: document Uuid: - Document Unique Id : + Document Unique Id : Out/Module/PDFRecords.php @@ -11226,7 +11284,7 @@ print_feedback:: originale filename: - Originale filename : + Original file name : Out/Module/PDFRecords.php @@ -11234,9 +11292,9 @@ Record Id : Out/Module/PDFRecords.php - + print_feedback:: record title: - Record title : + Record Title : Out/Module/PDFRecords.php @@ -11271,12 +11329,12 @@ prod::advancesearch:tooltips:datefield_restriction_explanation Narrow the search results to dates - web/prod/index.html.twig + web/prod/index.html.twig prod::advancesearch:tooltips:field_restriction_explanation prod::advancesearch:tooltips:field_restriction_explanation - web/prod/index.html.twig + web/prod/index.html.twig prod::collection deplacer egalement les documents rattaches a ce(s) regroupement(s) @@ -11296,12 +11354,12 @@ 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 @@ -11396,26 +11454,26 @@ prod::facet:base_label Base - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label Collection - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label Document type - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php - + prod::feedback:feedback_set_title - prod::feedback:feedback_set_title + Feedback Title : prod/templates/push.html.twig - + prod::push:push_set_title - prod::push:push_set_title + Name of Push Basket prod/templates/push.html.twig @@ -11579,9 +11637,9 @@ No overlap for chapters Controller/Prod/LanguageController.php - + prod:edit: only a media of type video can be edited - Only video type record can be edited + Only video type record can be edited Controller/Prod/LanguageController.php @@ -11602,26 +11660,31 @@ Use grip for resize or move the area. It is possible to place several search areas Controller/Prod/LanguageController.php - + prod:mapboxgl: title map dialog - Geoloc Search + Geoloc Search Controller/Prod/LanguageController.php - + prod:mapboxgl: title notice - Geoloc Search + Help Controller/Prod/LanguageController.php - + prod:push: create new user - Create new user + Create new user Controller/Prod/LanguageController.php - + prod:push: delete selection - Delete selection + Delete Selection prod/actions/Push.html.twig + + prod:workzone:facetstab:search_and_facets_sort_options + Option + web/prod/index.html.twig + public Public @@ -11657,8 +11720,8 @@ It is possible to place several search areas publication::Voici votre fil RSS personnel. Il vous permettra d'etre tenu au courrant des publications. This is your personnal rss flow, it will inform you about publications - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications:: s'abonner aux publications @@ -11669,14 +11732,14 @@ It is possible to place several search areas publications::Ne le partagez pas, il est strictement confidentiel Don't share it, it's yours only - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications::votre rss personnel Your own rss - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php push::mail:: Rapport de validation de %user% pour %title% @@ -11696,12 +11759,12 @@ It is possible to place several search areas raccourci :: a propos des raccourcis claviers About shortcuts - web/prod/index.html.twig + web/prod/index.html.twig raccourcis :: ne plus montrer cette aide Do not display this help anymore - web/prod/index.html.twig + web/prod/index.html.twig rafraichir @@ -11770,17 +11833,17 @@ It is possible to place several search areas reponses:: images par pages : Results per page - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode liste List - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode vignettes Thumbnails - web/prod/index.html.twig + web/prod/index.html.twig reponses:: partager @@ -11802,7 +11865,7 @@ It is possible to place several search areas reponses:: taille des images : Thumbnails size - web/prod/index.html.twig + web/prod/index.html.twig reponses::document sans titre @@ -12351,14 +12414,14 @@ It is possible to place several search areas Show in language web/admin/setup.html.twig - + setup::custom-link:link-url - Destination URL + Destination URL web/admin/setup.html.twig - + setup::custom-link:location - Select a position + Select a position Form/Configuration/CustomLinkFormType.php @@ -13186,7 +13249,7 @@ It is possible to place several search areas updated_on updated on - web/prod/index.html.twig + web/prod/index.html.twig upload:: Destination (collection) : @@ -13199,7 +13262,7 @@ It is possible to place several search areas Apply status prod/upload/upload.html.twig prod/upload/upload-flash.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig users rights have been reseted @@ -13271,9 +13334,9 @@ It is possible to place several search areas Video Chapter Editing actions/Tools/videoEditor.html.twig - + video tool - Thumbnail definition + Thumbnail Tools actions/Tools/videoEditor.html.twig diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index 349789d5e8..b26706cfd7 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,14 +1,14 @@ - + - +
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.
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -118,8 +118,8 @@ %basket_length% documents %basket_length% documents mobile/lightbox/validate.html.twig - web/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig + web/lightbox/index.html.twig
%countable% documents can not be modified. @@ -278,7 +278,7 @@ %record_count% records match the unique identifier : %record_count% enregistrements correspondent à des identifiants uniques existants: - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig %s field has been created with success. @@ -383,17 +383,17 @@ (validation) a envoyer Rapport de validation à envoyer - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) envoyee Rapport de validation envoyé - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) session terminee Session terminée - web/lightbox/index.html.twig + web/lightbox/index.html.twig *Phraseanet Navigator* is a smartphone application that allow user to connect on this instance @@ -489,7 +489,7 @@ A record matches the unique identifier : Un enregistrement correspond à un identifiant unique existant : - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig A required field is missing or has an empty value @@ -627,7 +627,7 @@ Action Forbidden : You are not the publisher Action non autorisée: Vous n'êtes pas la personne qui a publié - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php Actions @@ -642,7 +642,7 @@ Activate highlight Activer le surlignage (beta). Impacte les performances de recherche - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -676,8 +676,8 @@ Add Ajouter prod/actions/Push.html.twig - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig prod/User/Add.html.twig @@ -696,9 +696,9 @@ Ajouter un nouveau champ admin/fields/templates.html.twig - + Add a position - Ajouter une position + Ajouter une position Controller/Prod/LanguageController.php @@ -760,8 +760,8 @@ Advanced Search Recherche avancée - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Advanced mode @@ -776,37 +776,42 @@ Affichage Affichage - web/prod/index.html.twig + web/prod/index.html.twig Affichage au demarrage Afficher au démarrage - web/prod/index.html.twig + web/prod/index.html.twig Afficher la fiche descriptive Afficher la notice - web/prod/index.html.twig + web/prod/index.html.twig Afficher le titre Afficher le titre - web/prod/index.html.twig + web/prod/index.html.twig Afficher les status Afficher les Status - web/prod/index.html.twig + web/prod/index.html.twig Afficher une icone Afficher une icône - web/prod/index.html.twig + web/prod/index.html.twig After metadata Dans l'infobulle de description, après les métadonnées - web/prod/index.html.twig + web/prod/index.html.twig + + + Aggregated + Agrégé + admin/search-engine/general-aggregation.html.twig Aggregation @@ -816,7 +821,7 @@ Aide Aide - web/prod/index.html.twig + web/prod/index.html.twig Aide sur les expressions regulieres @@ -868,12 +873,7 @@ All these conditions Toutes les conditions - web/prod/index.html.twig - - - All values - Toutes les valeurs - admin/fields/templates.html.twig + web/prod/index.html.twig Aller a @@ -938,14 +938,15 @@ Alphabetic asc Alphabétique asc - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Alphabetic desc Alphabétique desc - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Also delete records that rely on groupings. @@ -1032,7 +1033,7 @@ Une erreur est survenue Order/Controller/ProdOrderController.php Controller/Admin/DataboxController.php - Controller/Admin/SearchEngineController.php + Controller/Admin/SearchEngineController.php Controller/Admin/CollectionController.php Controller/Prod/BasketController.php Controller/Api/V3Controller.php @@ -1068,7 +1069,7 @@ Aperture Ouverture - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1265,7 +1266,7 @@ Audio Audio - web/prod/index.html.twig + web/prod/index.html.twig Audio Birate @@ -1281,7 +1282,7 @@ Audio Samplerate Fréquence d'échantillonnage - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Audio channel @@ -1291,7 +1292,7 @@ Audio codec Encodeur Audio - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php AudioSamplerate @@ -1451,9 +1452,9 @@ Base vidée avec succès Controller/Admin/DataboxController.php - + Basket - Basket + Basket prod/WorkZone/Macros.html.twig @@ -1524,9 +1525,9 @@ Browse Baskets Parcourir les paniers - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Browser @@ -1554,7 +1555,7 @@ By field Par champ - web/prod/index.html.twig + web/prod/index.html.twig CHAMPS @@ -1564,7 +1565,7 @@ Camera Model Type d'appareil numérique - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1822,7 +1823,7 @@ Collection Collection prod/Story/Create.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/databox/details.html.twig @@ -1839,7 +1840,7 @@ Collection order Ordre des collections - web/prod/index.html.twig + web/prod/index.html.twig Color Depth @@ -1854,7 +1855,7 @@ Colorspace Espace colorimétrique - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Commande @@ -1910,7 +1911,7 @@ Configuration Configuration - web/prod/index.html.twig + web/prod/index.html.twig Confirm new email address @@ -1966,7 +1967,7 @@ Contains Contient - web/prod/index.html.twig + web/prod/index.html.twig Continuer ? @@ -2021,7 +2022,7 @@ Couleur de selection Couleur de sélection - web/prod/index.html.twig + web/prod/index.html.twig Country @@ -2042,7 +2043,7 @@ Create index Créer les index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Creation date @@ -2131,7 +2132,7 @@ Current configuration contains some errors La configuration contient des erreurs - admin/fields/templates.html.twig + admin/fields/templates.html.twig Current operations cannot be executed because the site is temporarily in maintenance mode. Wait a few minutes and try your request again @@ -2229,12 +2230,12 @@ Date Date - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Date Added Date d'ajout - web/prod/index.html.twig + web/prod/index.html.twig Date Creation @@ -2244,7 +2245,7 @@ Date Updated Date de modification - web/prod/index.html.twig + web/prod/index.html.twig Date de connexion @@ -2273,7 +2274,7 @@ Date(s) from field(s) Date(s) - web/prod/index.html.twig + web/prod/index.html.twig De @@ -2351,7 +2352,7 @@ Defined by admin Défini par l'admin - web/prod/index.html.twig + web/prod/index.html.twig Defined in Apache configuration @@ -2371,8 +2372,8 @@ Delete Supprimer - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/task-manager/templates.html.twig @@ -2473,9 +2474,9 @@ web/report/report_layout_child.html.twig web/report/form_date_and_base.html.twig - + Design of personalization logo section - Design de la section de personnalisation du logo + Logo Form/Configuration/GeneralFormType.php @@ -2529,7 +2530,7 @@ Display technical data Affichage des informations techniques - web/prod/index.html.twig + web/prod/index.html.twig Display thumbnails @@ -2539,7 +2540,7 @@ Do not display Masquer les informations techniques - web/prod/index.html.twig + web/prod/index.html.twig Do not forget to restart the tasks scheduler @@ -2571,7 +2572,7 @@ Document Document - web/prod/index.html.twig + web/prod/index.html.twig Document Type Sharing @@ -2639,7 +2640,7 @@ Drop index Supprimer les index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2747,19 +2748,19 @@ ElasticSearch index name Nom de l'index Elasticsearch - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch server host Hôte du serveur Elasticsearch - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch service port Port de service Elasticsearch - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -3010,7 +3011,7 @@ Equals Egale - web/prod/index.html.twig + web/prod/index.html.twig Erreur @@ -3153,7 +3154,7 @@ Ex : Paris, bleu, montagne Ex : Paris, bleu, montagne - web/prod/index.html.twig + web/prod/index.html.twig Executables externes @@ -3303,7 +3304,7 @@ Filename Nom du fichier - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Fils disponibles @@ -3336,13 +3337,13 @@ Flash Flash - web/prod/index.html.twig + web/prod/index.html.twig web/common/technical_datas.html.twig FlashFired Avec Flash - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Flatten layers @@ -3401,7 +3402,7 @@ FrameRate Cadence - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Frequence d'echantillonage @@ -3463,16 +3464,16 @@ Générer un fichier audio Media/Subdef/Audio.php - + Generates an image - Génère une image + Génère une image Media/Subdef/Image.php Media/Subdef/Unknown.php Geo Search Recherche géolocalisée - web/prod/index.html.twig + web/prod/index.html.twig Geonames server address @@ -3487,7 +3488,7 @@ Get setting form index Obtenir les réglages de l'index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Gives the option to your application to communicate with Phraseanet. This webhook can be used to trigger some actions on your application side. @@ -3547,7 +3548,7 @@ Graphiste (preview au rollover) Graphiste (prévisualisation au survol de la vignette) - web/prod/index.html.twig + web/prod/index.html.twig Great @@ -3646,7 +3647,7 @@ ISO ISO - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php ISO sensibility @@ -3656,7 +3657,7 @@ Iconographe (description au rollover) Iconographe (fiche d'indexation au survol de la vignette) - web/prod/index.html.twig + web/prod/index.html.twig Id @@ -3701,7 +3702,7 @@ Image Image - web/prod/index.html.twig + web/prod/index.html.twig ImageMagick @@ -3727,7 +3728,7 @@ In the answer grid Dans une infobulle séparée - web/prod/index.html.twig + web/prod/index.html.twig Include Business-fields in caption @@ -3951,7 +3952,7 @@ Language Langue - web/prod/index.html.twig + web/prod/index.html.twig Last Name @@ -3981,7 +3982,7 @@ Last uploaded version Dernière version ajoutée - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Le bridge Dailymotion ne prend en charge que les videos @@ -4088,7 +4089,7 @@ Les termes apparaissent dans le(s) champs Le(s) mot(s) contenu(s) dans le(s) champ(s) - web/prod/index.html.twig + web/prod/index.html.twig Light Value @@ -4218,7 +4219,7 @@ Ma derniere question Ma dernière question - web/prod/index.html.twig + web/prod/index.html.twig Mail line %line% is empty @@ -4324,7 +4325,7 @@ MimeType MimeType - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Minimum number of letters before truncation @@ -4375,7 +4376,7 @@ Mode de presentation Mode de présentation - web/prod/index.html.twig + web/prod/index.html.twig Modele de donnees @@ -4688,7 +4689,8 @@ Not aggregated Non agrégé - admin/fields/templates.html.twig + admin/search-engine/general-aggregation.html.twig + admin/fields/templates.html.twig Notification par email @@ -4754,13 +4756,13 @@ Number of replicas Nombre de répliques (Replica Shards) - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Number of shards Nombre de Shards Elastic - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -4798,7 +4800,7 @@ One of these conditions Une de ces conditions - web/prod/index.html.twig + web/prod/index.html.twig Only %nbEditableDocuments% records can be modified. @@ -4861,7 +4863,7 @@ Orientation Orientation - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Original name @@ -4901,7 +4903,7 @@ mobile/lightbox/index.html.twig mobile/lightbox/index.html.twig web/account/account.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig lightbox/IE6/validate.html.twig web/lightbox/validate.html.twig @@ -5141,10 +5143,10 @@ Preferences Préférences - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Prefix for notification emails @@ -5159,12 +5161,12 @@ Presentation de vignettes Présentation de vignettes - web/prod/index.html.twig + web/prod/index.html.twig Presentation de vignettes de panier Présentation des vignettes de panier - web/prod/index.html.twig + web/prod/index.html.twig Presets @@ -5217,7 +5219,7 @@ Publications Publications - web/prod/index.html.twig + web/prod/index.html.twig admin/publications/wrapper.html.twig web/admin/tree.html.twig web/common/menubar.html.twig @@ -5332,80 +5334,80 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Raccourcis claviers de la zone des paniers : - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de editing : Raccourci de la fenêtre d'édition - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de preview : Raccourcis de la fenêtre vue détaillée - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de recherche : Raccourcis de la fenêtre principale - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-a : tout selectionner ctrl-a : sélectionner tout - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-e : editer la selection ctrl-e : éditer la sélection - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-p : imprimer la selection ctrl-p : imprimer la sélection - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::espace : arreter/demarrer le diaporama espace : démarrer/arrêter le diaporama - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche bas : scroll vertical flèche basse : défilement vers le bas - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche droite : page suivante flèche droite : page suivante - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en arriere flèche gauche : document précédent - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en avant flèche droite : document suivant - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : page precedente flèche gauche : page précédente - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche haut : scroll vertical flèche haute : défilement vers le haut - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::tab/shift-tab se ballade dans les champs Tab/shift-tab : Changer de champs - web/prod/index.html.twig + web/prod/index.html.twig Rappel : Il vous reste %number% jours pour valider %title% de %user% @@ -5427,7 +5429,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Ré-initialiser prod/Baskets/Reorder.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig Re-ordonner @@ -5530,7 +5532,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Rechercher dans un champ date Dans un champ date - web/prod/index.html.twig + web/prod/index.html.twig Recommendations @@ -5621,7 +5623,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Relevance Pertinence - web/prod/index.html.twig + web/prod/index.html.twig Remember me @@ -5900,7 +5902,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Sauvegarder actions/Feedback/list.html.twig web/account/change-password.html.twig - admin/search-engine/general-aggregation.html.twig + admin/search-engine/general-aggregation.html.twig admin/search-engine/elastic-search.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig @@ -5999,7 +6001,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Select a field Choisir un champ - web/prod/index.html.twig + web/prod/index.html.twig Select a list on the left and edit it ! @@ -6034,7 +6036,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Selected base(s) Sélectionner les Bases : - web/prod/index.html.twig + web/prod/index.html.twig Selected files @@ -6168,7 +6170,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Shutter speed Vitesse d'obturateur - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6287,9 +6289,9 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis admin/task-manager/templates.html.twig admin/task-manager/templates.html.twig - + Start Range - Début de l'extrait + Début de l'extrait Controller/Prod/LanguageController.php @@ -6311,7 +6313,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Status des documents a rechercher Status des documents pour la recherche - web/prod/index.html.twig + web/prod/index.html.twig Status edition @@ -6406,8 +6408,8 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Substitute Substituer - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Substitution is not possible for this kind of record @@ -6731,7 +6733,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Theme Thème - web/prod/index.html.twig + web/prod/index.html.twig There is no one to validate orders, please contact an administrator @@ -6751,13 +6753,13 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Thesaurus Min score Hits minimum du Thésaurus - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Thesaurus branch Branche de thésaurus - admin/fields/templates.html.twig + admin/fields/templates.html.twig Thesaurus ou CTerms invalide @@ -6908,7 +6910,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Tout type Tous types - web/prod/index.html.twig + web/prod/index.html.twig Toutes les publications @@ -6934,7 +6936,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Trier par Trier par - web/prod/index.html.twig + web/prod/index.html.twig Try to extract embedded thumbnails @@ -6959,7 +6961,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Type de documents Type de document - web/prod/index.html.twig + web/prod/index.html.twig Type nombre @@ -7082,7 +7084,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Une question personnelle La question - web/prod/index.html.twig + web/prod/index.html.twig Une selection @@ -7174,7 +7176,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Uploaded by : %username% Ajouté par : %username% - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Use Google Chart API @@ -7194,7 +7196,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Use latest search settings on Production loading Utiliser la dernière question posée au lancement de Production - web/prod/index.html.twig + web/prod/index.html.twig Use my Phraseanet account @@ -7372,7 +7374,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Video Vidéo - web/prod/index.html.twig + web/prod/index.html.twig Video Codec @@ -7382,7 +7384,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Video codec Codec vidéo - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Videos @@ -7403,13 +7405,13 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Vocabulary type Liste de vocabulaire - admin/fields/templates.html.twig + admin/fields/templates.html.twig Voici vos paniers Paniers disponibles mobile/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig Voici vos validations en cours @@ -7569,7 +7571,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Vous pouvez quitter la plupart des fenetres survolantes via la touche echap Vous pouvez fermer la plupart des fênetres en sur impression avec la touche echap - web/prod/index.html.twig + web/prod/index.html.twig Warning ! @@ -7670,8 +7672,8 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis YYYY/MM/DD YYYY/MM/DD - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Yes @@ -7992,7 +7994,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action : bridge Bridge - web/prod/index.html.twig + web/prod/index.html.twig action : collection @@ -8019,7 +8021,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis prod/results/record.html.twig prod/results/record.html.twig prod/preview/tools.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig @@ -8049,7 +8051,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis prod/WorkZone/Story.html.twig prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig action : push @@ -8075,16 +8077,16 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action:: nouveau panier Nouveau panier - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action:: nouveau reportage Nouveau reportage - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action::Valider @@ -9155,12 +9157,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le boutton:: selectionner aucune base Aucune - web/prod/index.html.twig + web/prod/index.html.twig boutton:: selectionner toutes les bases Toutes - web/prod/index.html.twig + web/prod/index.html.twig boutton::ajouter @@ -9330,7 +9332,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le boutton::rechercher Rechercher Controller/Prod/LanguageController.php - web/prod/index.html.twig + web/prod/index.html.twig boutton::refresh @@ -9373,7 +9375,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le admin/collection/details.html.twig user/import/file.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/developers/application.html.twig @@ -9465,7 +9467,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod/actions/edit_default.html.twig prod/actions/edit_default.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-text-dialog.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/import-dialog.html.twig @@ -9493,7 +9495,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le user/import/view.html.twig admin/user/registrations.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/report/all_content.html.twig @@ -9591,7 +9593,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le choisir Choisir - web/prod/index.html.twig + web/prod/index.html.twig admin/databox/databox.html.twig admin/collection/create.html.twig @@ -9673,7 +9675,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le created_on créé le - web/prod/index.html.twig + web/prod/index.html.twig dans %category% @@ -9944,14 +9946,25 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Modifications effectuées admin/databox/databox.html.twig + + help::help-search: OR + Ou + prod/results/help.html.twig + + + help::help-search: relaunch search without filter + Supprimer tous les filtres et relancer la recherche + prod/results/help.html.twig + web/prod/index.html.twig + help::help-section-bullet: check-spelling Vérifier l'orthographe ou les erreurs de frappe prod/results/help.html.twig - + help::help-section-bullet: default-operator-between-terms - L'opérateur par défaut entre les termes est un ET, exemple: l'expression «voiture rouge» cherchera le terme «voiture» ET le terme «rouge» + L'opérateur par défaut entre les termes est un ET, exemple: voiture rouge, cherchera le terme «voiture» ET le terme «rouge» prod/results/help.html.twig @@ -9959,9 +9972,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Elargir la recherche en utilisant moins de mots clefs prod/results/help.html.twig - + help::help-section-bullet: quotation-marks-allow - Ajouter des guillemets pour chercher une expression exacte, permet aussi d'exclure un opérateur de la recherche, exemple : « Pile Ou face » , «Sain et sauf» + Ajouter des guillemets pour chercher une expression exacte, cela permet aussi d'exclure un opérateur de la recherche, exemple : « Pile Ou face » , «Sain et sauf» prod/results/help.html.twig @@ -10019,42 +10032,47 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le index::advance_search: disable-facet Ne pas afficher les facettes contenant un seul résultat (expérimental) - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet Préférences sur les facettes - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-order Ordre d'affichage des facettes - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-tech-order Ordre par défaut - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-values-order Ordre des valeurs de facettes - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: hidden-facet-values-order Facettes masquées - web/prod/index.html.twig + web/prod/index.html.twig - + index::advance_search: order-by-hits - Trier les facettes par hits - web/prod/index.html.twig + Par occurrences + web/prod/index.html.twig + + + index::advance_search: order-by-hits-asc + Par occurrences asc + web/prod/index.html.twig index:advanced-preferences:: use truncation Activer la troncature - web/prod/index.html.twig + web/prod/index.html.twig invite:: Redirection vers la zone d'authentification, cliquez sur OK pour continuer ou annulez @@ -10076,9 +10094,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le juin classes/module/report.php - + language - Langue + Langue actuelle login/include/language-block.html.twig @@ -10086,6 +10104,16 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Le service sera de nouveau disponible dans quelques minutes. actions/Bridge/deactivated.html.twig + + lightbox::See_less_feedback + Voir moins de validations + web/lightbox/index.html.twig + + + lightbox::See_more_feedback + Voir plus de Validations + web/lightbox/index.html.twig + lightbox::list Vignette @@ -10098,6 +10126,16 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/lightbox/agreement_box.html.twig web/lightbox/validate.html.twig + + lightbox::see_less_basket + Voir moins de Paniers + web/lightbox/index.html.twig + + + lightbox::see_more_basket + Voir plus de paniers + web/lightbox/index.html.twig + login:: Changer mon adresse email Changer mon adresse e-mail @@ -10297,7 +10335,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le order-manager::order-item: accepted-item - order-manager::order-item: accepted-item + Media délivré prod/orders/order_item.html.twig @@ -10389,7 +10427,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le order-manager::order-item: rejected-item - order-manager::order-item: rejected-item + Media Non délivré prod/orders/order_item.html.twig @@ -10406,7 +10444,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le order-manager::order-item: selected-item - order-manager::order-item: selected-item + Media sélectionnés prod/orders/order_item.html.twig @@ -10667,7 +10705,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet:: Preferences Préférences - web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: Un email vient de vous etre envoye @@ -10695,14 +10733,14 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/common/menubar.html.twig web/common/menubar.html.twig - + phraseanet:: basket feedback - Rapport de validation avec Notice + Rapport de validation avec Notice prod/actions/printer_default.html.twig - + phraseanet:: baskets - phraseanet:: baskets + Zone de travail web/prod/tab_headers.html.twig @@ -10816,17 +10854,17 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet:: tri par date Tri par date - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-topics-dialog.html.twig phraseanet:: tri par nom Tri alphabétique - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: user @@ -10923,9 +10961,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Controller/Root/AccountController.php Controller/Root/AccountController.php - + phraseanet::error: failed to revoke some user access - Erreur pendant la révocation de droits utilisateur + Erreur pendant la révocation de droits utilisateur Controller/Root/AccountController.php @@ -11011,12 +11049,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::time:: a A - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::time:: de De - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: audios @@ -11027,7 +11065,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::type:: documents Documents web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: images @@ -11037,7 +11075,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::type:: reportages Reportages - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: videos @@ -11062,17 +11100,17 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le preview:: Description Notice - web/prod/index.html.twig + web/prod/index.html.twig preview:: Historique Historique - web/prod/index.html.twig + web/prod/index.html.twig preview:: Popularite Popularité - web/prod/index.html.twig + web/prod/index.html.twig preview:: arreter le diaporama @@ -11134,14 +11172,14 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Rapport de validation avec description prod/actions/printer_default.html.twig - + print:: basket feedback only - Rapport de validation + Rapport de validation prod/actions/printer_default.html.twig print:: description - Description + Notice seule prod/actions/printer_default.html.twig @@ -11149,9 +11187,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Prévisualisation et notice d'indexation prod/actions/printer_default.html.twig - + print:: image de choix et description avec planche contact - Prévisualisation et notice avec planche contact + Prévisualisation et notice avec planche contact prod/actions/printer_default.html.twig @@ -11174,19 +11212,39 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Planche contact prod/actions/printer_default.html.twig - + + print_feedback:: Document generated on : + Impression générée le : + Out/Module/PDFRecords.php + + print_feedback:: Feedback active - Validation en cours + Validation en cours Out/Module/PDFRecords.php - + print_feedback:: Feedback expired - Validation Fermée + Validation Fermée Out/Module/PDFRecords.php - + + print_feedback:: Feedback expiring on : + Expire le : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated by : + Validation envoyée par : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated on : + Début de validation le : + Out/Module/PDFRecords.php + + print_feedback:: Feedback on basket %name% - Rapport de validation de %name% + Rapport de validation de : %name% Out/Module/PDFRecords.php @@ -11209,14 +11267,14 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Approbations : Out/Module/PDFRecords.php - + print_feedback:: base name: - print_feedback:: base name: + Base : Out/Module/PDFRecords.php - + print_feedback:: document Uuid: - Id unique de document : + Id unique de document : Out/Module/PDFRecords.php @@ -11224,9 +11282,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Non exprimé Out/Module/PDFRecords.php - + print_feedback:: originale filename: - Nom de fichier : + Nom de fichier : Out/Module/PDFRecords.php @@ -11234,9 +11292,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Record id: Out/Module/PDFRecords.php - + print_feedback:: record title: - Titre : + Titre : Out/Module/PDFRecords.php @@ -11271,12 +11329,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod::advancesearch:tooltips:datefield_restriction_explanation Limiter la recherche des résultats à des dates - web/prod/index.html.twig + web/prod/index.html.twig prod::advancesearch:tooltips:field_restriction_explanation Effectuer une recherche sur le contenu d'un champ documentaire de type texte - web/prod/index.html.twig + web/prod/index.html.twig prod::collection deplacer egalement les documents rattaches a ce(s) regroupement(s) @@ -11296,12 +11354,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le 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 @@ -11396,26 +11454,26 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod::facet:base_label Bases - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label Collections - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label Types de documents - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php - + prod::feedback:feedback_set_title - prod::feedback:feedback_set_title + Nom de la validation prod/templates/push.html.twig - + prod::push:push_set_title - prod::push:push_set_title + Nom du panier de Push prod/templates/push.html.twig @@ -11625,6 +11683,11 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Supprimer la selection prod/actions/Push.html.twig + + prod:workzone:facetstab:search_and_facets_sort_options + Options + web/prod/index.html.twig + public Public @@ -11660,8 +11723,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le publication::Voici votre fil RSS personnel. Il vous permettra d'etre tenu au courrant des publications. Voici votre fil RSS personnel. Il vous permettra d'être tenu informé des publications. - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications:: s'abonner aux publications @@ -11672,14 +11735,14 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le publications::Ne le partagez pas, il est strictement confidentiel Ne le partagez pas, il est strictement confidentiel - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications::votre rss personnel Votre rss personnel - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php push::mail:: Rapport de validation de %user% pour %title% @@ -11699,12 +11762,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le raccourci :: a propos des raccourcis claviers A propos des raccourcis clavier - web/prod/index.html.twig + web/prod/index.html.twig raccourcis :: ne plus montrer cette aide Ne plus montrer cette aide - web/prod/index.html.twig + web/prod/index.html.twig rafraichir @@ -11773,17 +11836,17 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le reponses:: images par pages : Résultats par page - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode liste Liste - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode vignettes Vignettes - web/prod/index.html.twig + web/prod/index.html.twig reponses:: partager @@ -11805,7 +11868,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le reponses:: taille des images : Taille des vignettes - web/prod/index.html.twig + web/prod/index.html.twig reponses::document sans titre @@ -13189,7 +13252,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le updated_on mis à jour le - web/prod/index.html.twig + web/prod/index.html.twig upload:: Destination (collection) : @@ -13202,7 +13265,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Appliquer les status prod/upload/upload.html.twig prod/upload/upload-flash.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig users rights have been reseted diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index 9bbc1b7d97..54bdcdf01e 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. @@ -122,8 +122,8 @@ %basket_length% documents %basket_length% documenten mobile/lightbox/validate.html.twig - web/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig + web/lightbox/index.html.twig %countable% documents can not be modified. @@ -282,7 +282,7 @@ %record_count% records match the unique identifier : %record_count% records zijn gelijk aan de unieke id : - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig %s field has been created with success. @@ -387,17 +387,17 @@ (validation) a envoyer te versturen - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) envoyee verstuurd - web/lightbox/index.html.twig + web/lightbox/index.html.twig (validation) session terminee sessie beïndigd - web/lightbox/index.html.twig + web/lightbox/index.html.twig *Phraseanet Navigator* is a smartphone application that allow user to connect on this instance @@ -493,7 +493,7 @@ A record matches the unique identifier : Een record is gelijk aan de unieke id : - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig A required field is missing or has an empty value @@ -631,7 +631,7 @@ Action Forbidden : You are not the publisher Verboden actie : U bent niet de publisher - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php Actions @@ -646,7 +646,7 @@ Activate highlight Activate highlight - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -680,8 +680,8 @@ Add Toevoegen prod/actions/Push.html.twig - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig prod/User/Add.html.twig @@ -765,8 +765,8 @@ Advanced Search Geavanceerd zoeken - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Advanced mode @@ -781,37 +781,42 @@ Affichage Tonen - web/prod/index.html.twig + web/prod/index.html.twig Affichage au demarrage Tonen bij opstart - web/prod/index.html.twig + web/prod/index.html.twig Afficher la fiche descriptive De beschrijvingsfiche tonen - web/prod/index.html.twig + web/prod/index.html.twig Afficher le titre De titel tonen - web/prod/index.html.twig + web/prod/index.html.twig Afficher les status De statussen tonen - web/prod/index.html.twig + web/prod/index.html.twig Afficher une icone Pictogram tonen - web/prod/index.html.twig + web/prod/index.html.twig After metadata After metadata - web/prod/index.html.twig + web/prod/index.html.twig + + + Aggregated + Aggregated + admin/search-engine/general-aggregation.html.twig Aggregation @@ -821,7 +826,7 @@ Aide Help - web/prod/index.html.twig + web/prod/index.html.twig Aide sur les expressions regulieres @@ -873,12 +878,7 @@ All these conditions All these conditions - web/prod/index.html.twig - - - All values - All values - admin/fields/templates.html.twig + web/prod/index.html.twig Aller a @@ -943,14 +943,15 @@ Alphabetic asc Alphabetic asc - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Alphabetic desc Alphabetic desc - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Also delete records that rely on groupings. @@ -1037,7 +1038,7 @@ Er is een fout opgetreden Order/Controller/ProdOrderController.php Controller/Admin/DataboxController.php - Controller/Admin/SearchEngineController.php + Controller/Admin/SearchEngineController.php Controller/Admin/CollectionController.php Controller/Prod/BasketController.php Controller/Api/V3Controller.php @@ -1073,7 +1074,7 @@ Aperture Diafragma - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1270,7 +1271,7 @@ Audio Audio - web/prod/index.html.twig + web/prod/index.html.twig Audio Birate @@ -1286,7 +1287,7 @@ Audio Samplerate Audio Samplerate - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Audio channel @@ -1296,7 +1297,7 @@ Audio codec Audio codec - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php AudioSamplerate @@ -1529,9 +1530,9 @@ Browse Baskets Mandjes doorbladeren - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Browser @@ -1559,7 +1560,7 @@ By field By field - web/prod/index.html.twig + web/prod/index.html.twig CHAMPS @@ -1569,7 +1570,7 @@ Camera Model Cameramodel - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1828,7 +1829,7 @@ Collection Collectie prod/Story/Create.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/databox/details.html.twig @@ -1845,7 +1846,7 @@ Collection order Collection order - web/prod/index.html.twig + web/prod/index.html.twig Color Depth @@ -1860,7 +1861,7 @@ Colorspace Colorspace - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Commande @@ -1916,7 +1917,7 @@ Configuration Configuratie - web/prod/index.html.twig + web/prod/index.html.twig Confirm new email address @@ -1972,7 +1973,7 @@ Contains Contains - web/prod/index.html.twig + web/prod/index.html.twig Continuer ? @@ -2027,7 +2028,7 @@ Couleur de selection Kleur van de selectie - web/prod/index.html.twig + web/prod/index.html.twig Country @@ -2048,7 +2049,7 @@ Create index Create index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Creation date @@ -2138,7 +2139,7 @@ errors Current configuration contains some errors - admin/fields/templates.html.twig + admin/fields/templates.html.twig Current operations cannot be executed because the site is temporarily in maintenance mode. Wait a few minutes and try your request again @@ -2236,12 +2237,12 @@ Date Datum - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Date Added Date Added - web/prod/index.html.twig + web/prod/index.html.twig Date Creation @@ -2251,7 +2252,7 @@ Date Updated Date Updated - web/prod/index.html.twig + web/prod/index.html.twig Date de connexion @@ -2280,7 +2281,7 @@ Date(s) from field(s) Date(s) from field(s) - web/prod/index.html.twig + web/prod/index.html.twig De @@ -2358,7 +2359,7 @@ Defined by admin Defined by admin - web/prod/index.html.twig + web/prod/index.html.twig Defined in Apache configuration @@ -2378,8 +2379,8 @@ Delete Verwijder - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig admin/task-manager/templates.html.twig @@ -2536,7 +2537,7 @@ Display technical data Display technical data - web/prod/index.html.twig + web/prod/index.html.twig Display thumbnails @@ -2546,7 +2547,7 @@ Do not display Do not display - web/prod/index.html.twig + web/prod/index.html.twig Do not forget to restart the tasks scheduler @@ -2578,7 +2579,7 @@ Document Document - web/prod/index.html.twig + web/prod/index.html.twig Document Type Sharing @@ -2646,7 +2647,7 @@ Drop index Drop index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2754,19 +2755,19 @@ ElasticSearch index name ElasticSearch index name - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch server host ElasticSearch server host - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig ElasticSearch service port ElasticSearch service port - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -3020,7 +3021,7 @@ Equals Equals - web/prod/index.html.twig + web/prod/index.html.twig Erreur @@ -3163,7 +3164,7 @@ Ex : Paris, bleu, montagne Ex : Paris, bleu, montagne - web/prod/index.html.twig + web/prod/index.html.twig Executables externes @@ -3313,7 +3314,7 @@ Filename Bestandsnaam - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Fils disponibles @@ -3346,13 +3347,13 @@ Flash Flash - web/prod/index.html.twig + web/prod/index.html.twig web/common/technical_datas.html.twig FlashFired FlashFired - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Flatten layers @@ -3411,7 +3412,7 @@ FrameRate FrameRate - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Frequence d'echantillonage @@ -3482,7 +3483,7 @@ Geo Search Geo Search - web/prod/index.html.twig + web/prod/index.html.twig Geonames server address @@ -3497,7 +3498,7 @@ Get setting form index Get setting form index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Gives the option to your application to communicate with Phraseanet. This webhook can be used to trigger some actions on your application side. @@ -3557,7 +3558,7 @@ Graphiste (preview au rollover) Graficus (preview au rollover) - web/prod/index.html.twig + web/prod/index.html.twig Great @@ -3656,7 +3657,7 @@ ISO ISO - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php ISO sensibility @@ -3666,7 +3667,7 @@ Iconographe (description au rollover) Iconographe (beschrijving bij de rollover) - web/prod/index.html.twig + web/prod/index.html.twig Id @@ -3711,7 +3712,7 @@ Image Beeld - web/prod/index.html.twig + web/prod/index.html.twig ImageMagick @@ -3737,7 +3738,7 @@ In the answer grid In the answer grid - web/prod/index.html.twig + web/prod/index.html.twig Include Business-fields in caption @@ -3961,7 +3962,7 @@ Language Language - web/prod/index.html.twig + web/prod/index.html.twig Last Name @@ -3991,7 +3992,7 @@ Last uploaded version Laatst opgeladen versie - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Le bridge Dailymotion ne prend en charge que les videos @@ -4098,7 +4099,7 @@ Les termes apparaissent dans le(s) champs De termen verschijnen in de veld(en) - web/prod/index.html.twig + web/prod/index.html.twig Light Value @@ -4228,7 +4229,7 @@ Ma derniere question Mijn laatste vraag - web/prod/index.html.twig + web/prod/index.html.twig Mail line %line% is empty @@ -4334,7 +4335,7 @@ MimeType MimeType - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Minimum number of letters before truncation @@ -4385,7 +4386,7 @@ Mode de presentation Presentatie mode - web/prod/index.html.twig + web/prod/index.html.twig Modele de donnees @@ -4698,7 +4699,8 @@ Not aggregated Not aggregated - admin/fields/templates.html.twig + admin/search-engine/general-aggregation.html.twig + admin/fields/templates.html.twig Notification par email @@ -4764,13 +4766,13 @@ Number of replicas Number of replicas - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Number of shards Number of shards - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig @@ -4808,7 +4810,7 @@ One of these conditions One of these conditions - web/prod/index.html.twig + web/prod/index.html.twig Only %nbEditableDocuments% records can be modified. @@ -4871,7 +4873,7 @@ Orientation Orientation - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Original name @@ -4911,7 +4913,7 @@ mobile/lightbox/index.html.twig mobile/lightbox/index.html.twig web/account/account.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig lightbox/IE6/validate.html.twig web/lightbox/validate.html.twig @@ -5151,10 +5153,10 @@ Preferences Voorkeuren - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Prefix for notification emails @@ -5169,12 +5171,12 @@ Presentation de vignettes Presentatie van de thumbnails - web/prod/index.html.twig + web/prod/index.html.twig Presentation de vignettes de panier Presentatie van de thumbnails in het mandje - web/prod/index.html.twig + web/prod/index.html.twig Presets @@ -5227,7 +5229,7 @@ Publications Publicaties - web/prod/index.html.twig + web/prod/index.html.twig admin/publications/wrapper.html.twig web/admin/tree.html.twig web/common/menubar.html.twig @@ -5340,80 +5342,80 @@ Raccourcis claviers de la zone des paniers : Sneltoetsen in de mandjes zone : - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de editing : Sneltoetsen tijdens het bewerken : - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de preview : Sneltoetsen tijdens de voorvertoning : - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis claviers en cours de recherche : Sneltoetsen tijdens het zoeken : - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-a : tout selectionner ctrl-a : alles selecteren - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-e : editer la selection ctrl-e : bewerk de selectie - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis:: ctrl-p : imprimer la selection ctrl-p : print de selectie - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::espace : arreter/demarrer le diaporama espace : start/stop de slideshow - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche bas : scroll vertical pijl onder : verticale scroll - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche droite : page suivante pijl rechts : volgende pagina - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en arriere pijl links : achterwaarts - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : en avant pijl rechts : voorwaarts - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche gauche : page precedente pijl links : vorige pagina - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::fleche haut : scroll vertical pijl boven : verticale scroll - web/prod/index.html.twig + web/prod/index.html.twig Raccourcis::tab/shift-tab se ballade dans les champs tab/shift-tab verspringt tussen de velden - web/prod/index.html.twig + web/prod/index.html.twig Rappel : Il vous reste %number% jours pour valider %title% de %user% @@ -5435,7 +5437,7 @@ Herinitialiseren prod/Baskets/Reorder.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig Re-ordonner @@ -5538,7 +5540,7 @@ Rechercher dans un champ date Zoeken in een datum veld - web/prod/index.html.twig + web/prod/index.html.twig Recommendations @@ -5629,7 +5631,7 @@ Relevance Relevance - web/prod/index.html.twig + web/prod/index.html.twig Remember me @@ -5908,7 +5910,7 @@ Opslaan actions/Feedback/list.html.twig web/account/change-password.html.twig - admin/search-engine/general-aggregation.html.twig + admin/search-engine/general-aggregation.html.twig admin/search-engine/elastic-search.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig @@ -6007,7 +6009,7 @@ Select a field Select a field - web/prod/index.html.twig + web/prod/index.html.twig Select a list on the left and edit it ! @@ -6042,7 +6044,7 @@ Selected base(s) Selected base(s) - web/prod/index.html.twig + web/prod/index.html.twig Selected files @@ -6176,7 +6178,7 @@ Shutter speed Sluitersnelheid - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6319,7 +6321,7 @@ Status des documents a rechercher Status van de te zoeken documenten - web/prod/index.html.twig + web/prod/index.html.twig Status edition @@ -6414,8 +6416,8 @@ Substitute Vervangen - prod/upload/lazaret.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Substitution is not possible for this kind of record @@ -6739,7 +6741,7 @@ Theme Thema - web/prod/index.html.twig + web/prod/index.html.twig There is no one to validate orders, please contact an administrator @@ -6759,13 +6761,13 @@ Thesaurus Min score Thesaurus Min score - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php web/setup/step2.html.twig Thesaurus branch Thesaurus tak - admin/fields/templates.html.twig + admin/fields/templates.html.twig Thesaurus ou CTerms invalide @@ -6916,7 +6918,7 @@ Tout type Alle type - web/prod/index.html.twig + web/prod/index.html.twig Toutes les publications @@ -6942,7 +6944,7 @@ Trier par Sorteren op - web/prod/index.html.twig + web/prod/index.html.twig Try to extract embedded thumbnails @@ -6967,7 +6969,7 @@ Type de documents Type van de documenten - web/prod/index.html.twig + web/prod/index.html.twig Type nombre @@ -7090,7 +7092,7 @@ Une question personnelle Een persoonlijke vraag - web/prod/index.html.twig + web/prod/index.html.twig Une selection @@ -7182,7 +7184,7 @@ Uploaded by : %username% Opgeladen door : %username% - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig Use Google Chart API @@ -7202,7 +7204,7 @@ Use latest search settings on Production loading Use latest search settings on Production loading - web/prod/index.html.twig + web/prod/index.html.twig Use my Phraseanet account @@ -7380,7 +7382,7 @@ Video Video - web/prod/index.html.twig + web/prod/index.html.twig Video Codec @@ -7390,7 +7392,7 @@ Video codec Video codec - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php Videos @@ -7411,13 +7413,13 @@ Vocabulary type Type van de vocabulair - admin/fields/templates.html.twig + admin/fields/templates.html.twig Voici vos paniers Uw mandjes mobile/lightbox/index.html.twig - web/lightbox/index.html.twig + web/lightbox/index.html.twig Voici vos validations en cours @@ -7577,7 +7579,7 @@ Vous pouvez quitter la plupart des fenetres survolantes via la touche echap U kunt het grootste deel van de bovenliggende vensters sluiten met de escape toets - web/prod/index.html.twig + web/prod/index.html.twig Warning ! @@ -7678,8 +7680,8 @@ YYYY/MM/DD YYYY/MM/DD - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig Yes @@ -8000,7 +8002,7 @@ action : bridge Bridge - web/prod/index.html.twig + web/prod/index.html.twig action : collection @@ -8027,7 +8029,7 @@ prod/results/record.html.twig prod/results/record.html.twig prod/preview/tools.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig @@ -8057,7 +8059,7 @@ prod/WorkZone/Story.html.twig prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig action : push @@ -8083,16 +8085,16 @@ action:: nouveau panier Nieuw mandje - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action:: nouveau reportage Nieuwe reportage - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig action::Valider @@ -9162,12 +9164,12 @@ boutton:: selectionner aucune base Selecteer geen enkele database - web/prod/index.html.twig + web/prod/index.html.twig boutton:: selectionner toutes les bases Selecteer alle databases - web/prod/index.html.twig + web/prod/index.html.twig boutton::ajouter @@ -9337,7 +9339,7 @@ boutton::rechercher zoeken Controller/Prod/LanguageController.php - web/prod/index.html.twig + web/prod/index.html.twig boutton::refresh @@ -9380,7 +9382,7 @@ admin/collection/details.html.twig user/import/file.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/developers/application.html.twig @@ -9472,7 +9474,7 @@ prod/actions/edit_default.html.twig prod/actions/edit_default.html.twig prod/Story/Reorder.html.twig - web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-text-dialog.html.twig web/thesaurus/thesaurus.html.twig web/thesaurus/import-dialog.html.twig @@ -9500,7 +9502,7 @@ user/import/view.html.twig admin/user/registrations.html.twig admin/statusbit/edit.html.twig - web/developers/application_form.html.twig + web/developers/application_form.html.twig web/report/all_content.html.twig @@ -9598,7 +9600,7 @@ choisir kiezen - web/prod/index.html.twig + web/prod/index.html.twig admin/databox/databox.html.twig admin/collection/create.html.twig @@ -9680,7 +9682,7 @@ created_on created_on - web/prod/index.html.twig + web/prod/index.html.twig dans %category% @@ -9951,6 +9953,17 @@ Bewerking correct uitgevoerd admin/databox/databox.html.twig + + help::help-search: OR + help::help-search: OR + prod/results/help.html.twig + + + help::help-search: relaunch search without filter + help::help-search: relaunch search without filter + prod/results/help.html.twig + web/prod/index.html.twig + help::help-section-bullet: check-spelling help::help-section-bullet: check-spelling @@ -10026,42 +10039,47 @@ index::advance_search: disable-facet index::advance_search: disable-facet - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet index::advance_search: facet - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-order index::advance_search: facet-order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-tech-order index::advance_search: facet-tech-order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: facet-values-order index::advance_search: facet-values-order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: hidden-facet-values-order index::advance_search: hidden-facet-values-order - web/prod/index.html.twig + web/prod/index.html.twig index::advance_search: order-by-hits index::advance_search: order-by-hits - web/prod/index.html.twig + web/prod/index.html.twig + + + index::advance_search: order-by-hits-asc + index::advance_search: order-by-hits-asc + web/prod/index.html.twig index:advanced-preferences:: use truncation index:advanced-preferences:: use truncation - web/prod/index.html.twig + web/prod/index.html.twig invite:: Redirection vers la zone d'authentification, cliquez sur OK pour continuer ou annulez @@ -10093,6 +10111,16 @@ de service zal binnen enkele minuten opnieuw beschibaar zijn actions/Bridge/deactivated.html.twig + + lightbox::See_less_feedback + lightbox::See_less_feedback + web/lightbox/index.html.twig + + + lightbox::See_more_feedback + lightbox::See_more_feedback + web/lightbox/index.html.twig + lightbox::list lightbox::list @@ -10105,6 +10133,16 @@ web/lightbox/agreement_box.html.twig web/lightbox/validate.html.twig + + lightbox::see_less_basket + lightbox::see_less_basket + web/lightbox/index.html.twig + + + lightbox::see_more_basket + lightbox::see_more_basket + web/lightbox/index.html.twig + login:: Changer mon adresse email Verander mijn email adres @@ -10674,7 +10712,7 @@ phraseanet:: Preferences phraseanet:: Preferences - web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: Un email vient de vous etre envoye @@ -10823,17 +10861,17 @@ phraseanet:: tri par date Op datum sorteren - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig web/thesaurus/export-topics-dialog.html.twig phraseanet:: tri par nom Op naam sorteren - web/prod/index.html.twig - web/prod/index.html.twig - web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig + web/prod/index.html.twig phraseanet:: user @@ -11018,12 +11056,12 @@ phraseanet::time:: a a - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::time:: de de - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: audios @@ -11034,7 +11072,7 @@ phraseanet::type:: documents Documenten web/prod/toolbar.html.twig - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: images @@ -11044,7 +11082,7 @@ phraseanet::type:: reportages Reportages - web/prod/index.html.twig + web/prod/index.html.twig phraseanet::type:: videos @@ -11069,17 +11107,17 @@ preview:: Description Beschrijving - web/prod/index.html.twig + web/prod/index.html.twig preview:: Historique Historie - web/prod/index.html.twig + web/prod/index.html.twig preview:: Popularite Populariteit - web/prod/index.html.twig + web/prod/index.html.twig preview:: arreter le diaporama @@ -11181,6 +11219,11 @@ Contact fiche (mosaic) prod/actions/printer_default.html.twig + + print_feedback:: Document generated on : + print_feedback:: Document generated on : + Out/Module/PDFRecords.php + print_feedback:: Feedback active print_feedback:: Feedback active @@ -11191,6 +11234,21 @@ print_feedback:: Feedback expired Out/Module/PDFRecords.php + + print_feedback:: Feedback expiring on : + print_feedback:: Feedback expiring on : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated by : + print_feedback:: Feedback initiated by : + Out/Module/PDFRecords.php + + + print_feedback:: Feedback initiated on : + print_feedback:: Feedback initiated on : + Out/Module/PDFRecords.php + print_feedback:: Feedback on basket %name% print_feedback:: Feedback on basket %name% @@ -11278,12 +11336,12 @@ prod::advancesearch:tooltips:datefield_restriction_explanation prod::advancesearch:tooltips:datefield_restriction_explanation - web/prod/index.html.twig + web/prod/index.html.twig prod::advancesearch:tooltips:field_restriction_explanation prod::advancesearch:tooltips:field_restriction_explanation - web/prod/index.html.twig + web/prod/index.html.twig prod::collection deplacer egalement les documents rattaches a ce(s) regroupement(s) @@ -11303,12 +11361,12 @@ 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 @@ -11403,17 +11461,17 @@ prod::facet:base_label prod::facet:base_label - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label prod::facet:collection_label - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label prod::facet:doctype_label - SearchEngine/Elastic/ElasticsearchOptions.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::feedback:feedback_set_title @@ -11626,6 +11684,11 @@ prod:push: delete selection prod/actions/Push.html.twig + + prod:workzone:facetstab:search_and_facets_sort_options + prod:workzone:facetstab:search_and_facets_sort_options + web/prod/index.html.twig + public publiek @@ -11661,8 +11724,8 @@ publication::Voici votre fil RSS personnel. Il vous permettra d'etre tenu au courrant des publications. Hier uw persoonlijke RSS feed. Deze laat u toe om op de hoogte te blijven van de publicaties. - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications:: s'abonner aux publications @@ -11673,14 +11736,14 @@ publications::Ne le partagez pas, il est strictement confidentiel Deel deze niet, hij is strikt confidentieel - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php publications::votre rss personnel Uw persoonlijke rss feed - Controller/Prod/FeedController.php - Controller/Prod/FeedController.php + Controller/Prod/FeedController.php + Controller/Prod/FeedController.php push::mail:: Rapport de validation de %user% pour %title% @@ -11700,12 +11763,12 @@ raccourci :: a propos des raccourcis claviers Over toetsenbord sneltoetsen - web/prod/index.html.twig + web/prod/index.html.twig raccourcis :: ne plus montrer cette aide Deze help niet meer tonen - web/prod/index.html.twig + web/prod/index.html.twig rafraichir @@ -11774,17 +11837,17 @@ reponses:: images par pages : Beelden per pagina : - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode liste Lijst mode - web/prod/index.html.twig + web/prod/index.html.twig reponses:: mode vignettes Thumbnail mode - web/prod/index.html.twig + web/prod/index.html.twig reponses:: partager @@ -11806,7 +11869,7 @@ reponses:: taille des images : Grootte van de beelden : - web/prod/index.html.twig + web/prod/index.html.twig reponses::document sans titre @@ -13190,7 +13253,7 @@ updated_on updated_on - web/prod/index.html.twig + web/prod/index.html.twig upload:: Destination (collection) : @@ -13203,7 +13266,7 @@ Status prod/upload/upload.html.twig prod/upload/upload-flash.html.twig - prod/upload/lazaret.html.twig + prod/upload/lazaret.html.twig users rights have been reseted diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index 8dac2887ae..a7c6c7ab7c 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 caf3dce9e7..b514c86069 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 643d193e72..52f5b99997 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 3dfa81c219..218bcf559a 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. diff --git a/resources/www/account/styles/main.scss b/resources/www/account/styles/main.scss index dbdf9dfa4d..42dd129b82 100644 --- a/resources/www/account/styles/main.scss +++ b/resources/www/account/styles/main.scss @@ -16,4 +16,158 @@ $mainMenuMarginBottom: 30px; #mainContent { padding-top: $mainMenuHeight; -} \ No newline at end of file +} + + +/*Help menu*/ +.contextMenu.helpcontextmenu { + display: none; + &.shown { + display: block; + position: absolute; + z-index: 101; + } +} +.help-trigger { + display:inline-block; + cursor:pointer; + padding: 0 4px; + border:none; + margin-left: -12px; +} + +.phraseanet_logo { + background: url(../../common/images/logo_phraseanet.png) no-repeat center center /contain; + height: 75px; + width: 230px; + display: inline-block; +} + +.phraseanet_version { + font-size: 15px; + font-family: Roboto; + font-weight: 500; + color: #b7b7b7; + padding-left: 58px; + a { + color: #b7b7b7; + &:hover { + color: #FFFFFF; + } + } +} + +.phraseanet_about_top { + background: #4e4e4e; + padding: 30px 20px; +} +.phraseanet_about_bottom { + padding: 25px 20px; + min-height: 150px; + background: #c8c8c8; + a { + font-family: Roboto; + line-height: 1.2; + font-size: 15px!important; + font-weight: 500; + color: #000000!important; + text-decoration: underline; + } + +} +.phraseanet_gpl { + img { + position: absolute; + width: 84px; + } + span { + padding-top: 26px; + display: inline-block; + padding-left: 100px; + padding-bottom: 20px; + text-decoration: underline; + } + a { + text-decoration: underline; + } + +} + + + +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 21px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; + text-indent: -9999999px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} + +.overlay, +.ui-widget-overlay { + background-color: #000; + opacity: 0.7; + filter: alpha(opacity=70); + height: 100%; + width: 100% +} + + +.ui-icon, .ui-widget-content .ui-icon { + background-image: url(/assets/vendors/jquery-ui/images/ui-lightness/ui-icons_222222_256x240.png)!important; + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + background-position: -96px -128px; + width: 16px; + height: 16px; + position: absolute; + top: 50%; + left: 50%; + margin-left: -8px; + margin-top: -8px; +} diff --git a/resources/www/admin/styles/main.scss b/resources/www/admin/styles/main.scss index ee13922f56..cff7851f82 100644 --- a/resources/www/admin/styles/main.scss +++ b/resources/www/admin/styles/main.scss @@ -325,6 +325,7 @@ div.switch_right.unchecked { .ui-dialog-titlebar-close { border: none; margin-right: 4px; + text-indent: -9999999px; } .ui-icon.ui-icon-closethick { background-image: url("/assets/common/images/icons/cross-white.png"); @@ -841,6 +842,76 @@ span.simplecolorpicker.picker { } } +.help-trigger { + display:inline-block; + cursor:pointer; + padding: 0 4px; + border:none; + margin-left: -12px; +} + +.phraseanet_logo { + background: url(../../common/images/logo_phraseanet.png) no-repeat center center /contain; + height: 75px; + width: 230px; + display: inline-block; +} + +.phraseanet_version { + font-size: 15px; + font-family: Roboto; + font-weight: 500; + color: #b7b7b7; + padding-left: 58px; + a { + color: #b7b7b7; + &:hover { + color: #FFFFFF; + } + } +} + +.phraseanet_about_top { + background: #4e4e4e; + padding: 30px 20px; +} +.phraseanet_about_bottom { + padding: 25px 20px; + min-height: 150px; + background: #c8c8c8; + a { + font-family: Roboto; + line-height: 1.2; + font-size: 15px!important; + font-weight: 500; + color: #000000!important; + text-decoration: underline; + } + +} +.phraseanet_gpl { + img { + position: absolute; + width: 84px; + } + span { + padding-top: 26px; + display: inline-block; + padding-left: 100px; + padding-bottom: 20px; + text-decoration: underline; + } + a { + text-decoration: underline; + } + +} +.ui-icon, .ui-widget-content .ui-icon { + background-image: url(/assets/vendors/jquery-ui/images/ui-lightness/ui-icons_222222_256x240.png)!important; +} +.ui-dialog-titlebar-close { + text-indent: -9999999px; +} @import './databases'; @import './fields'; @import './tables'; diff --git a/resources/www/common/images/GPLv3_Logo.png b/resources/www/common/images/GPLv3_Logo.png new file mode 100644 index 0000000000..25611f87d6 Binary files /dev/null and b/resources/www/common/images/GPLv3_Logo.png differ diff --git a/resources/www/common/images/logo_phraseanet.png b/resources/www/common/images/logo_phraseanet.png new file mode 100644 index 0000000000..373d529be3 Binary files /dev/null and b/resources/www/common/images/logo_phraseanet.png differ diff --git a/resources/www/common/js/components/common.js b/resources/www/common/js/components/common.js index 39c6ddf3c8..059db6c044 100644 --- a/resources/www/common/js/components/common.js +++ b/resources/www/common/js/components/common.js @@ -94,7 +94,7 @@ var commonModule = (function ($, p4) { .empty() .append(el.attr('infos')) .dialog({ - + title: 'About', autoOpen: false, closeOnEscape: true, resizable: false, @@ -106,7 +106,7 @@ var commonModule = (function ($, p4) { backgroundColor: '#000', opacity: 0.7 } - }).dialog('open').css({'overflow-x': 'auto', 'overflow-y': 'auto'}); + }).dialog('open').css({'overflow-x': 'auto', 'overflow-y': 'hidden', 'padding': '0'}); } diff --git a/resources/www/common/styles/main.scss b/resources/www/common/styles/main.scss index abcf466262..e232bde41c 100644 --- a/resources/www/common/styles/main.scss +++ b/resources/www/common/styles/main.scss @@ -107,3 +107,60 @@ $mainMenuLinkBackgroundHoverColor: transparent; margin-left: -12px; } +.phraseanet_logo { + background: url(../images/logo_phraseanet.png) no-repeat center center /contain; + height: 75px; + width: 230px; + display: inline-block; +} + +.phraseanet_version { + font-size: 15px; + font-family: Roboto; + font-weight: 500; + color: #b7b7b7; + padding-left: 58px; + a { + color: #b7b7b7; + &:hover { + color: #FFFFFF; + } + } +} + +.phraseanet_about_top { + background: #4e4e4e; + padding: 30px 20px; +} +.phraseanet_about_bottom { + padding: 25px 20px; + min-height: 150px; + background: #c8c8c8; + a { + font-family: Roboto; + line-height: 1.2; + font-size: 15px!important; + font-weight: 500; + color: #000000!important; + text-decoration: underline; + } + +} +.phraseanet_gpl { + img { + position: absolute; + width: 84px; + } + span { + padding-top: 26px; + display: inline-block; + padding-left: 100px; + padding-bottom: 20px; + text-decoration: underline; + } + a { + text-decoration: underline; + } + +} + diff --git a/resources/www/report/styles/main.scss b/resources/www/report/styles/main.scss index 218fce1f28..1c2dc70c33 100644 --- a/resources/www/report/styles/main.scss +++ b/resources/www/report/styles/main.scss @@ -360,3 +360,86 @@ $select-height: 26px; #mainMenu li .context-menu-item-inner a:hover { color: #000; } + +.ui-dialog-titlebar-close { + text-indent: -9999999px; +} + + +/*Help menu*/ +.contextMenu.helpcontextmenu { + display: none; + &.shown { + display: block; + position: absolute; + z-index: 101; + } +} +.help-trigger { + display:inline-block; + cursor:pointer; + padding: 0 4px; + border:none; + margin-left: -12px; +} + +.phraseanet_logo { + background: url(../../common/images/logo_phraseanet.png) no-repeat center center /contain; + height: 75px; + width: 230px; + display: inline-block; +} + +.phraseanet_version { + font-size: 15px; + font-family: Roboto; + font-weight: 500; + color: #b7b7b7; + padding-left: 58px; + a { + color: #b7b7b7; + &:hover { + color: #FFFFFF; + } + } +} + +.phraseanet_about_top { + background: #4e4e4e; + padding: 30px 20px; +} +.phraseanet_about_bottom { + padding: 25px 20px; + min-height: 150px; + background: #c8c8c8; + a { + font-family: Roboto; + line-height: 1.2; + font-size: 15px!important; + font-weight: 500; + color: #000000!important; + text-decoration: underline; + } + +} +.phraseanet_gpl { + img { + position: absolute; + width: 84px; + } + span { + padding-top: 26px; + display: inline-block; + padding-left: 100px; + padding-bottom: 20px; + text-decoration: underline; + } + a { + text-decoration: underline; + } + +} + +.ui-icon, .ui-widget-content .ui-icon { + background-image: url(/assets/vendors/jquery-ui/images/ui-lightness/ui-icons_222222_256x240.png)!important; +} diff --git a/templates/web/account/account.html.twig b/templates/web/account/account.html.twig index 887b29ec03..8dea3e8726 100644 --- a/templates/web/account/account.html.twig +++ b/templates/web/account/account.html.twig @@ -107,7 +107,7 @@
- +

@@ -121,7 +121,7 @@
- +

diff --git a/templates/web/admin/fields/index.html.twig b/templates/web/admin/fields/index.html.twig index e8198a324f..531ef168eb 100644 --- a/templates/web/admin/fields/index.html.twig +++ b/templates/web/admin/fields/index.html.twig @@ -27,3 +27,17 @@ {# bootstrap admin field backbone application #} + + diff --git a/templates/web/admin/fields/templates.html.twig b/templates/web/admin/fields/templates.html.twig index 0dc661fc5c..73106dbafb 100644 --- a/templates/web/admin/fields/templates.html.twig +++ b/templates/web/admin/fields/templates.html.twig @@ -238,14 +238,12 @@ - + <%= field['aggregable'] == "0" ? '{% trans %}Not aggregated{% endtrans %}' : '' %> + <%= field['aggregable'] == "10" ? '10 values' : '' %> + <%= field['aggregable'] == "20" ? '20 values' : '' %> + <%= field['aggregable'] == "50" ? '50 values' : '' %> + <%= field['aggregable'] == "100" ? '100 values' : '' %> + <%= field['aggregable'] == "-1" ? 'All values' : '' %> @@ -261,11 +259,14 @@ - - - - - /> + + +
> + +
+ diff --git a/templates/web/admin/search-engine/general-aggregation.html.twig b/templates/web/admin/search-engine/general-aggregation.html.twig index d4b83ba31b..0c377d2ecd 100644 --- a/templates/web/admin/search-engine/general-aggregation.html.twig +++ b/templates/web/admin/search-engine/general-aggregation.html.twig @@ -1,12 +1,37 @@
+ +
+ {#{{ 'See' | trans }} : #} + + + + + + + +
    {% for formdata in form %} {% set attr = formdata.vars['attr']|join(',') %} + {% set label = formdata.vars['label']|join(',') %} {% if attr == 'aggregate' %} -
  • +
  • + + diff --git a/templates/web/developers/application_form.html.twig b/templates/web/developers/application_form.html.twig index 7d8e2eea76..c1ec6cb8bf 100644 --- a/templates/web/developers/application_form.html.twig +++ b/templates/web/developers/application_form.html.twig @@ -45,7 +45,7 @@ {% endmacro %} {% block content_account %} - + {% if form is none %} {% set name, description, website, callback = "", "", "", "" %} {% set app_type = "web" %} @@ -74,7 +74,7 @@
    - @@ -101,7 +101,7 @@
    - @@ -110,14 +110,18 @@
    {% endif %} -
    - - - +
    + +
    + +
    +
    {% endblock %} diff --git a/templates/web/developers/applications.html.twig b/templates/web/developers/applications.html.twig index 63da01ba29..9e6f523598 100644 --- a/templates/web/developers/applications.html.twig +++ b/templates/web/developers/applications.html.twig @@ -66,4 +66,25 @@
    + + {% endblock %} diff --git a/templates/web/lightbox/index.html.twig b/templates/web/lightbox/index.html.twig index 70fb42608b..38c7b45b9c 100644 --- a/templates/web/lightbox/index.html.twig +++ b/templates/web/lightbox/index.html.twig @@ -20,7 +20,7 @@
    + + {{ form_label(formdata, null, { 'label_attr': {'class': 'label-aggregation'} @@ -22,6 +47,39 @@ {% endif %} {% endfor %} - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/templates/web/common/menubar.html.twig b/templates/web/common/menubar.html.twig index 772a86c497..80443dd6b3 100644 --- a/templates/web/common/menubar.html.twig +++ b/templates/web/common/menubar.html.twig @@ -186,8 +186,8 @@ @@ -252,7 +252,7 @@ {% endif %} + infos="
    {{ app['phraseanet.version'].getName() }} (V{{ app['phraseanet.version'].getNumber() }})   gitlog
    ">{{ 'phraseanet:: a propos' | trans }}
    - - {% for basket in baskets_collection %} + {% for basket in baskets_collection | sort | reverse%} {% if basket.getValidation() %} {% set basket_length = basket.getElements().count() %} - + {% set counter = ( counter | default(0) ) + 1 %} + +
    +

    {{ 'Validations' | trans }}

    @@ -29,10 +29,12 @@
    @@ -84,20 +86,26 @@ + {% if counter == 3 %}{% endif %} + {% endif %} {% endfor %} + - - {% for basket in baskets_collection %} + {% for basket in baskets_collection | sort | reverse%} {% if basket.getValidation is null %} {% set basket_length = basket.getElements().count() %} - + {% set counter = ( counter | default(0) ) + 1 %} + {% set counter_length = baskets_collection.length() %} + +
    {{ 'lightbox::See_more_feedback' | trans }}
    +

    {{ 'Paniers' | trans }}

    {{ 'Voici vos paniers' | trans }}
    @@ -140,9 +148,14 @@ + + {% if counter == 3 %}{% endif %} + {% endif %} {% endfor %} + +
    {{ 'lightbox::see_more_basket' | trans }}
    diff --git a/templates/web/prod/actions/edit_default.html.twig b/templates/web/prod/actions/edit_default.html.twig index fd1a10a269..a7d5f932fe 100644 --- a/templates/web/prod/actions/edit_default.html.twig +++ b/templates/web/prod/actions/edit_default.html.twig @@ -126,6 +126,7 @@ {% set actionable = recordsRequest|length %} {% set not_actionable = recordsRequest.received|length - actionable %} +{% set editing_top_box_height = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'editing_top_box') %}
    @@ -135,8 +136,7 @@
    -
    +
    diff --git a/templates/web/prod/index.html.twig b/templates/web/prod/index.html.twig index 43c4255fa8..11a2427908 100644 --- a/templates/web/prod/index.html.twig +++ b/templates/web/prod/index.html.twig @@ -183,6 +183,55 @@
    {% if GV_thesaurus %}
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +

    {{ 'index::advance_search: facet-order' | trans }}

    +
    + {% set order_facet = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'order_facet') %} + +
    +
    +
    +

    {{ 'index::advance_search: facet-values-order' | trans }}

    +
    + {% set facet_values_order = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet_values_order') %} + +
    +
    +
    +
    +
    +
    +
    {% include 'prod/tab_thesaurus.html.twig' with {has_access_to_module: app.getAclForUser(app.getAuthenticatedUser()).has_access_to_module('thesaurus')} %} @@ -326,6 +375,9 @@
    + + +
    @@ -811,30 +863,6 @@

    {{ 'index::advance_search: facet' | trans }}

    -

    {{ 'index::advance_search: facet-order' | trans }}

    -
    - {% set order_facet = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'order_facet') %} - -
    -

    {{ 'index::advance_search: facet-values-order' | trans }}

    -
    - {% set facet_values_order = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet_values_order') %} - -
    {% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %}
    - {#
    {{ 'La recherche s\'effectue grâce à la boîte de dialogue qui se trouve en haut à gauche de l\'écran.' | trans }}#} - {#{{ 'Sachez que vous pouvez utiliser les opérateurs ou caractères spéciaux suivants :' | trans }}
    #} - {#
    {{ '* , ? , ET , OU , SAUF , DANS , DERNIERS , TOUT (ou AND , OR , EXCEPT , LAST , ALL)' | trans }}
    #} - - {#
    {{ 'Caractères de troncature' | trans }}
    #} - - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {#
    {{ 'auto*' | trans }} {{ 'retourne "automobile", "automate", "autoroute", ...' | trans }}
    {{ 'dé?it' | trans }} {{ 'retourne "délit", "débit", ...' | trans }}
    #} - - {#
    {{ 'Visualiser tous les enregistrements / les derniers enregistrements' | trans }}
    #} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {#
    {{ 'TOUT' | trans }}{{ 'retourne tous les enregistrements des collections selectionnees' | trans }}
    {{ 'LAST 20' | trans }}{{ 'retourne les 20 derniers enregistrements archives dans les collections selectionnees' | trans }}
    #} - - {#
    {{ 'Recherche multicritères' | trans }}
    #} - {#{{ 'Vous pouvez affiner votre recherche avec les opérateurs : ET, OU, SAUF ou DANS' | trans }}
    #} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {##} - {#
    {{ 'sport' | trans }} ET {{ 'automobile' | trans }}{{ 'retourne les documents comprenant les deux mots.' | trans }}
    {{ 'journal OU jt' | trans }}{{ 'retourne les documents comprenant un mot et/ou l\'autre.' | trans }}
    {{ 'cannes SAUF festival' | trans }}{{ 'retourne les documents comprenant cannes sans le mot festival.' | trans }}
    {{ 'thalassa DANS titre' | trans }}{{ 'retourne les documents où le terme est au moins présent dans le titre, en évitant par exemple celles où le terme est uniquement cité dans la légende.' | trans }}
    #} - - {#
    #} - {#

    {{ 'Attention' | trans }}

    #} - {#

    {{ 'pour chercher une phrase contenant un des mots-clé ci-dessus, utilisez les guillemets :' | trans }}

    #} - {#"{{ 'C dans l\'air' | trans }}"#} - {#, "{{ 'Et Dieu créa la femme' | trans }}"#} - {#, "{{ 'bijou en or' | trans }}"#} - {#, "{{ 'tout le sport' | trans }}"#} - {#
    #} +
    +

    {{ 'help::help-search: OR' | trans }}

    +
    +

    + {{ 'help::help-search: relaunch search without filter' | trans }} +

    -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/web/prod/upload/lazaret.html.twig b/templates/web/prod/upload/lazaret.html.twig index eb0c9f19d0..95abc53385 100644 --- a/templates/web/prod/upload/lazaret.html.twig +++ b/templates/web/prod/upload/lazaret.html.twig @@ -356,15 +356,20 @@ var elements = []; var nbElement = 0; - if (nbProposals >= 1) { + + + if (nbProposals > 1) { elements = $(".selected", container); nbElement = elements.length; - } else { - return false; + } else if (nbProposals == 1) { + elements = $(".records-subititution > div", container); + } else { + return false; } - if (nbElement === 0) { + if (nbElement === 0 && nbProposals > 1) { alert(language.selectOneRecord); + return false; } else if (nbElement > 1) { alert(language.onlyOneRecord); diff --git a/tests/Alchemy/Tests/Phrasea/SearchEngine/Structure/StructureTest.php b/tests/Alchemy/Tests/Phrasea/SearchEngine/Structure/StructureTest.php index 27f01811c1..b3bde05cd9 100644 --- a/tests/Alchemy/Tests/Phrasea/SearchEngine/Structure/StructureTest.php +++ b/tests/Alchemy/Tests/Phrasea/SearchEngine/Structure/StructureTest.php @@ -20,7 +20,6 @@ class StructureTest extends \PHPUnit_Framework_TestCase $this->assertEmpty($structure->getAllFields()); $this->assertEmpty($structure->getUnrestrictedFields()); $this->assertEmpty($structure->getPrivateFields()); - $this->assertEmpty($structure->getFacetFields()); $this->assertEmpty($structure->getThesaurusEnabledFields()); $this->assertEmpty($structure->getDateFields()); } @@ -95,19 +94,6 @@ class StructureTest extends \PHPUnit_Framework_TestCase $this->assertNotContains($unrestricted_field, $private_fields); } - public function testGetFacetFields() - { - $facet = new Field('foo', FieldMapping::TYPE_STRING, ['facet' => Field::FACET_NO_LIMIT]); - $not_facet = new Field('bar', FieldMapping::TYPE_STRING, ['facet' => Field::FACET_DISABLED]); - $structure = new Structure(); - $structure->add($facet); - $this->assertContains($facet, $structure->getFacetFields()); - $structure->add($not_facet); - $facet_fields = $structure->getFacetFields(); - $this->assertContains($facet, $facet_fields); - $this->assertNotContains($not_facet, $facet_fields); - } - public function testGetDateFields() { $string = new Field('foo', FieldMapping::TYPE_STRING); diff --git a/yarn.lock b/yarn.lock index 7f6bc0bfd7..8eae8692f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7577,10 +7577,10 @@ phraseanet-common@^0.4.5-d: js-cookie "^2.1.0" pym.js "^1.3.1" -phraseanet-production-client@0.34.116-d: - version "0.34.116-d" - resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.116-d.tgz#74d2d3e14e68a66f3a64aeb1f857bad04a4491f0" - integrity sha512-x0IB2zQu0L+jQ/TXpHae8CPqCHsv9yanp254hAcnuwEQ88cig4oNU8JLKxPvwt0d3WUQ5J2S0BdshdbfpFxBbw== +phraseanet-production-client@0.34.139-d: + version "0.34.139-d" + resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.139-d.tgz#27edf283275c427ba226ff8b6c9461511dd6c827" + integrity sha512-8lOeLbUpa2qBi08d4Tr3FbtKf4TmSvTWhPtwCm7bZxls14TMXnYl7JRFZoYEMGEB1n1tbYozrl/Oz4qV7Pn6Sg== dependencies: "@mapbox/mapbox-gl-language" "^0.9.2" "@turf/turf" "^5.1.6"