From 58382ddfeed1d6d4d61f03abd1bbb0dd840afa94 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Wed, 11 Dec 2024 18:22:28 +0200 Subject: [PATCH] RED-10301 - set app type config vars based existing tenants from local storage or used default config if no tenant was set before --- src/lib/services/iqser-config.service.ts | 34 ++++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/lib/services/iqser-config.service.ts b/src/lib/services/iqser-config.service.ts index 5bfc4f4..a4f2725 100644 --- a/src/lib/services/iqser-config.service.ts +++ b/src/lib/services/iqser-config.service.ts @@ -1,18 +1,20 @@ import { Inject, inject, Injectable } from '@angular/core'; import { Title } from '@angular/platform-browser'; -import { CacheApiService } from '../caching'; -import { wipeAllCaches } from '../caching'; -import { IqserAppConfig } from '../utils'; -import { MANUAL_BASE_URL, THEME_DIRECTORIES } from '../utils/constants'; -import { IStoredTenantId } from '../tenants'; +import { CacheApiService } from '../caching/cache-api.service'; +import { wipeAllCaches } from '../caching/cache-utils'; +import { IqserAppConfig } from '../utils/iqser-app-config'; +import { LANDING_PAGE_THEMES, MANUAL_BASE_URL, THEME_DIRECTORIES } from '../utils/constants'; +import { IStoredTenantId, TenantsService } from '../tenants'; @Injectable() export class IqserConfigService { protected readonly _cacheApiService = inject(CacheApiService); protected readonly _titleService = inject(Title); + protected readonly _tenantsService = inject(TenantsService); constructor(@Inject('Doesnt matter') protected _values: T) { this._checkFrontendVersion(); + this.#updateAppType(); this._titleService.setTitle(this._values.APP_NAME); } @@ -46,6 +48,28 @@ export class IqserConfigService { await this._cacheApiService.cacheValue('FRONTEND_APP_VERSION', version); }); } + + #updateAppType() { + const storedTenants = this._tenantsService.getStoredTenants(); + if (storedTenants.length) { + const isRedaction = !!storedTenants.find(t => !t.documine); + const isDocumine = !!storedTenants.find(t => t.documine); + const landingPageTheme = + isRedaction && isDocumine + ? LANDING_PAGE_THEMES.MIXED + : isDocumine + ? LANDING_PAGE_THEMES.DOCUMINE + : LANDING_PAGE_THEMES.REDACT_MANAGER; + + this._values = { + ...this._values, + LANDING_PAGE_THEME: landingPageTheme, + APP_NAME: landingPageTheme === LANDING_PAGE_THEMES.MIXED ? 'Knecon Cloud' : isDocumine ? 'DocuMine' : 'RedactManager', + IS_DOCUMINE: isDocumine, + THEME: !isDocumine ? THEME_DIRECTORIES.REDACT : THEME_DIRECTORIES.SCM, + }; + } + } } export function getConfig() {