diff --git a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/CommonConstants.java b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/CommonConstants.java index 1afb37b18357afbdf10bee1fe5f35b3eae987b94..0c41fb04347aaae8dfb42fe758e6ee8a75360247 100644 --- a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/CommonConstants.java +++ b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/CommonConstants.java @@ -193,6 +193,12 @@ public class CommonConstants { public static final String PORTAL_URL = "PORTAL_URL"; + public static final String ARCHIVES_SEARCH_URL = "ARCHIVES_SEARCH_URL"; + + public static final String INGEST_URL = "INGEST_URL"; + + public static final String REFERENTIAL_URL = "REFERENTIAL_URL"; + public static final String CAS_LOGIN_URL = "CAS_URL"; public static final String CAS_LOGOUT_URL = "CAS_LOGOUT_URL"; diff --git a/deployment/roles/vitamui/templates/ui-ingest/application.yml.j2 b/deployment/roles/vitamui/templates/ui-ingest/application.yml.j2 index 7a78b378a1658080e27102e3efeacc7a9843f1f3..f734e82d31a30f1ebb680a6e881042aa0cc0b567 100644 --- a/deployment/roles/vitamui/templates/ui-ingest/application.yml.j2 +++ b/deployment/roles/vitamui/templates/ui-ingest/application.yml.j2 @@ -108,6 +108,14 @@ ui-ingest: {% else %} ingest: "{{ url_prefix }}/ingest" {% endif %} + +{% if vitamui.archive_search.base_url is defined %} + archives-search: "{{ vitamui.archive_search.base_url }}" +{% else %} + archives-search: "{{ url_prefix }}/archive-search" +{% endif %} + + portal-categories: {% for id, category in vitamui_defaults.portal_categories.items() %} {{ id }}: diff --git a/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 b/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 index 9fe48f17c3150c1caa03c14397b6255f8680d365..9862200b5ca3d90b950a72d7d9600b825eba741e 100644 --- a/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 +++ b/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 @@ -92,7 +92,8 @@ ui-portal: portal: "{{ url_prefix }}" # TODO OMA : revoir avec les redirections du RP admin-identity: "{{ url_prefix }}/identity-admin" # TODO OMA : revoir avec les redirections du RP identity: "{{ url_prefix }}/identity" # TODO OMA : revoir avec les redirections du RP - + archives-search: "{{ url_prefix }}/archives-search" # TODO OMA : revoir avec les redirections du RP + referential: "{{ url_prefix }}/referential" # TODO OMA : revoir avec les redirections du RP ui: url: "{{ url_prefix }}" redirect-url: ${ui.url}/${ui-prefix} @@ -101,6 +102,9 @@ ui: portal: "{{ vitamui.portal.base_url}}" admin-identity: "{{ vitamui.identity_admin.base_url }}" identity: "{{ vitamui.identity.base_url }}" + ingest: "{{ vitamui.ingest.base_url }}" + archives-search: "{{ vitamui.archive_search.base_url }}" + referential: "{{ vitamui.referential.base_url }}" ui: url: "{{ vitamui.portal.base_url }}" diff --git a/ui/ui-archive-search/src/main/config/ui-archive-search-application-dev.yml b/ui/ui-archive-search/src/main/config/ui-archive-search-application-dev.yml index 44067dafff2ac317b46945147b6353b5eeb3a056..3efd2757f81c140d743779e10fd9984fe6dcb228 100644 --- a/ui/ui-archive-search/src/main/config/ui-archive-search-application-dev.yml +++ b/ui/ui-archive-search/src/main/config/ui-archive-search-application-dev.yml @@ -70,7 +70,8 @@ ui-archive-search: hostname-verification: false base-url: portal: "https://dev.vitamui.com:4200" - + archives-search: "https://dev.vitamui.com:4209/archive-search" + ingest: "https://dev.vitamui.com:4208/ingest" portal-categories: ingest_and_consultation: diff --git a/ui/ui-archive-search/src/main/config/ui-archive-search-application-recette.yml b/ui/ui-archive-search/src/main/config/ui-archive-search-application-recette.yml index b28fdf97f3c497ab136898eecb63b6a29aa52e31..a3ae35935500d8553325e1da8fa0ff9ea1094aef 100644 --- a/ui/ui-archive-search/src/main/config/ui-archive-search-application-recette.yml +++ b/ui/ui-archive-search/src/main/config/ui-archive-search-application-recette.yml @@ -43,7 +43,8 @@ ui-archive-search: hostname-verification: false base-url: portal: "https://dev.vitamui.com" - + archives-search: "https://dev.vitamui.com:4209/archive-search" + ingest: "https://dev.vitamui.com:4208/ingest" portal-categories: ingest_and_consultation: diff --git a/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/property/BaseUrl.java b/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/property/BaseUrl.java index a3183135145e6187dfe82c6c7fa99e7130c10d2f..e31b5435418e337dc8536fecd607397d520bfbb2 100644 --- a/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/property/BaseUrl.java +++ b/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/property/BaseUrl.java @@ -47,6 +47,12 @@ public class BaseUrl { private String adminIdentity; + private String archivesSearch; + + private String ingest; + + private String referential; + private String identity; } diff --git a/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/service/ApplicationService.java b/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/service/ApplicationService.java index bd1483305dd312bc4c784f09c9ad4afcc313cb82..ba9790716585ccee10ecdac62f627df4d8e1c934 100644 --- a/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/service/ApplicationService.java +++ b/ui/ui-commons/src/main/java/fr/gouv/vitamui/ui/commons/service/ApplicationService.java @@ -39,7 +39,11 @@ package fr.gouv.vitamui.ui.commons.service; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import fr.gouv.vitamui.commons.api.CommonConstants; -import fr.gouv.vitamui.commons.api.domain.*; +import fr.gouv.vitamui.commons.api.domain.ApplicationDto; +import fr.gouv.vitamui.commons.api.domain.Criterion; +import fr.gouv.vitamui.commons.api.domain.CriterionOperator; +import fr.gouv.vitamui.commons.api.domain.QueryDto; +import fr.gouv.vitamui.commons.api.domain.QueryOperator; import fr.gouv.vitamui.commons.api.enums.AttachmentType; import fr.gouv.vitamui.commons.api.logger.VitamUILogger; import fr.gouv.vitamui.commons.api.logger.VitamUILoggerFactory; @@ -63,7 +67,11 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -111,8 +119,9 @@ public class ApplicationService extends AbstractCrudService<ApplicationDto> { private Map<String, List<String>> listEnableExternalIdentifiers; - public ApplicationService(final UIProperties properties, final CasLogoutUrl casLogoutUrl, final IamExternalRestClientFactory factory, - final BuildProperties buildProperties) { + public ApplicationService(final UIProperties properties, final CasLogoutUrl casLogoutUrl, + final IamExternalRestClientFactory factory, + final BuildProperties buildProperties) { this.properties = properties; this.casLogoutUrl = casLogoutUrl; this.buildProperties = buildProperties; @@ -140,7 +149,7 @@ public class ApplicationService extends AbstractCrudService<ApplicationDto> { } private Map<String, List<String>> getListEnableExternalIdentifiers() { - if(listEnableExternalIdentifiers == null) { + if (listEnableExternalIdentifiers == null) { listEnableExternalIdentifiers = autoConfigurationVitam.getTenants(); } return listEnableExternalIdentifiers; @@ -151,12 +160,13 @@ public class ApplicationService extends AbstractCrudService<ApplicationDto> { final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); final Map<String, List<String>> externalIdentifiers = getListEnableExternalIdentifiers(); - LOGGER.info("Reading list of external identifiers {}", externalIdentifiers == null ? "null" : externalIdentifiers.toString()); + LOGGER.info("Reading list of external identifiers {}", + externalIdentifiers == null ? "null" : externalIdentifiers.toString()); - if(externalIdentifiers != null) { - if(listEnableExternalIdentifiers.containsKey(tenantId)) { + if (externalIdentifiers != null) { + if (listEnableExternalIdentifiers.containsKey(tenantId)) { final List<String> enabledApplications = listEnableExternalIdentifiers.get(tenantId); - return(enabledApplications.contains(identifier)); + return (enabledApplications.contains(identifier)); } } @@ -170,18 +180,23 @@ public class ApplicationService extends AbstractCrudService<ApplicationDto> { public Map<String, Object> getConf() { final Map<String, Object> configurationData = new HashMap<>(); configurationData.put(CommonConstants.PORTAL_URL, properties.getBaseUrl().getPortal()); + configurationData.put(CommonConstants.ARCHIVES_SEARCH_URL, properties.getBaseUrl().getArchivesSearch()); + configurationData.put(CommonConstants.INGEST_URL, properties.getBaseUrl().getIngest()); + configurationData.put(CommonConstants.REFERENTIAL_URL, properties.getBaseUrl().getReferential()); configurationData.put(CommonConstants.CAS_LOGIN_URL, getCasLoginUrl()); configurationData.put(CommonConstants.CAS_LOGOUT_URL, casLogoutUrl.getValue()); configurationData.put(CommonConstants.UI_URL, uiUrl); - configurationData.put(CommonConstants.LOGOUT_REDIRECT_UI_URL, casLogoutUrl.getValueWithRedirection(uiRedirectUrl)); + configurationData + .put(CommonConstants.LOGOUT_REDIRECT_UI_URL, casLogoutUrl.getValueWithRedirection(uiRedirectUrl)); configurationData.put(CommonConstants.THEME_COLORS, properties.getThemeColors()); configurationData.put(CommonConstants.PORTAL_TITLE, properties.getPortalTitle()); configurationData.put(CommonConstants.PORTAL_MESSAGE, properties.getPortalMessage()); configurationData.put(CommonConstants.CUSTOMER, properties.getCustomer()); String versionRelease = properties.getVersionRelease(); if (StringUtils.isEmpty(versionRelease)) { - versionRelease = Stream.of(buildProperties.get(VERSION_RELEASE_KEY).split("\\" + DELIMITER)).limit(2).map(Object::toString) - .collect(Collectors.joining(DELIMITER)); + versionRelease = Stream.of(buildProperties.get(VERSION_RELEASE_KEY).split("\\" + DELIMITER)).limit(2) + .map(Object::toString) + .collect(Collectors.joining(DELIMITER)); } if (StringUtils.isNotEmpty(versionRelease)) { @@ -207,7 +222,9 @@ public class ApplicationService extends AbstractCrudService<ApplicationDto> { public String getBase64File(final String fileName, final String basePath) { if (StringUtils.isBlank(fileName) || StringUtils.isBlank(basePath)) { - LOGGER.warn(String.format("Logo information missing : cannot load logo with name \"%s\" in path \"%s\"", fileName, basePath)); + LOGGER.warn(String + .format("Logo information missing : cannot load logo with name \"%s\" in path \"%s\"", fileName, + basePath)); return null; } diff --git a/ui/ui-frontend-common/src/app/modules/startup.service.ts b/ui/ui-frontend-common/src/app/modules/startup.service.ts index d3c8237586b9be4daf14af3296264f8f136a0fab..ffa2eec71d82ccc053a5703caf98471760848ded 100644 --- a/ui/ui-frontend-common/src/app/modules/startup.service.ts +++ b/ui/ui-frontend-common/src/app/modules/startup.service.ts @@ -37,26 +37,24 @@ import { Inject, Injectable } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { tap } from 'rxjs/operators'; -import { ApplicationService } from './application.service'; - import { ApplicationApiService } from './api/application-api.service'; import { SecurityApiService } from './api/security-api.service'; import { ApplicationId } from './application-id.enum'; +import { ApplicationService } from './application.service'; import { AuthService } from './auth.service'; import { WINDOW_LOCATION } from './injection-tokens'; import { Logger } from './logger/logger'; -import { AppConfiguration, AttachmentType, AuthUser, Color } from './models'; -import {ThemeService} from './theme.service'; +import { AppConfiguration, AttachmentType, AuthUser } from './models'; +import { ThemeService } from './theme.service'; const WARNING_DURATION = 2000; const CUSTOMER_TECHNICAL_REFERENT_KEY = 'technical-referent-email'; const CUSTOMER_WEBSITE_URL_KEY = 'website-url'; @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class StartupService { - private configurationData: AppConfiguration; userRefresh = new Subject<any>(); @@ -65,7 +63,6 @@ export class StartupService { private CURRENT_TENANT_IDENTIFIER: string; - constructor( private logger: Logger, private authService: AuthService, @@ -74,12 +71,14 @@ export class StartupService { private themeService: ThemeService, private applicationService: ApplicationService, @Inject(WINDOW_LOCATION) private location: any - ) { } + ) {} load(): Promise<any> { this.configurationData = null; - return this.applicationApi.getConfiguration().toPromise() + return this.applicationApi + .getConfiguration() + .toPromise() .then((data: any) => { this.configurationData = data; this.authService.loginUrl = this.configurationData.CAS_URL; @@ -95,7 +94,6 @@ export class StartupService { this.configurationData.LOGO = data[AttachmentType.Portal]; }) .then(() => { - let customerColorMap = null; if (this.authService.user.basicCustomer.graphicIdentity.hasCustomGraphicIdentity) { @@ -217,6 +215,21 @@ export class StartupService { return null; } + getArchivesSearchUrl(): string { + if (this.configurationLoaded()) { + return this.configurationData.ARCHIVES_SEARCH_URL; + } + + return null; + } + + getReferentialUrl(): string { + if (this.configurationLoaded()) { + return this.configurationData.REFERENTIAL_SEARCH_URL; + } + + return null; + } getConfigStringValue(key: string): string { if (this.configurationLoaded() && this.configurationData.hasOwnProperty(key)) { return this.configurationData[key]; @@ -234,7 +247,7 @@ export class StartupService { * @param url URL to be redirected to. */ redirect(url?: string) { - setTimeout(() => this.location.href = url ? url : this.getPortalUrl(), WARNING_DURATION); + setTimeout(() => (this.location.href = url ? url : this.getPortalUrl()), WARNING_DURATION); } getPlatformName(): string { @@ -264,5 +277,4 @@ export class StartupService { return customer[CUSTOMER_WEBSITE_URL_KEY]; } } - } diff --git a/ui/ui-frontend/package-lock.json b/ui/ui-frontend/package-lock.json index 20506252ecb33140d1cade837be25af8d6aa3e6b..361cfc835f847adbfd3217fcd2e6106b73b14b25 100644 --- a/ui/ui-frontend/package-lock.json +++ b/ui/ui-frontend/package-lock.json @@ -14701,7 +14701,7 @@ }, "ui-frontend-common": { "version": "file:../ui-frontend-common/ui-frontend-common-2.1.0.tgz", - "integrity": "sha512-7OSXs9OJwdXy0Qd+sBm32CFHrtc/hZFrvrB6hK3FtrtSV7+OCZKzzLjaMkHj4t6rRPiH+iqK9A5A0x9otOUfXA==", + "integrity": "sha512-OcDeeesZmKmzZGTkTCmsz+ukXYp149Tueq5EhmSGGRUNHuk5bRrvnD0gGclWlMu8cZM23MeOD74Ac1je8sk9Sg==", "requires": { "@angular/material-moment-adapter": "^10.2.3", "@ngx-translate/core": "^12.0.0", diff --git a/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.html b/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.html index e046bb24432c6b4c62e26856bd06321e78b16f37..8833cee54937c6f9af52e0f8277bf50194e10cb4 100644 --- a/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.html +++ b/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.html @@ -11,7 +11,7 @@ <button mat-menu-item i18n="@@ingestPreviewDownloadATR" (click)="downloadATR()" [disabled]="ingestStatus(ingest) === 'En cours'" - >{{'INGEST_DETAIL.DOWNLOAD_ATR' | translate}} + >{{'INGEST_DETAIL.DOWNLOAD_ATR' | translate}} </button> <button mat-menu-item i18n="@@ingestPreviewGenerateDocX" (click)="generateODTreport()" matTooltip="{{'INGEST_DETAIL.DOWNLOAD_DOCX' | translate}}" matTooltipClass="vitamui-tooltip" @@ -29,6 +29,6 @@ <mat-tab label="{{'INGEST_DETAIL.INGEST_ERROR_DETAIL' | translate}}"> <app-ingest-errors-details-tab [ingest]="ingest"></app-ingest-errors-details-tab> </mat-tab> - + </mat-tab-group> </div> diff --git a/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.ts b/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.ts index c2e8ad2fe36451a02e6113da737de9ef150352e0..b76f407ac377e2a06756a7294b153ac3e8bed511 100644 --- a/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.ts +++ b/ui/ui-frontend/projects/ingest/src/app/ingest/ingest-preview/ingest-preview.component.ts @@ -47,7 +47,7 @@ export class IngestPreviewComponent implements OnInit { @Input() ingest: any; // Make a type ? @Output() previewClose = new EventEmitter(); - + constructor(private logbookService: LogbookService, private ingestService : IngestService) { } diff --git a/ui/ui-ingest/src/main/config/ui-ingest-application-dev.yml b/ui/ui-ingest/src/main/config/ui-ingest-application-dev.yml index 051960a083b906173ec72a89b3052a50f86c4871..69b4c906209a1fec3e82393bd5df0a8e0f7d7eda 100644 --- a/ui/ui-ingest/src/main/config/ui-ingest-application-dev.yml +++ b/ui/ui-ingest/src/main/config/ui-ingest-application-dev.yml @@ -72,7 +72,8 @@ ui-ingest: hostname-verification: false base-url: portal: "https://dev.vitamui.com:4200" - + archives-search: "https://dev.vitamui.com:4209/archive-search" + ingest: "https://dev.vitamui.com:4208/ingest" portal-categories: ingest_and_consultation: title: "Versement & consultation" diff --git a/ui/ui-portal/src/main/config/ui-portal-application-dev.yml b/ui/ui-portal/src/main/config/ui-portal-application-dev.yml index 2138da59992556f14c56223c79b6a337045d4cde..5fbbea96a71d999d5bf1221b7705a4f071919557 100644 --- a/ui/ui-portal/src/main/config/ui-portal-application-dev.yml +++ b/ui/ui-portal/src/main/config/ui-portal-application-dev.yml @@ -64,6 +64,9 @@ ui-portal: portal: "https://dev.vitamui.com:4200" admin-identity: "https://dev.vitamui.com:4201/identity" identity: "https://dev.vitamui.com:4201/identity" + archives-search: "https://dev.vitamui.com:4209/archive-search" + ingest: "https://dev.vitamui.com:4208/ingest" + referential: "https://dev.vitamui.com:4202/referential" customer: technical-referent-email: contact@programmevitam.fr website-url: http://www.programmevitam.fr