WEB-511 Update login page logo to use tenant-specific branding (#2926)
This commit is contained in:
@@ -50,7 +50,7 @@
|
||||
|
||||
<!-- Logo with Organization Name -->
|
||||
<div class="layout-row align-center-center flex-auto">
|
||||
<img src="assets/images/mifos_lg-logo.png" alt="{{ 'APP_NAME' | translate }} Logo" class="img-container" />
|
||||
<img [src]="logoPath" (error)="onLogoError()" alt="{{ 'APP_NAME' | translate }} Logo" class="img-container" />
|
||||
</div>
|
||||
|
||||
<!-- Form Section -->
|
||||
|
||||
@@ -65,11 +65,13 @@ export class LoginComponent implements OnInit, OnDestroy {
|
||||
twoFactorAuthenticationRequired = false;
|
||||
/** Subscription to alerts. */
|
||||
alert$: Subscription;
|
||||
logoPath = 'assets/images/default_home.png';
|
||||
|
||||
/**
|
||||
* Subscribes to alert event of alert service.
|
||||
*/
|
||||
ngOnInit() {
|
||||
this.updateLogo();
|
||||
this.alert$ = this.alertService.alertEvent.subscribe((alertEvent: Alert) => {
|
||||
const alertType = alertEvent.type;
|
||||
if (alertType === 'Password Expired') {
|
||||
@@ -82,6 +84,8 @@ export class LoginComponent implements OnInit, OnDestroy {
|
||||
this.resetPassword = false;
|
||||
this.twoFactorAuthenticationRequired = false;
|
||||
this.router.navigate(['/'], { replaceUrl: true });
|
||||
} else if (alertType === 'Tenant Changed') {
|
||||
this.updateLogo();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -112,4 +116,21 @@ export class LoginComponent implements OnInit, OnDestroy {
|
||||
allowServerSwitch(): boolean {
|
||||
return environment.allowServerSwitch === 'false' ? false : true;
|
||||
}
|
||||
|
||||
updateLogo(): void {
|
||||
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';
|
||||
}
|
||||
}
|
||||
|
||||
onLogoError(): void {
|
||||
this.logoPath = 'assets/images/default_home.png';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Component, OnInit, inject } from '@angular/core';
|
||||
import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
|
||||
import { SettingsService } from 'app/settings/settings.service';
|
||||
import { AlertService } from 'app/core/alert/alert.service';
|
||||
import { MatFormField, MatPrefix, MatLabel } from '@angular/material/form-field';
|
||||
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
||||
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
@@ -17,6 +18,7 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
})
|
||||
export class TenantSelectorComponent implements OnInit {
|
||||
private settingsService = inject(SettingsService);
|
||||
private alertService = inject(AlertService);
|
||||
|
||||
/** Tenant selector form control. */
|
||||
tenantSelector = new UntypedFormControl();
|
||||
@@ -40,6 +42,7 @@ export class TenantSelectorComponent implements OnInit {
|
||||
|
||||
setTenantIdentifier(): void {
|
||||
this.settingsService.setTenantIdentifier(this.tenantSelector.value);
|
||||
this.alertService.alert({ type: 'Tenant Changed', message: this.tenantSelector.value });
|
||||
}
|
||||
|
||||
allowSelection(): boolean {
|
||||
|
||||
Reference in New Issue
Block a user