Merge branch 'master' into PHRAS-2008_add_notice

This commit is contained in:
Nicolas Maillat
2018-05-29 15:56:12 +02:00
committed by GitHub
4 changed files with 280 additions and 245 deletions

View File

@@ -284,11 +284,20 @@ class ElasticsearchOptions
'label' => 'Aperture', 'label' => 'Aperture',
'field' => 'metadata_tags.Aperture', 'field' => 'metadata_tags.Aperture',
'query' => 'meta.Aperture=%s', 'query' => 'meta.Aperture=%s',
'output_formatter' => function($value) {
return round($value, 1);
},
], ],
'shutterspeed_aggregate' => [ 'shutterspeed_aggregate' => [
'label' => 'Shutter speed', 'label' => 'Shutter speed',
'field' => 'metadata_tags.ShutterSpeed', 'field' => 'metadata_tags.ShutterSpeed',
'query' => 'meta.ShutterSpeed=%s', 'query' => 'meta.ShutterSpeed=%s',
'output_formatter' => function($value) {
if($value < 1.0 && $value != 0) {
$value = '1/' . round(1.0 / $value);
}
return $value . ' s.';
},
], ],
'flashfired_aggregate' => [ 'flashfired_aggregate' => [
'label' => 'FlashFired', 'label' => 'FlashFired',
@@ -297,6 +306,10 @@ class ElasticsearchOptions
'choices' => [ 'choices' => [
"aggregated (2 values: fired = 0 or 1)" => -1, "aggregated (2 values: fired = 0 or 1)" => -1,
], ],
'output_formatter' => function($value) {
static $map = ['0'=>"No flash", '1'=>"Flash"];
return array_key_exists($value, $map) ? $map[$value] : $value;
},
], ],
'framerate_aggregate' => [ 'framerate_aggregate' => [
'label' => 'FrameRate', 'label' => 'FrameRate',

View File

@@ -7,6 +7,7 @@ use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions;
use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure; use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure;
use Alchemy\Phrasea\SearchEngine\SearchEngineSuggestion; use Alchemy\Phrasea\SearchEngine\SearchEngineSuggestion;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use igorw;
class FacetsResponse class FacetsResponse
{ {
@@ -55,12 +56,21 @@ class FacetsResponse
private function buildBucketsValues($name, $buckets) private function buildBucketsValues($name, $buckets)
{ {
$values = array(); $values = array();
// does this aggregate has an output_formatter ? if not use a equality formatter
/** @var callable $formatter */
$formatter = igorw\get_in(
ElasticsearchOptions::getAggregableTechnicalFields(), [$name, 'output_formatter'],
function($v){return $v;}
);
foreach ($buckets as $bucket) { foreach ($buckets as $bucket) {
if (!isset($bucket['key']) || !isset($bucket['doc_count'])) { if (!isset($bucket['key']) || !isset($bucket['doc_count'])) {
$this->throwAggregationResponseError(); $this->throwAggregationResponseError();
} }
$values[] = array( $values[] = array(
'value' => $bucket['key'], 'value' => $formatter($bucket['key']),
'count' => $bucket['doc_count'], 'count' => $bucket['doc_count'],
'query' => $this->buildQuery($name, $bucket['key']), 'query' => $this->buildQuery($name, $bucket['key']),
); );

View File

@@ -74,6 +74,6 @@ class PhpRequirements extends RequirementCollection implements RequirementInterf
$this->addPhpIniRecommendation('session.use_cookies', true, true); $this->addPhpIniRecommendation('session.use_cookies', true, true);
$this->addPhpIniRecommendation('session.cookie_http_only', true, true); $this->addPhpIniRecommendation('session.cookie_http_only', true, true);
$this->addPhpIniRecommendation('session.cookie_secure', true, true); $this->addPhpIniRecommendation('session.cookie_secure', true, true, 'session.cookie_secure should be enabled in php.ini, but only if you use HTTPS');
} }
} }

File diff suppressed because it is too large Load Diff