From f8bbd270f5e84e3b2f521e3db509a6aed016802c Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Sat, 9 Mar 2024 00:51:29 -0600 Subject: [PATCH] Login view with the support of dark theme --- .../core/shell/toolbar/toolbar.component.html | 2 +- .../recovery-repayment.component.html | 6 ++- src/app/login/login.component.html | 6 ++- src/app/login/login.component.ts | 12 ++++- .../transactions-tab.component.scss | 5 -- src/app/shared/footer/footer.component.html | 36 ++++++------- src/app/shared/footer/footer.component.scss | 9 ++-- src/app/shared/shared.module.ts | 4 +- .../theme-toggle/theme-toggle.component.html | 0 .../theme-toggle/theme-toggle.component.scss | 0 .../theme-toggle.component.spec.ts | 0 .../theme-toggle/theme-toggle.component.ts | 6 ++- .../theme-toggle/theming.service.ts | 26 +++++----- src/app/web-app.component.ts | 7 +-- src/assets/images/mifos-logo-flat.png | Bin 7489 -> 30643 bytes src/assets/styles/_colours.scss | 5 ++ src/theme/_dark_content.scss | 48 ++++++++++++++++++ 17 files changed, 122 insertions(+), 50 deletions(-) rename src/app/{ => shared}/theme-toggle/theme-toggle.component.html (100%) rename src/app/{ => shared}/theme-toggle/theme-toggle.component.scss (100%) rename src/app/{ => shared}/theme-toggle/theme-toggle.component.spec.ts (100%) rename src/app/{ => shared}/theme-toggle/theme-toggle.component.ts (89%) rename src/app/{ => shared}/theme-toggle/theming.service.ts (61%) diff --git a/src/app/core/shell/toolbar/toolbar.component.html b/src/app/core/shell/toolbar/toolbar.component.html index 3c10b8f7d..36bc347ce 100644 --- a/src/app/core/shell/toolbar/toolbar.component.html +++ b/src/app/core/shell/toolbar/toolbar.component.html @@ -59,7 +59,7 @@
- +
diff --git a/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html b/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html index 0092c527a..371a2d959 100644 --- a/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html +++ b/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html @@ -21,8 +21,10 @@ {{"labels.inputs.Transaction Amount" | translate}} - - + {{ dataObject.currency.code }} + + + {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html index 5d01af702..ebd2ac891 100644 --- a/src/app/login/login.component.html +++ b/src/app/login/login.component.html @@ -35,13 +35,14 @@
+
- {{ 'APP_NAME' | translate}} Logo + {{ 'APP_NAME' | translate}} Logo
@@ -72,6 +73,9 @@ +
+ +
diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts index 7d0a0a844..e91238eb9 100644 --- a/src/app/login/login.component.ts +++ b/src/app/login/login.component.ts @@ -13,6 +13,7 @@ import { AlertService } from '../core/alert/alert.service'; /** Environment Imports */ import { environment } from '../../environments/environment'; +import { SettingsService } from 'app/settings/settings.service'; /** * Login component. @@ -38,7 +39,8 @@ export class LoginComponent implements OnInit, OnDestroy { * @param {Router} router Router for navigation. */ constructor(private alertService: AlertService, - private router: Router) { } + private settingsService: SettingsService, + private router: Router) { } /** * Subscribes to alert event of alert service. @@ -67,4 +69,12 @@ export class LoginComponent implements OnInit, OnDestroy { this.alert$.unsubscribe(); } + reloadSettings(): void { + this.settingsService.setTenantIdentifier(''); + this.settingsService.setTenantIdentifier(environment.fineractPlatformTenantId || 'default'); + this.settingsService.setTenantIdentifiers(environment.fineractPlatformTenantIds.split(',')); + this.settingsService.setServers(environment.baseApiUrls.split(',')); + window.location.reload(); + } + } diff --git a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss index 72ec04a33..83f2418c0 100644 --- a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss +++ b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss @@ -23,8 +23,3 @@ } } } - -.strike { - text-decoration: line-through; - color: red; -} \ No newline at end of file diff --git a/src/app/shared/footer/footer.component.html b/src/app/shared/footer/footer.component.html index 12a590f8c..021dad2b4 100644 --- a/src/app/shared/footer/footer.component.html +++ b/src/app/shared/footer/footer.component.html @@ -2,25 +2,25 @@
- - - - - - - - - - - - - - - - -
+ + + + + + + + + + + + + + + + +
- + \ No newline at end of file diff --git a/src/app/shared/footer/footer.component.scss b/src/app/shared/footer/footer.component.scss index 53ceadcd9..8140d915e 100644 --- a/src/app/shared/footer/footer.component.scss +++ b/src/app/shared/footer/footer.component.scss @@ -5,6 +5,12 @@ .content { max-width: 30%; + width: 30%; + + .versions { + width: 100%; + color: $status-inactive; + } .footer-content { margin: 0; @@ -20,9 +26,6 @@ color: $status-approved; } - .versions { - color: $status-inactive; - } table { border: none; diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 47ac1b165..1040f0fac 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -22,7 +22,6 @@ import { SearchToolComponent } from './search-tool/search-tool.component'; import { KeyboardShortcutsDialogComponent } from './keyboard-shortcuts-dialog/keyboard-shortcuts-dialog.component'; import { ServerSelectorComponent } from './server-selector/server-selector.component'; import { TenantSelectorComponent } from './tenant-selector/tenant-selector.component'; -import { ThemeToggleComponent } from '../theme-toggle/theme-toggle.component'; /** Custom Modules */ import { IconsModule } from './icons.module'; @@ -47,6 +46,7 @@ import { StepperButtonsComponent } from './steppers/stepper-buttons/stepper-butt import { GlAccountSelectorComponent } from './accounting/gl-account-selector/gl-account-selector.component'; import { GlAccountDisplayComponent } from './accounting/gl-account-display/gl-account-display.component'; import { ViewSavingsAccountingDetailsComponent } from './accounting/view-savings-accounting-details/view-savings-accounting-details.component'; +import { ThemeToggleComponent } from './theme-toggle/theme-toggle.component'; /** * Shared Module @@ -132,7 +132,7 @@ import { ViewSavingsAccountingDetailsComponent } from './accounting/view-savings GlAccountSelectorComponent, GlAccountDisplayComponent, ViewSavingsAccountingDetailsComponent, - ThemeToggleComponent, + ThemeToggleComponent ] }) export class SharedModule { } diff --git a/src/app/theme-toggle/theme-toggle.component.html b/src/app/shared/theme-toggle/theme-toggle.component.html similarity index 100% rename from src/app/theme-toggle/theme-toggle.component.html rename to src/app/shared/theme-toggle/theme-toggle.component.html diff --git a/src/app/theme-toggle/theme-toggle.component.scss b/src/app/shared/theme-toggle/theme-toggle.component.scss similarity index 100% rename from src/app/theme-toggle/theme-toggle.component.scss rename to src/app/shared/theme-toggle/theme-toggle.component.scss diff --git a/src/app/theme-toggle/theme-toggle.component.spec.ts b/src/app/shared/theme-toggle/theme-toggle.component.spec.ts similarity index 100% rename from src/app/theme-toggle/theme-toggle.component.spec.ts rename to src/app/shared/theme-toggle/theme-toggle.component.spec.ts diff --git a/src/app/theme-toggle/theme-toggle.component.ts b/src/app/shared/theme-toggle/theme-toggle.component.ts similarity index 89% rename from src/app/theme-toggle/theme-toggle.component.ts rename to src/app/shared/theme-toggle/theme-toggle.component.ts index 8055e06b1..ed035716a 100644 --- a/src/app/theme-toggle/theme-toggle.component.ts +++ b/src/app/shared/theme-toggle/theme-toggle.component.ts @@ -2,11 +2,12 @@ import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { ThemingService } from './theming.service'; @Component({ - selector: 'theme-toggle-component', + selector: 'mifosx-theme-toggle', templateUrl: './theme-toggle.component.html', - styleUrls: ['./theme-toggle.component.scss'], + styleUrls: ['./theme-toggle.component.scss'] }) export class ThemeToggleComponent implements OnInit, OnChanges { + darkModeOn: boolean; constructor(private themingService: ThemingService) { @@ -25,4 +26,5 @@ export class ThemeToggleComponent implements OnInit, OnChanges { this.darkModeOn = !this.darkModeOn; this.themingService.setDarkMode(this.darkModeOn); } + } diff --git a/src/app/theme-toggle/theming.service.ts b/src/app/shared/theme-toggle/theming.service.ts similarity index 61% rename from src/app/theme-toggle/theming.service.ts rename to src/app/shared/theme-toggle/theming.service.ts index 61104ff29..ba501db64 100644 --- a/src/app/theme-toggle/theming.service.ts +++ b/src/app/shared/theme-toggle/theming.service.ts @@ -7,24 +7,22 @@ import { BehaviorSubject } from 'rxjs'; export class ThemingService { private darkModeOn = false; - themes = ["dark-theme", "light-theme"]; // <- list all themes in this array - theme = new BehaviorSubject("light-theme"); // <- initial theme + themes = ['dark-theme', 'light-theme']; // <- list all themes in this array + theme = new BehaviorSubject('light-theme'); // <- initial theme constructor(private ref: ApplicationRef) { // Initially check if dark mode is enabled on system this.darkModeOn = window.matchMedia && - window.matchMedia("(prefers-color-scheme: dark)").matches; - + window.matchMedia('(prefers-color-scheme: dark)').matches; + // If dark mode is enabled then directly switch to the dark-theme - if(this.darkModeOn){ - this.theme.next("dark-theme"); - } + this.setDarkMode(this.darkModeOn); // Watch for changes of the preference - window.matchMedia("(prefers-color-scheme: dark)").addListener(e => { + window.matchMedia('(prefers-color-scheme: dark)').addListener(e => { const turnOn = e.matches; - this.theme.next(turnOn ? "dark-theme" : "light-theme"); + this.theme.next(turnOn ? 'dark-theme' : 'light-theme'); // Trigger refresh of UI this.ref.tick(); @@ -34,7 +32,7 @@ export class ThemingService { isDarkMode(): boolean { this.darkModeOn = window.matchMedia && - window.matchMedia("(prefers-color-scheme: dark)").matches; + window.matchMedia('(prefers-color-scheme: dark)').matches; return this.darkModeOn; } @@ -42,10 +40,14 @@ export class ThemingService { this.darkModeOn = isDarkMode; if (isDarkMode) { document.body.classList.add('dark-theme'); - this.theme.next("dark-theme"); + this.theme.next('dark-theme'); } else { document.body.classList.remove('dark-theme'); - this.theme.next("light-theme"); + this.theme.next('light-theme'); } } + + setInitialDarkMode(): void { + this.setDarkMode(this.darkModeOn); + } } diff --git a/src/app/web-app.component.ts b/src/app/web-app.component.ts index 5fb5005c7..b7d24075e 100644 --- a/src/app/web-app.component.ts +++ b/src/app/web-app.component.ts @@ -27,7 +27,7 @@ import { KeyboardShortcutsConfiguration } from './keyboards-shortcut-config'; import { Dates } from './core/utils/dates'; import { animate, style, transition, trigger } from '@angular/animations'; import { I18nService } from './core/i18n/i18n.service'; -import { ThemingService } from './theme-toggle/theming.service'; +import { ThemingService } from './shared/theme-toggle/theming.service'; /** Initialize Logger */ const log = new Logger('MifosX'); @@ -124,9 +124,10 @@ export class WebAppComponent implements OnInit { * 5) Alerts */ ngOnInit() { - this.themingService.theme.subscribe((theme: string) => { - this.cssClass = theme; + this.themingService.theme.subscribe((value: string) => { + this.cssClass = value; }); + this.themingService.setInitialDarkMode(); // Setup logger if (environment.production) { diff --git a/src/assets/images/mifos-logo-flat.png b/src/assets/images/mifos-logo-flat.png index 7f271a6af45342dbc0751f5f0aeb5f63391f415e..30a166d64136766025688da990e68d90cf76c2f2 100644 GIT binary patch literal 30643 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 literal 7489 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