diff --git a/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php b/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php index 30b4b84782..8cf04e7839 100644 --- a/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php +++ b/lib/Alchemy/Phrasea/Controller/Admin/SearchEngineController.php @@ -36,12 +36,14 @@ class SearchEngineController extends Controller return $this->app->redirectPath('admin_searchengine_form'); } - return $this->render('admin/search-engine/elastic-search.html.twig', [ + return $this->render('admin/search-engine/search-engine-settings.html.twig', [ 'form' => $form->createView(), 'indexer' => $this->app['elasticsearch.indexer'] ]); } + + public function dropIndexAction(Request $request) { $indexer = $this->app['elasticsearch.indexer']; @@ -87,4 +89,28 @@ class SearchEngineController extends Controller 'action' => $this->app->url('admin_searchengine_form'), ]); } + + /** + * @param Request $request + * @return \Symfony\Component\HttpFoundation\JsonResponse + */ + public function getSettingFromIndexAction(Request $request) + { + if (!$request->isXmlHttpRequest()) { + $this->app->abort(400); + } + $indexer = $this->app['elasticsearch.indexer']; + $index = $request->get('index'); + if (!$indexer->indexExists() || is_null($index)) + { + return $this->app->json([ + 'success' => false, + 'message' => $this->app->trans('An error occurred'), + ]); + } + return $this->app->json([ + 'success' => true, + 'response' => $indexer->getSettings(['index' => $index]) + ]); + } } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php b/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php index d9359113f3..b707d6e894 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/QueryController.php @@ -15,6 +15,7 @@ use Alchemy\Phrasea\Cache\Exception; use Alchemy\Phrasea\Collection\Reference\CollectionReference; use Alchemy\Phrasea\Controller\Controller; use Alchemy\Phrasea\Core\Configuration\DisplaySettingService; +use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions; use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContextFactory; use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure; use Alchemy\Phrasea\SearchEngine\Elastic\ElasticSearchEngine; @@ -280,11 +281,12 @@ class QueryController extends Controller $json['parsed_query'] = $result->getEngineQuery(); /** End debug */ - $fieldLabels = [ - 'Base_Name' => $this->app->trans('prod::facet:base_label'), - 'Collection_Name' => $this->app->trans('prod::facet:collection_label'), - 'Type_Name' => $this->app->trans('prod::facet:doctype_label'), - ]; + $fieldLabels = []; + // add technical fields + foreach(ElasticsearchOptions::getAggregableTechnicalFields() as $k => $f) { + $fieldLabels[$k] = $this->app->trans($f['label']); + } + // add databox fields foreach ($this->app->getDataboxes() as $databox) { foreach ($databox->get_meta_structure() as $field) { if (!isset($fieldLabels[$field->get_name()])) { diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Admin/SearchEngine.php b/lib/Alchemy/Phrasea/ControllerProvider/Admin/SearchEngine.php index 139e133d09..797b34d1e4 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Admin/SearchEngine.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Admin/SearchEngine.php @@ -43,6 +43,9 @@ class SearchEngine implements ControllerProviderInterface, ServiceProviderInterf $controllers->post('/create_index', 'controller.admin.search-engine:createIndexAction') ->bind("admin_searchengine_create_index"); + $controllers->get('/setting_from_index', 'controller.admin.search-engine:getSettingFromIndexAction') + ->bind('admin_searchengine_setting_from_index'); + $controllers->match('/', 'controller.admin.search-engine:formConfigurationPanelAction') ->method('GET|POST') ->bind('admin_searchengine_form'); diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php index 033c4ec400..45865d31f4 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticSearchEngine.php @@ -19,6 +19,7 @@ use Alchemy\Phrasea\SearchEngine\Elastic\Search\FacetsResponse; use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryCompiler; use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContext; use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContextFactory; +use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Field AS ESField; use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Flag; use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure; use Alchemy\Phrasea\SearchEngine\SearchEngineInterface; @@ -29,6 +30,7 @@ use Closure; use Doctrine\Common\Collections\ArrayCollection; use Alchemy\Phrasea\Model\Entities\FeedEntry; use Alchemy\Phrasea\Application; +use databox_field; use Elasticsearch\Client; class ElasticSearchEngine implements SearchEngineInterface @@ -487,33 +489,36 @@ class ElasticSearchEngine implements SearchEngineInterface private function getAggregationQueryParams(SearchEngineOptions $options) { $aggs = []; - - // We always want a collection facet right now - $collection_facet_agg = array(); - $collection_facet_agg['terms']['field'] = 'collection_name'; - $aggs['Collection_Name'] = $collection_facet_agg; - - // We always want a base facet right now - $base_facet_agg = array(); - $base_facet_agg['terms']['field'] = 'databox_name'; - $aggs['Base_Name'] = $base_facet_agg; - - // We always want a type facet right now - $base_facet_agg = array(); - $base_facet_agg['terms']['field'] = 'type'; - $aggs['Type_Name'] = $base_facet_agg; - + // technical aggregates (enable + optional limit) + foreach (ElasticsearchOptions::getAggregableTechnicalFields() as $k => $f) { + $size = $this->options->getAggregableFieldLimit($k); + if ($size !== databox_field::FACET_DISABLED) { + if ($size === databox_field::FACET_NO_LIMIT) { + $size = ESField::FACET_NO_LIMIT; + } + $agg = [ + 'terms' => [ + 'field' => $f['field'], + 'size' => $size + ] + ]; + $aggs[$k] = $agg; + } + } + // 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 = []; - $agg['terms']['field'] = $field->getIndexField(true); - $agg['terms']['size'] = $field->getFacetValuesLimit(); + $agg = [ + 'terms' => [ + 'field' => $field->getIndexField(true), + 'size' => $field->getFacetValuesLimit() + ] + ]; $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 6cb64060ee..8d6ebc2e3d 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchOptions.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchOptions.php @@ -26,6 +26,10 @@ class ElasticsearchOptions /** @var bool */ private $highlight; + /** @var int[] */ + private $_customValues; + private $activeTab; + /** * Factory method to hydrate an instance from serialized options * @@ -34,15 +38,22 @@ class ElasticsearchOptions */ public static function fromArray(array $options) { - $options = array_replace([ + $defaultOptions = [ 'host' => '127.0.0.1', 'port' => 9200, 'index' => '', 'shards' => 3, 'replicas' => 0, 'minScore' => 4, - 'highlight' => true - ], $options); + 'highlight' => true, + 'activeTab' => null, + ]; + + foreach(self::getAggregableTechnicalFields() as $k => $f) { + $defaultOptions[$k.'_limit'] = 0; + } + $options = array_replace($defaultOptions, $options); + $self = new self(); $self->setHost($options['host']); @@ -52,6 +63,11 @@ class ElasticsearchOptions $self->setReplicas($options['replicas']); $self->setMinScore($options['minScore']); $self->setHighlight($options['highlight']); + $self->setActiveTab($options['activeTab']); + foreach(self::getAggregableTechnicalFields() as $k => $f) { + $self->setAggregableFieldLimit($k, $options[$k.'_limit']); + } + return $self; } @@ -61,7 +77,7 @@ class ElasticsearchOptions */ public function toArray() { - return [ + $ret = [ 'host' => $this->host, 'port' => $this->port, 'index' => $this->indexName, @@ -69,7 +85,13 @@ class ElasticsearchOptions 'replicas' => $this->replicas, 'minScore' => $this->minScore, 'highlight' => $this->highlight, + 'activeTab' => $this->activeTab ]; + foreach(self::getAggregableTechnicalFields() as $k => $f) { + $ret[$k.'_limit'] = $this->getAggregableFieldLimit($k); + } + + return $ret; } /** @@ -183,4 +205,121 @@ class ElasticsearchOptions { $this->highlight = $highlight; } + + public function setAggregableFieldLimit($key, $value) + { + $this->_customValues[$key.'_limit'] = $value; + } + + public function getAggregableFieldLimit($key) + { + return $this->_customValues[$key.'_limit']; + } + + public function getActiveTab() + { + return $this->activeTab; + } + public function setActiveTab($activeTab) + { + $this->activeTab = $activeTab; + } + + public function __get($key) + { + if(!array_key_exists($key, $this->_customValues)) { + $this->_customValues[$key] = 0; + } + return $this->_customValues[$key]; + } + + public function __set($key, $value) + { + $this->_customValues[$key] = $value; + } + + public static function getAggregableTechnicalFields() + { + return [ + 'base_aggregate' => [ + 'label' => 'prod::facet:base_label', + 'field' => 'databox_name', + 'query' => 'database:%s', + ], + 'collection_aggregate' => [ + 'label' => 'prod::facet:collection_label', + 'field' => 'collection_name', + 'query' => 'collection:%s', + ], + 'doctype_aggregate' => [ + 'label' => 'prod::facet:doctype_label', + 'field' => 'type', + 'query' => 'type:%s', + ], + 'camera_model_aggregate' => [ + 'label' => 'Camera Model', + 'field' => 'metadata_tags.CameraModel.raw', + 'query' => 'meta.CameraModel:%s', + ], + 'iso_aggregate' => [ + 'label' => 'ISO', + 'field' => 'metadata_tags.ISO', + 'query' => 'meta.ISO=%s', + ], + 'aperture_aggregate' => [ + 'label' => 'Aperture', + 'field' => 'metadata_tags.Aperture', + 'query' => 'meta.Aperture=%s', + ], + 'shutterspeed_aggregate' => [ + 'label' => 'Shutter speed', + 'field' => 'metadata_tags.ShutterSpeed', + 'query' => 'meta.ShutterSpeed=%s', + ], + 'flashfired_aggregate' => [ + 'label' => 'FlashFired', + 'field' => 'metadata_tags.FlashFired', + 'query' => 'meta.FlashFired=%s', + 'choices' => [ + "aggregated (2 values: fired = 0 or 1)" => -1, + ], + ], + 'framerate_aggregate' => [ + 'label' => 'FrameRate', + 'field' => 'metadata_tags.FrameRate', + 'query' => 'meta.FrameRate=%s', + ], + 'audiosamplerate_aggregate' => [ + 'label' => 'Audio Samplerate', + 'field' => 'metadata_tags.AudioSamplerate', + 'query' => 'meta.AudioSamplerate=%s', + ], + 'videocodec_aggregate' => [ + 'label' => 'Video codec', + 'field' => 'metadata_tags.VideoCodec', + 'query' => 'meta.VideoCodec:%s', + ], + 'audiocodec_aggregate' => [ + 'label' => 'Audio codec', + 'field' => 'metadata_tags.AudioCodec', + 'query' => 'meta.AudioCodec:%s', + ], + 'orientation_aggregate' => [ + 'label' => 'Orientation', + 'field' => 'metadata_tags.Orientation', + 'query' => 'meta.Orientation=%s', + ], + 'colorspace_aggregate' => [ + 'label' => 'Colorspace', + 'field' => 'metadata_tags.ColorSpace', + 'query' => 'meta.ColorSpace:%s', + ], + 'mimetype_aggregate' => [ + 'label' => 'MimeType', + 'field' => 'metadata_tags.MimeType', + 'query' => 'meta.MimeType:%s', + ], + ]; + } + } diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php index 7874269643..e1aaa3e378 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/ElasticsearchSettingsFormType.php @@ -10,6 +10,7 @@ namespace Alchemy\Phrasea\SearchEngine\Elastic; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Constraints\Range; @@ -29,14 +30,20 @@ class ElasticsearchSettingsFormType extends AbstractType ->add('indexName', 'text', [ 'label' => 'ElasticSearch index name', 'constraints' => new NotBlank(), + 'attr' =>['data-class'=>'inline'] ]) ->add('esSettingsDropIndexButton', 'button', [ 'label' => "Drop index", - 'attr' => ['data-id' => "esSettingsDropIndexButton"] + 'attr' => [ + 'data-id' => 'esSettingsDropIndexButton', + 'class' => 'btn btn-danger' + ] ]) ->add('esSettingsCreateIndexButton', 'button', [ 'label' => "Create index", - 'attr' => ['data-id' => "esSettingsCreateIndexButton"] + 'attr' => ['data-id' => "esSettingsCreateIndexButton", + 'class' => 'btn btn-success' + ] ]) ->add('shards', 'integer', [ 'label' => 'Number of shards', @@ -49,13 +56,59 @@ 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') - ; + ]); + + 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' + ] + ]); + } + + $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'); + + ; } public function getName() diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer.php index b4dc6ec4a4..8c24038239 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Indexer.php @@ -238,4 +238,14 @@ class Indexer // Flush just in case, it's a noop when already done $bulk->flush(); } + + public function getSettings(array $params) + { + try { + //Get setting from index + return $this->client->indices()->getSettings($params); + } catch (\Exception $e) { + return $e->getMessage(); + } + } } diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php index 4adcc43415..0d4cd60e93 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php @@ -3,6 +3,7 @@ namespace Alchemy\Phrasea\SearchEngine\Elastic\Search; use Alchemy\Phrasea\Exception\RuntimeException; +use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions; use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure; use Alchemy\Phrasea\SearchEngine\SearchEngineSuggestion; use Doctrine\Common\Collections\ArrayCollection; @@ -70,18 +71,14 @@ class FacetsResponse private function buildQuery($name, $value) { - switch($name) { - case 'Collection_Name': - return sprintf('collection:%s', $this->escaper->escapeWord($value)); - case 'Base_Name': - return sprintf('database:%s', $this->escaper->escapeWord($value)); - case 'Type_Name': - return sprintf('type:%s', $this->escaper->escapeWord($value)); - default: - return sprintf('field.%s = %s', - $this->escaper->escapeWord($name), - $this->escaper->escapeWord($value)); + if(array_key_exists($name, ElasticsearchOptions::getAggregableTechnicalFields())) { + $q = ElasticsearchOptions::getAggregableTechnicalFields()[$name]['query']; + $ret = sprintf($q, $this->escaper->escapeWord($value)); } + else { + $ret = sprintf('field.%s:%s', $this->escaper->escapeWord($name), $this->escaper->escapeWord($value)); + } + return $ret; } private function throwAggregationResponseError() diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index c2aacbe27e..489587d909 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. @@ -130,7 +130,7 @@ selectionnes]]> ausgewählt]]> - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %quantity% Stories attached to the WorkZone @@ -211,7 +211,7 @@ %total% reponses %total% Ergebnisse - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %total_count% results @@ -567,7 +567,7 @@ Activate highlight Highlight aktivieren - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Active @@ -911,6 +911,7 @@ Ein Fehler ist aufgetreten Controller/Admin/CollectionController.php Controller/Admin/DataboxController.php + Controller/Admin/SearchEngineController.php Controller/Api/V1Controller.php Controller/Api/V1Controller.php Controller/Prod/BasketController.php @@ -945,6 +946,7 @@ Aperture Blende + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1154,6 +1156,16 @@ Media/Subdef/Audio.php Media/Subdef/Video.php + + Audio Samplerate + Audio Samplerate + SearchEngine/Elastic/ElasticsearchOptions.php + + + Audio codec + Audio codec + SearchEngine/Elastic/ElasticsearchOptions.php + AudioSamplerate Audio Samplerate @@ -1413,6 +1425,7 @@ Camera Model Kameramodell + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1703,6 +1716,11 @@ Farbraum web/common/technical_datas.html.twig + + Colorspace + Colorspace + SearchEngine/Elastic/ElasticsearchOptions.php + Commande Bestellung @@ -1879,7 +1897,7 @@ Create index Index erstellen - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Create new subdef @@ -2423,7 +2441,7 @@ Drop index Drop index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2513,22 +2531,22 @@ ElasticSearch configuration ElasticSearch Einstellung - admin/search-engine/elastic-search.html.twig + admin/search-engine/search-engine-settings.html.twig ElasticSearch index name ElasticSearch Index Name - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch server host ElasticSearch Server Host - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch service port ElasticSearch Service Schnittstelle - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Email @@ -3089,6 +3107,11 @@ web/common/technical_datas.html.twig web/prod/index.html.twig + + FlashFired + FlashFired + SearchEngine/Elastic/ElasticsearchOptions.php + Flatten layers Flatten Layers @@ -3143,6 +3166,11 @@ Bildfrequenz Media/Subdef/Video.php + + FrameRate + FrameRate + SearchEngine/Elastic/ElasticsearchOptions.php + Frequence d'echantillonage Abtastfrequenz @@ -3224,6 +3252,11 @@ Eine Nachricht erhalten wenn ein Email Export fehlschlägt eventsmanager/notify/downloadmailfail.php + + Get setting form index + Get setting form index + 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. Gibt Ihrer Applikation die Möglichkeit, mit Phraseanet zu kommunizieren. Diese Webhook kann benutzt werden, um einige Aktionen auf Ihrer Applikationsseite auszulösen. @@ -3375,6 +3408,11 @@ IP web/account/sessions.html.twig + + ISO + ISO + SearchEngine/Elastic/ElasticsearchOptions.php + ISO sensibility ISO Empfindlichkeit @@ -4050,6 +4088,11 @@ Mime Typ web/common/technical_datas.html.twig + + MimeType + MimeType + SearchEngine/Elastic/ElasticsearchOptions.php + Minimum number of letters before truncation Mindestzeichenzahl vor der Kürzung @@ -4460,12 +4503,12 @@ Number of replicas Anzahl von Nachbauten - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of shards Anzahl von Scherben - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of threads to use for FFMpeg @@ -4550,6 +4593,11 @@ Einfach Controller/Root/LoginController.php + + Orientation + Orientation + SearchEngine/Elastic/ElasticsearchOptions.php + Original name ursprünglicher Name @@ -5608,6 +5656,8 @@ Save Speichern web/account/change-password.html.twig + admin/search-engine/elastic-search.html.twig + admin/search-engine/general-aggregation.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig web/developers/application.html.twig @@ -5843,6 +5893,7 @@ Shutter speed Verschlusszeit + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6451,7 +6502,7 @@ Thesaurus Min score Thesaurus Hits (minimal) - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Thesaurus branch @@ -7080,6 +7131,11 @@ Video Codec Media/Subdef/Video.php + + Video codec + Video codec + SearchEngine/Elastic/ElasticsearchOptions.php + Videos Videos @@ -8647,6 +8703,11 @@ Ein Benutzer hat sich angemeldet Notification/Mail/MailInfoSomebodyAutoregistered.php + + admin::search-engine: general-aggregation + admin::search-engine: general-aggregation + admin/search-engine/search-engine-settings.html.twig + admin::status: case A Off @@ -8790,7 +8851,7 @@ ascendant aufsteigend - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php audio @@ -9343,7 +9404,7 @@ date dajout hinzugefügtes Datum - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php decembre @@ -9358,7 +9419,7 @@ descendant absteigend - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php do you want to validate @@ -10220,7 +10281,7 @@ pertinence Relevanz - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php php.ini path @@ -10832,17 +10893,17 @@ prod::facet:base_label Datenbanken - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label Kollektionen - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label Dokumenttyp - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::recherche: Attention : la liste des bases selectionnees pour la recherche a ete changee. @@ -11077,12 +11138,12 @@ reponses:: %available% Resultats rappatries sur un total de %total% trouves %available% Ergebnisse abgerufen, für insgesamt %total% gefunden - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: %total% Resultats %total% Ergebnisse - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: Ces enregistrements vont etre definitivement supprimes et ne pourront etre recuperes. Etes vous sur ? diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 4638d71a8b..b257d182d3 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/Configuration/EmailFormType.php Form/Login/PhraseaAuthenticationForm.php @@ -130,7 +130,7 @@ selectionnes]]> selected]]> - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %quantity% Stories attached to the WorkZone @@ -211,7 +211,7 @@ %total% reponses %total% responses - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %total_count% results @@ -567,7 +567,7 @@ Activate highlight Activate highlight on full text (experimental). Impact the time performance of search. - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Active @@ -911,6 +911,7 @@ An error occurred Controller/Admin/CollectionController.php Controller/Admin/DataboxController.php + Controller/Admin/SearchEngineController.php Controller/Api/V1Controller.php Controller/Api/V1Controller.php Controller/Prod/BasketController.php @@ -945,6 +946,7 @@ Aperture Aperture + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1154,6 +1156,16 @@ Media/Subdef/Audio.php Media/Subdef/Video.php + + Audio Samplerate + Audio Samplerate + SearchEngine/Elastic/ElasticsearchOptions.php + + + Audio codec + Audio codec + SearchEngine/Elastic/ElasticsearchOptions.php + AudioSamplerate Audio sample rate @@ -1413,6 +1425,7 @@ Camera Model Camera model + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1703,6 +1716,11 @@ Color space web/common/technical_datas.html.twig + + Colorspace + Colorspace + SearchEngine/Elastic/ElasticsearchOptions.php + Commande Order @@ -1879,7 +1897,7 @@ Create index Create index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Create new subdef @@ -2232,7 +2250,7 @@ prod/results/entry.html.twig prod/results/feeds_entry.html.twig - + Derniers envois Last sent web/developers/application.html.twig @@ -2423,7 +2441,7 @@ Drop index Drop index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2513,22 +2531,22 @@ ElasticSearch configuration Elasticsearch configuration - admin/search-engine/elastic-search.html.twig + admin/search-engine/search-engine-settings.html.twig ElasticSearch index name ElasticSearch index name - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch server host ElasticSearch server host - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch service port ElasticSearch service port - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Email @@ -3089,6 +3107,11 @@ web/common/technical_datas.html.twig web/prod/index.html.twig + + FlashFired + FlashFired + SearchEngine/Elastic/ElasticsearchOptions.php + Flatten layers Flatten layers @@ -3143,6 +3166,11 @@ Frame rate Media/Subdef/Video.php + + FrameRate + FrameRate + SearchEngine/Elastic/ElasticsearchOptions.php + Frequence d'echantillonage Sampling frequency @@ -3224,6 +3252,11 @@ Get notification when e-mail export fails eventsmanager/notify/downloadmailfail.php + + Get setting form index + Get setting form index + 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. Gives the option to your application to communicate with Phraseanet. This Webhook can be used to trigger some actions on a third-party application. @@ -3375,6 +3408,11 @@ IP address web/account/sessions.html.twig + + ISO + ISO + SearchEngine/Elastic/ElasticsearchOptions.php + ISO sensibility ISO sensibility @@ -4050,6 +4088,11 @@ Mime type web/common/technical_datas.html.twig + + MimeType + MimeType + SearchEngine/Elastic/ElasticsearchOptions.php + Minimum number of letters before truncation Minimum number of characters before truncation @@ -4460,12 +4503,12 @@ Number of replicas Number of replicas - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of shards Number of shards - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of threads to use for FFMpeg @@ -4550,6 +4593,11 @@ Ordinary Controller/Root/LoginController.php + + Orientation + Orientation + SearchEngine/Elastic/ElasticsearchOptions.php + Original name Original name @@ -4625,7 +4673,7 @@ Past year WorkZone/Browser/Browser.html.twig - + Pause Pause Controller/Prod/LanguageController.php @@ -5608,6 +5656,8 @@ Save Save web/account/change-password.html.twig + admin/search-engine/elastic-search.html.twig + admin/search-engine/general-aggregation.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig web/developers/application.html.twig @@ -5843,6 +5893,7 @@ Shutter speed Shutter speed + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6451,7 +6502,7 @@ Thesaurus Min score Thesaurus Min score - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Thesaurus branch @@ -6995,7 +7046,7 @@ Users suggestion prod/actions/Push.html.twig - + Utilisation prevue: Intended use: prod/orders/order_item.html.twig @@ -7080,6 +7131,11 @@ Video codec Media/Subdef/Video.php + + Video codec + Video codec + SearchEngine/Elastic/ElasticsearchOptions.php + Videos Videos @@ -8648,6 +8704,11 @@ A new user has registered Notification/Mail/MailInfoSomebodyAutoregistered.php + + admin::search-engine: general-aggregation + admin::search-engine: general-aggregation + admin/search-engine/search-engine-settings.html.twig + admin::status: case A Off @@ -8791,7 +8852,7 @@ ascendant ascending - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php audio @@ -9344,7 +9405,7 @@ date dajout Add date - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php decembre @@ -9359,7 +9420,7 @@ descendant descending - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php do you want to validate @@ -10221,7 +10282,7 @@ pertinence Relevance - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php php.ini path @@ -10833,17 +10894,17 @@ prod::facet:base_label Base - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label Collection - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label Document type - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::recherche: Attention : la liste des bases selectionnees pour la recherche a ete changee. @@ -11078,12 +11139,12 @@ reponses:: %available% Resultats rappatries sur un total de %total% trouves %available% returnees results from a total of %total% found - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: %total% Resultats %total% results - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: Ces enregistrements vont etre definitivement supprimes et ne pourront etre recuperes. Etes vous sur ? diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index 3c131fe38e..7ae60ce347 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/Configuration/EmailFormType.php Form/Login/PhraseaAuthenticationForm.php @@ -130,7 +130,7 @@ selectionnes]]> sélectionnés]]> - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %quantity% Stories attached to the WorkZone @@ -211,7 +211,7 @@ %total% reponses %total% réponses - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %total_count% results @@ -567,7 +567,7 @@ Activate highlight Activer le surlignage - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Active @@ -911,6 +911,7 @@ Une erreur est survenue Controller/Admin/CollectionController.php Controller/Admin/DataboxController.php + Controller/Admin/SearchEngineController.php Controller/Api/V1Controller.php Controller/Api/V1Controller.php Controller/Prod/BasketController.php @@ -945,6 +946,7 @@ Aperture Ouverture + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1154,6 +1156,16 @@ Media/Subdef/Audio.php Media/Subdef/Video.php + + Audio Samplerate + Audio Samplerate + SearchEngine/Elastic/ElasticsearchOptions.php + + + Audio codec + Audio codec + SearchEngine/Elastic/ElasticsearchOptions.php + AudioSamplerate Taux d’échantillonnage audio @@ -1413,6 +1425,7 @@ Camera Model Type d'appareil numérique + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1703,6 +1716,11 @@ Espace colorimétrique web/common/technical_datas.html.twig + + Colorspace + Colorspace + SearchEngine/Elastic/ElasticsearchOptions.php + Commande Commande @@ -1879,7 +1897,7 @@ Create index Créer les index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Create new subdef @@ -2423,7 +2441,7 @@ Drop index Supprimer les index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2513,22 +2531,22 @@ ElasticSearch configuration Configuration Elasticsearch - admin/search-engine/elastic-search.html.twig + admin/search-engine/search-engine-settings.html.twig ElasticSearch index name Nom de l'index Elasticsearch - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch server host Hôte du serveur Elasticsearch - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch service port Port de service Elasticsearch - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Email @@ -3089,6 +3107,11 @@ web/common/technical_datas.html.twig web/prod/index.html.twig + + FlashFired + FlashFired + SearchEngine/Elastic/ElasticsearchOptions.php + Flatten layers Aplatir les calques @@ -3143,6 +3166,11 @@ Nombre d'images par seconde Media/Subdef/Video.php + + FrameRate + FrameRate + SearchEngine/Elastic/ElasticsearchOptions.php + Frequence d'echantillonage Fréquence d'échantillonnage @@ -3224,6 +3252,11 @@ Obtenir une notification quand un export par e-mail échoue eventsmanager/notify/downloadmailfail.php + + Get setting form index + Get setting form index + 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. Donne la possibilité à votre application de communiquer avec Phraseanet. Ce Webhook peut être utilisé pour déclencher des actions sur l'application distante. @@ -3375,6 +3408,11 @@ Adresse IP web/account/sessions.html.twig + + ISO + ISO + SearchEngine/Elastic/ElasticsearchOptions.php + ISO sensibility Sensibilité ISO @@ -4050,6 +4088,11 @@ Type Mime web/common/technical_datas.html.twig + + MimeType + MimeType + SearchEngine/Elastic/ElasticsearchOptions.php + Minimum number of letters before truncation Nombre minimal de caractères avant la troncature @@ -4460,12 +4503,12 @@ Number of replicas Nombre de répliques (Replica Shards) - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of shards Nombre de Shards Elastic - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of threads to use for FFMpeg @@ -4550,6 +4593,11 @@ Normale Controller/Root/LoginController.php + + Orientation + Orientation + SearchEngine/Elastic/ElasticsearchOptions.php + Original name Le nom de fichier original @@ -5610,6 +5658,8 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Save Sauvegarder web/account/change-password.html.twig + admin/search-engine/elastic-search.html.twig + admin/search-engine/general-aggregation.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig web/developers/application.html.twig @@ -5845,6 +5895,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Shutter speed Vitesse d'obturateur + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6296,7 +6347,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis web/login/cgus.html.twig login/layout/base-layout.html.twig - + The Phraseanet Web API allows other web application to rely on this instance L'API Web Phraseanet permet à d'autres applications web de se reposer sur cette instance Form/Configuration/APIClientsFormType.php @@ -6453,7 +6504,7 @@ 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 Thesaurus branch @@ -6997,7 +7048,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Suggestion d'utilisateurs prod/actions/Push.html.twig - + Utilisation prevue: Utilisation prévue: prod/orders/order_item.html.twig @@ -7082,6 +7133,11 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Codec Vidéos Media/Subdef/Video.php + + Video codec + Video codec + SearchEngine/Elastic/ElasticsearchOptions.php + Videos Vidéos @@ -8651,6 +8707,11 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Un utilisateur s'est inscrit Notification/Mail/MailInfoSomebodyAutoregistered.php + + admin::search-engine: general-aggregation + admin::search-engine: general-aggregation + admin/search-engine/search-engine-settings.html.twig + admin::status: case A Off @@ -8794,7 +8855,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le ascendant Ascendant - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php audio @@ -9347,7 +9408,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le date dajout Date d'ajout - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php decembre @@ -9362,7 +9423,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le descendant Descendant - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php do you want to validate @@ -10224,7 +10285,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le pertinence Pertinence - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php php.ini path @@ -10836,17 +10897,17 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod::facet:base_label Bases - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label Collections - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label Types de documents - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::recherche: Attention : la liste des bases selectionnees pour la recherche a ete changee. @@ -11081,12 +11142,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le reponses:: %available% Resultats rappatries sur un total de %total% trouves %available% résultats récupérés sur un total de %total% trouvés - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: %total% Resultats %total% résultats - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: Ces enregistrements vont etre definitivement supprimes et ne pourront etre recuperes. Etes vous sur ? diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index f368872247..ccbaed3e44 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. @@ -134,7 +134,7 @@ selectionnes]]> selectionnes]]> - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %quantity% Stories attached to the WorkZone @@ -215,7 +215,7 @@ %total% reponses %total% reponses - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php %total_count% results @@ -571,7 +571,7 @@ Activate highlight Activate highlight - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Active @@ -915,6 +915,7 @@ Er is een fout opgetreden Controller/Admin/CollectionController.php Controller/Admin/DataboxController.php + Controller/Admin/SearchEngineController.php Controller/Api/V1Controller.php Controller/Api/V1Controller.php Controller/Prod/BasketController.php @@ -949,6 +950,7 @@ Aperture Diafragma + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1158,6 +1160,16 @@ Media/Subdef/Audio.php Media/Subdef/Video.php + + Audio Samplerate + Audio Samplerate + SearchEngine/Elastic/ElasticsearchOptions.php + + + Audio codec + Audio codec + SearchEngine/Elastic/ElasticsearchOptions.php + AudioSamplerate AudioSamplerate @@ -1417,6 +1429,7 @@ Camera Model Cameramodel + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -1707,6 +1720,11 @@ Kleurruimte web/common/technical_datas.html.twig + + Colorspace + Colorspace + SearchEngine/Elastic/ElasticsearchOptions.php + Commande Bestelling @@ -1883,7 +1901,7 @@ Create index Create index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Create new subdef @@ -2427,7 +2445,7 @@ Drop index Drop index - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Duree @@ -2517,22 +2535,22 @@ ElasticSearch configuration ElasticSearch configuration - admin/search-engine/elastic-search.html.twig + admin/search-engine/search-engine-settings.html.twig ElasticSearch index name ElasticSearch index name - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch server host ElasticSearch server host - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php ElasticSearch service port ElasticSearch service port - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Email @@ -3093,6 +3111,11 @@ web/common/technical_datas.html.twig web/prod/index.html.twig + + FlashFired + FlashFired + SearchEngine/Elastic/ElasticsearchOptions.php + Flatten layers Flatten layers @@ -3147,6 +3170,11 @@ Beelden per Seconden Media/Subdef/Video.php + + FrameRate + FrameRate + SearchEngine/Elastic/ElasticsearchOptions.php + Frequence d'echantillonage Samplefrequentie @@ -3228,6 +3256,11 @@ Krijg een melding wanneer een email export niet lukt eventsmanager/notify/downloadmailfail.php + + Get setting form index + Get setting form index + 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. Gives the option to your application to communicate with Phraseanet. This webhook can be used to trigger some actions on your application side. @@ -3379,6 +3412,11 @@ IP web/account/sessions.html.twig + + ISO + ISO + SearchEngine/Elastic/ElasticsearchOptions.php + ISO sensibility ISO waarde @@ -4054,6 +4092,11 @@ Mime type web/common/technical_datas.html.twig + + MimeType + MimeType + SearchEngine/Elastic/ElasticsearchOptions.php + Minimum number of letters before truncation Minimum aantal tekens alvorens te ledigen @@ -4464,12 +4507,12 @@ Number of replicas Number of replicas - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of shards Number of shards - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Number of threads to use for FFMpeg @@ -4554,6 +4597,11 @@ Gewoon Controller/Root/LoginController.php + + Orientation + Orientation + SearchEngine/Elastic/ElasticsearchOptions.php + Original name Originele naam @@ -5612,6 +5660,8 @@ Save Opslaan web/account/change-password.html.twig + admin/search-engine/elastic-search.html.twig + admin/search-engine/general-aggregation.html.twig task-manager/task-editor/task.html.twig web/developers/application.html.twig web/developers/application.html.twig @@ -5847,6 +5897,7 @@ Shutter speed Sluitersnelheid + SearchEngine/Elastic/ElasticsearchOptions.php web/common/technical_datas.html.twig @@ -6455,7 +6506,7 @@ Thesaurus Min score Thesaurus Min score - SearchEngine/Elastic/ElasticsearchSettingsFormType.php + SearchEngine/Elastic/ElasticsearchSettingsFormType.php Thesaurus branch @@ -7084,6 +7135,11 @@ Video Codec Media/Subdef/Video.php + + Video codec + Video codec + SearchEngine/Elastic/ElasticsearchOptions.php + Videos Video's @@ -8651,6 +8707,11 @@ een gebruiker heeft zich ingeschreven Notification/Mail/MailInfoSomebodyAutoregistered.php + + admin::search-engine: general-aggregation + admin::search-engine: general-aggregation + admin/search-engine/search-engine-settings.html.twig + admin::status: case A Case A @@ -8794,7 +8855,7 @@ ascendant aflopend - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php audio @@ -9347,7 +9408,7 @@ date dajout Datum toegevoegd - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php decembre @@ -9362,7 +9423,7 @@ descendant oplopend - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php do you want to validate @@ -10224,7 +10285,7 @@ pertinence relevantie - SearchEngine/Elastic/ElasticSearchEngine.php + SearchEngine/Elastic/ElasticSearchEngine.php php.ini path @@ -10836,17 +10897,17 @@ prod::facet:base_label prod::facet:base_label - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:collection_label prod::facet:collection_label - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::facet:doctype_label prod::facet:doctype_label - Controller/Prod/QueryController.php + SearchEngine/Elastic/ElasticsearchOptions.php prod::recherche: Attention : la liste des bases selectionnees pour la recherche a ete changee. @@ -11081,12 +11142,12 @@ reponses:: %available% Resultats rappatries sur un total de %total% trouves reponses:: %available% Resultats rappatries sur un total de %total% trouves - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: %total% Resultats reponses:: %total% Resultats - Controller/Prod/QueryController.php + Controller/Prod/QueryController.php reponses:: Ces enregistrements vont etre definitivement supprimes et ne pourront etre recuperes. Etes vous sur ? diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index e9542f0cc8..543f56fd73 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 324bce198f..5be6402725 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 6446b7e611..ba5092a8cc 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 7077d6f7e7..814e3268ce 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/admin/styles/main.scss b/resources/www/admin/styles/main.scss index 0ffe631229..6d37ea98ee 100644 --- a/resources/www/admin/styles/main.scss +++ b/resources/www/admin/styles/main.scss @@ -111,6 +111,13 @@ div.finder div.content div.title { white-space: nowrap; overflow: hidden; } + +//setting +.dumpfield { + margin-top:10px; + width: 400px; +} + /******* MAIN MENU ************************************************************/ @@ -336,6 +343,104 @@ div.switch_right.unchecked { margin-top: 5px; } +/******* SEARCH ENGINE SETTINGS ***************************************************/ +.search-engine-tabs { + background: 0; + border: 0; + .top-bar-shadow { + margin-top: 1px; + background: #aaa8a5; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(bottom, #aaa8a5 , rgba(255, 255, 255, 0.15)); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(bottom, #aaa8a5 , rgba(255, 255, 255, 0.15)); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(bottom, #aaa8a5 , rgba(255, 255, 255, 0.15)); /* For Firefox 3.6 to 15 */ + background: linear-gradient(to bottom, #aaa8a5 , rgba(255, 255, 255, 0.15)); /* Standard syntax */ + height: 4px; + } + .ui-tabs-active { + background: #9EA09D !important; + a { + color: #FFFFFF !important; + } + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { + border: 0; + background: #EFF0F0; + a { + color: #9EA09D; + } + } +} + +#elasticsearch_settings_esSettingsDropIndexButton, #elasticsearch_settings_esSettingsCreateIndexButton { + margin-bottom: 20px; +} + +#elasticsearch_settings_save { + padding: 15px; + margin-top: 20px; + &::before { + content: "\F0A0"; + font-family: "FontAwesome"; + margin-right: 5px; + } +} + +#elasticsearch_settings_esSettingFromIndex { + margin-top: 20px; +} + +#elastic-search, #general-aggregation { + background: #ffffff; +} + +.general-aggregation-layout { + margin-top: 20px; + width: 450px; + button.btn-primary { + margin-left: 4px; + margin-top: 20px; + padding: 15px; + width: 180px; + i { + margin-right: 5px; + } + } +} + +.aggregation-collection { + li { + border: 1px solid #ccc; + background: #FFF; + color: #000; + height: 30px; + margin: 4px; + padding: 20px; + table { + width: 100%; + display: inline-table; + vertical-align: middle; + height: 100%; + table-layout: fixed; + } + } + .label-aggregation { + font-weight: bold; + font-size: 16px; + color: #666; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + display: inline-block; + width: 100%; + vertical-align: middle; + margin-bottom: 0px; + } + select { + float: right; + width: 100%; + } +} + @import './databases'; @import './fields'; @import './tables'; diff --git a/templates/web/admin/search-engine/elastic-search.html.twig b/templates/web/admin/search-engine/elastic-search.html.twig index e6eaa97148..bd5ed24aae 100644 --- a/templates/web/admin/search-engine/elastic-search.html.twig +++ b/templates/web/admin/search-engine/elastic-search.html.twig @@ -1,29 +1,6 @@ -

