diff --git a/backend/src/main/java/fr/inra/urgi/faidare/config/FaidareProperties.java b/backend/src/main/java/fr/inra/urgi/faidare/config/FaidareProperties.java index c4cba9858db96ceb01def7b3a5c26d7bcf759722..ea790cf2a731e625f6ccf9b0843b7afd9ba4132a 100644 --- a/backend/src/main/java/fr/inra/urgi/faidare/config/FaidareProperties.java +++ b/backend/src/main/java/fr/inra/urgi/faidare/config/FaidareProperties.java @@ -31,6 +31,13 @@ public class FaidareProperties { private String securityUserGroupWsUrl; private String securityUserGroupWsToken; + /** + * The URL used by the germplasm card to generate links to the faidare search application + * (i.e. the faidare flavor of data-discovery). + */ + @NotBlank + private String searchUrl; + private List<DataSourceImpl> dataSources = new ArrayList<>(); public String getElasticsearchIndexingTemplate() { @@ -118,6 +125,11 @@ public class FaidareProperties { .replace("{documentType}", documentType.toLowerCase()); } + public String getSearchUrl() { + return searchUrl; + } - + public void setSearchUrl(String searchUrl) { + this.searchUrl = searchUrl; + } } diff --git a/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareDialect.java b/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareDialect.java index 2a02a842a28ba411f8f6d16d6c5254e41a53524b..26bfc5611683c9a854efbe84084a2164827c57f6 100644 --- a/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareDialect.java +++ b/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareDialect.java @@ -1,5 +1,6 @@ package fr.inra.urgi.faidare.web.thymeleaf; +import fr.inra.urgi.faidare.config.FaidareProperties; import org.springframework.stereotype.Component; import org.thymeleaf.dialect.AbstractDialect; import org.thymeleaf.dialect.IExpressionObjectDialect; @@ -12,14 +13,15 @@ import org.thymeleaf.expression.IExpressionObjectFactory; @Component public class FaidareDialect extends AbstractDialect implements IExpressionObjectDialect { - private final IExpressionObjectFactory FAIDARE_EXPRESSION_OBJECTS_FACTORY = new FaidareExpressionFactory(); + private final IExpressionObjectFactory faidareExpressionFactory; - protected FaidareDialect() { + public FaidareDialect(FaidareProperties faidareProperties) { super("faidare"); + faidareExpressionFactory = new FaidareExpressionFactory(faidareProperties.getSearchUrl()); } @Override public IExpressionObjectFactory getExpressionObjectFactory() { - return FAIDARE_EXPRESSION_OBJECTS_FACTORY; + return faidareExpressionFactory; } } diff --git a/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressionFactory.java b/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressionFactory.java index e873375c1a7681d2837c0bf6591174d1aa557e3d..8ccd5fe9aadb56f9799d230e153b37c3525d37bd 100644 --- a/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressionFactory.java +++ b/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressionFactory.java @@ -16,6 +16,12 @@ public class FaidareExpressionFactory implements IExpressionObjectFactory { private static final Set<String> ALL_EXPRESSION_OBJECT_NAMES = Collections.singleton(FAIDARE_EVALUATION_VARIABLE_NAME); + private final String searchUrl; + + public FaidareExpressionFactory(String searchUrl) { + this.searchUrl = searchUrl; + } + @Override public Set<String> getAllExpressionObjectNames() { return ALL_EXPRESSION_OBJECT_NAMES; @@ -23,7 +29,7 @@ public class FaidareExpressionFactory implements IExpressionObjectFactory { @Override public Object buildObject(IExpressionContext context, String expressionObjectName) { - return new FaidareExpressions(context.getLocale()); + return new FaidareExpressions(context.getLocale(), searchUrl); } @Override diff --git a/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressions.java b/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressions.java index e5da621504f8f4b8b41ec64ce7abddf350274e86..a88283830f9c0fb1408a3b59423bd74456933db8 100644 --- a/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressions.java +++ b/backend/src/main/java/fr/inra/urgi/faidare/web/thymeleaf/FaidareExpressions.java @@ -57,9 +57,11 @@ public class FaidareExpressions { } private final Locale locale; + private final String searchUrl; - public FaidareExpressions(Locale locale) { + public FaidareExpressions(Locale locale, String searchUrl) { this.locale = locale; + this.searchUrl = searchUrl; } public String toSiteParam(String siteId) { @@ -85,7 +87,7 @@ public class FaidareExpressions { } public String searchUrl() { - return "https://urgi.versailles.inrae.fr/faidare/search"; + return searchUrl; } private String collPopTitle(CollPopVO collPopVO, Function<String, String> nameTransformer) { diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index 8a14dabc7c937b66f11118467eb523667c82994e..c914130444ca8fa5f2d53e0f30adfeb52100324d 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -43,6 +43,8 @@ faidare: security-user-group-ws-url: security-user-group-ws-token: + search-url: https://urgi.versailles.inrae.fr/faidare/search + # TODO: Update URIs to match URL (update in generated JSON document too) # Warning! URIs should match with FAIDARE datadiscovery 'schema:includedInDataCatalog' field value data-sources: