diff --git a/apps/red-ui/project.json b/apps/red-ui/project.json index c0f01719a..29231e2b8 100644 --- a/apps/red-ui/project.json +++ b/apps/red-ui/project.json @@ -34,7 +34,6 @@ "main": "apps/red-ui/src/main.ts", "polyfills": "apps/red-ui/src/polyfills.ts", "tsConfig": "apps/red-ui/tsconfig.json", - "baseHref": "/ui/", "assets": [ "apps/red-ui/src/favicon.ico", { diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index de27d72b6..68b2aa4ed 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -205,18 +205,13 @@ const routes: IqserRoutes = [ component: TenantSelectComponent, }, { - path: ':tenant', - redirectTo: ':tenant/main', - pathMatch: 'full', - }, - { - path: ':tenant/main', + path: 'main', canActivate: [orderedAsyncGuards([ifLoggedIn(), hasAnyRole(), mainGuard()])], component: BaseScreenComponent, children: mainRoutes, }, { - path: ':tenant/auth-error', + path: 'auth-error', component: AuthErrorComponent, canActivate: [doesNotHaveAnyRole()], }, diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts index 66a4c04cd..c1fa904c3 100644 --- a/apps/red-ui/src/app/app.module.ts +++ b/apps/red-ui/src/app/app.module.ts @@ -1,4 +1,4 @@ -import { DatePipe as BaseDatePipe } from '@angular/common'; +import { APP_BASE_HREF, DatePipe as BaseDatePipe } from '@angular/common'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { ENVIRONMENT_INITIALIZER, ErrorHandler, inject, NgModule } from '@angular/core'; import { MatDividerModule } from '@angular/material/divider'; @@ -43,7 +43,7 @@ import { } from '@iqser/common-ui'; import { CommonUiModule } from '@iqser/common-ui/lib/common-ui.module'; import { LogoComponent, SkeletonComponent, ToastComponent } from '@iqser/common-ui/lib/shared'; -import { TenantPipe, TenantsModule } from '@iqser/common-ui/lib/tenants'; +import { TenantsModule } from '@iqser/common-ui/lib/tenants'; import { IqserUsersModule } from '@iqser/common-ui/lib/users'; import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor'; import { MissingTranslationHandler } from '@ngx-translate/core'; @@ -61,13 +61,14 @@ import { UserPreferenceService } from '@users/user-preference.service'; import { UserService } from '@users/user.service'; import { UI_CACHES } from '@utils/constants'; import { REDMissingTranslationHandler } from '@utils/missing-translations-handler'; -import { LoggerModule, NgxLoggerLevel, TOKEN_LOGGER_CONFIG, TOKEN_LOGGER_RULES_SERVICE } from 'ngx-logger'; +import { LoggerModule, NGXLogger, NgxLoggerLevel, TOKEN_LOGGER_CONFIG, TOKEN_LOGGER_RULES_SERVICE } from 'ngx-logger'; import { ToastrModule } from 'ngx-toastr'; import * as helpModeKeys from '../assets/help-mode/help-mode-keys.json'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { PdfViewerModule } from './modules/pdf-viewer/pdf-viewer.module'; import { ACTIVE_DOSSIERS_SERVICE, ARCHIVED_DOSSIERS_SERVICE } from './tokens'; +import { UI_ROOT } from '@common-ui/utils'; export const appModuleFactory = (config: AppConfig) => { @NgModule({ @@ -183,11 +184,27 @@ export const appModuleFactory = (config: AppConfig) => { IqserDenyDirective, IqserListingModule, IconButtonComponent, - TenantPipe, MatDividerModule, ChevronButtonComponent, ], providers: [ + { + provide: UI_ROOT, + useValue: '/ui', + }, + { + provide: APP_BASE_HREF, + useFactory: () => { + const uiRoot = inject(UI_ROOT); + const pathParams = location.pathname.split('/').filter(Boolean); + const uiRootPathIndex = pathParams.indexOf(uiRoot.replace('/', '')); + const tenant = pathParams[uiRootPathIndex + 1] ?? ''; + const appBaseHref = uiRoot + '/' + tenant; + + inject(NGXLogger).info('Provide APP_BASE_HREF:', appBaseHref); + return appBaseHref; + }, + }, { provide: HTTP_INTERCEPTORS, multi: true, diff --git a/apps/red-ui/src/app/components/base-screen/base-screen.component.html b/apps/red-ui/src/app/components/base-screen/base-screen.component.html index 1277d3df1..27464cdbd 100644 --- a/apps/red-ui/src/app/components/base-screen/base-screen.component.html +++ b/apps/red-ui/src/app/components/base-screen/base-screen.component.html @@ -9,7 +9,7 @@ -