{{ 'ElasticSearch configuration' | trans }}

- -{{ form_start(form) }} - {{ form_errors(form) }} - - {{ form_row(form.host) }} - {{ form_row(form.port) }} - -
- {{ form_label(form.indexName) }} - {{ form_errors(form.indexName) }} - {{ form_widget(form.indexName) }} - - {{ form_label(form.esSettingsDropIndexButton) }} - {{ form_widget(form.esSettingsDropIndexButton) }} - - {{ form_label(form.esSettingsCreateIndexButton) }} - {{ form_widget(form.esSettingsCreateIndexButton) }} -
- - {{ form_row(form.shards) }} - {{ form_row(form.replicas) }} - {{ form_row(form.minScore) }} - {{ form_row(form.highlight) }} - {{ form_row(form.save) }} -{{ form_end(form) }} +{{ form(form) }} +
@@ -33,13 +10,16 @@
Really drop index ?
{% block javascript %} - - -{% endblock %} + + + +{% endblock %} \ No newline at end of file diff --git a/templates/web/admin/search-engine/general-aggregation.html.twig b/templates/web/admin/search-engine/general-aggregation.html.twig new file mode 100644 index 0000000000..d4b83ba31b --- /dev/null +++ b/templates/web/admin/search-engine/general-aggregation.html.twig @@ -0,0 +1,27 @@ +
+
    + {% for formdata in form %} + {% set attr = formdata.vars['attr']|join(',') %} + {% if attr == 'aggregate' %} +
  • + + + + + + + +
    + {{ form_label(formdata, null, { + 'label_attr': {'class': 'label-aggregation'} + }) }} + + {{ form_widget(formdata) }} +
    +
  • + {% endif %} + {% endfor %} +
