diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html index 27a661d11..df2132bc7 100644 --- a/src/app/login/login.component.html +++ b/src/app/login/login.component.html @@ -81,7 +81,12 @@ @if (!themeDarkEnabled) { {{ 'APP_NAME' | translate }} Logo } @else { - {{ 'APP_NAME' | translate }} Logo + {{ 'APP_NAME' | translate }} Logo } diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts index 33d82d4df..60bbb5ea2 100644 --- a/src/app/login/login.component.ts +++ b/src/app/login/login.component.ts @@ -105,6 +105,7 @@ export class LoginComponent implements OnInit, OnDestroy { /** Subscription to alerts. */ alert$: Subscription; logoPath = 'assets/images/default_home.png'; + logoPathDark = 'assets/images/white-mifos.png'; /** Subscription to theme changes. */ theme$: Subscription; @@ -205,19 +206,29 @@ export class LoginComponent implements OnInit, OnDestroy { } updateLogo(): void { + const tenant = this.settingsService.tenantIdentifier; + const isTenantSpecific = tenant && tenant !== 'default'; + + // Set light mode logo (env override takes priority) if (environment.tenantLogoUrl && environment.tenantLogoUrl.trim() !== '') { this.logoPath = environment.tenantLogoUrl; - return; - } - const tenant = this.settingsService.tenantIdentifier; - if (tenant && tenant !== 'default') { - this.logoPath = `assets/images/${tenant}_home.png`; } else { - this.logoPath = 'assets/images/default_home.png'; + this.logoPath = isTenantSpecific ? `assets/images/${tenant}_home.png` : 'assets/images/default_home.png'; + } + + // Set dark mode logo (env override takes priority) + if (environment.tenantLogoUrlDark && environment.tenantLogoUrlDark.trim() !== '') { + this.logoPathDark = environment.tenantLogoUrlDark; + } else { + this.logoPathDark = isTenantSpecific ? `assets/images/${tenant}_home_dark.png` : 'assets/images/white-mifos.png'; } } onLogoError(): void { this.logoPath = 'assets/images/default_home.png'; } + + onLogoErrorDark(): void { + this.logoPathDark = 'assets/images/white-mifos.png'; + } } diff --git a/src/assets/env.js b/src/assets/env.js index e0a20484b..51f69fb7f 100644 --- a/src/assets/env.js +++ b/src/assets/env.js @@ -21,6 +21,7 @@ window["env"]["fineractPlatformTenantIds"] = ''; window['env']['tenantLogoUrl'] = ''; + window['env']['tenantLogoUrlDark'] = ''; // Language Environment variables window["env"]["defaultLanguage"] = ''; diff --git a/src/assets/env.template.js b/src/assets/env.template.js index 2a92992d1..c7555b522 100644 --- a/src/assets/env.template.js +++ b/src/assets/env.template.js @@ -25,6 +25,7 @@ window['env']['fineractPlatformTenantIds'] = '$FINERACT_PLATFORM_TENANTS_IDENTIFIER'; window['env']['tenantLogoUrl'] = '$TENANT_LOGO_URL'; + window['env']['tenantLogoUrlDark'] = '$TENANT_LOGO_URL_DARK'; // Language Environment variables window['env']['defaultLanguage'] = '$MIFOS_DEFAULT_LANGUAGE'; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 61c313085..7cf2c9d30 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -63,6 +63,7 @@ export const environment = { /** Production mode - when true, shows minimal hero with only branding at bottom */ productionMode: loadedEnv['productionMode'] === 'true' || loadedEnv['productionMode'] === true || false, tenantLogoUrl: loadedEnv['tenantLogoUrl'] || 'assets/images/default_home.png', + tenantLogoUrlDark: loadedEnv['tenantLogoUrlDark'] || 'assets/images/white-mifos.png', documentationBaseUrl: loadedEnv['documentationBaseUrl'] || 'https://mifosforge.jira.com/wiki', // Time in seconds, default 60 seconds waitTimeForNotifications: loadedEnv['waitTimeForNotifications'] || 60, diff --git a/src/environments/environment.ts b/src/environments/environment.ts index d87b02ea5..48ae15463 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -67,6 +67,7 @@ export const environment = { /** Production mode - when true, shows minimal hero with only branding at bottom */ productionMode: loadedEnv.productionMode === 'true' || loadedEnv.productionMode === true || false, tenantLogoUrl: loadedEnv.tenantLogoUrl || 'assets/images/default_home.png', + tenantLogoUrlDark: loadedEnv.tenantLogoUrlDark || 'assets/images/white-mifos.png', documentationBaseUrl: loadedEnv.documentationBaseUrl || 'https://mifosforge.jira.com/wiki', // Time in seconds, default 60 seconds waitTimeForNotifications: loadedEnv.waitTimeForNotifications || 60,