+ +
\ No newline at end of file diff --git a/templates/web/admin/search-engine/search-engine-settings.html.twig b/templates/web/admin/search-engine/search-engine-settings.html.twig new file mode 100644 index 0000000000..6ade653866 --- /dev/null +++ b/templates/web/admin/search-engine/search-engine-settings.html.twig @@ -0,0 +1,33 @@ +{{ form_start(form) }} + + +{% block javascript %} + +{% endblock %} +{{ form_end(form) }} \ No newline at end of file diff --git a/www/scripts/apps/admin/search-engine/views/es_config.js b/www/scripts/apps/admin/search-engine/views/es_config.js index 23ba10f4ee..6085645a75 100644 --- a/www/scripts/apps/admin/search-engine/views/es_config.js +++ b/www/scripts/apps/admin/search-engine/views/es_config.js @@ -37,3 +37,32 @@ function searchEngineConfigurationFormInit(indexExists) { }); } } + +$("input[data-class='inline']").parent('div').css('display','inline-block'); +$("button[data-class='inline']").parent('div').css({'display':'inline-block'}); +$("button[data-class='inline']").css({'margin-left':'10px', 'margin-bottom': '10px'}); +//Get setting from index +function esSettingFromIndex() { + $('#elasticsearch_settings_dumpField').removeClass('hide'); + var data = {}; + data.index = $('#elasticsearch_settings_indexName').val(); + var url = pathGetIndexSettings; + $.ajax({ + type: "GET", + url: url, + dataType: 'json', + data : data, + success: function (data) { + if (data.success) { + $('#elasticsearch_settings_dumpField').text(JSON.stringify(data.response)); + } else { + $('#elasticsearch_settings_dumpField').text(data.message); + } + } + , error: function (jqXHR, textStatus, errorThrown) { + alert("Error XML:\n\n" + jqXHR.responseText); + } + }); + + return false; +}