From 7716c959ed02f970c37d16dc1f5fe2d7e5dde2f0 Mon Sep 17 00:00:00 2001 From: mechtelm <nicht@mehr.fragen> Date: Mon, 31 May 2021 19:05:59 +0200 Subject: [PATCH] Add color setting in super user Background for body and secondary boxes --- .../admin-starter/admin-starter.component.ts | 2 +- .../code-input/code-input.component.ts | 2 +- src/app/app-root/login/login.component.ts | 3 +- .../test-starter/test-starter.component.css | 2 +- src/app/config/app.config.ts | 25 ++++++------- src/app/superadmin/backend.service.ts | 2 +- .../settings/app-config.component.html | 9 ++++- .../settings/app-config.component.ts | 36 +++++++++++++------ .../test-status/test-status.component.css | 2 +- .../unit-menu/unit-menu.component.css | 2 +- 10 files changed, 53 insertions(+), 32 deletions(-) diff --git a/src/app/app-root/admin-starter/admin-starter.component.ts b/src/app/app-root/admin-starter/admin-starter.component.ts index ce891c06..c5651dbc 100644 --- a/src/app/app-root/admin-starter/admin-starter.component.ts +++ b/src/app/app-root/admin-starter/admin-starter.component.ts @@ -10,7 +10,7 @@ import { MainDataService } from '../../maindata.service'; templateUrl: './admin-starter.component.html', styles: [ 'mat-card {margin: 10px;}', - '.mat-card-gray {background-color: lightgray}' + '.mat-card-gray {background-color: var(--tc-box-background)}' ] }) diff --git a/src/app/app-root/code-input/code-input.component.ts b/src/app/app-root/code-input/code-input.component.ts index 60b37bf7..747ed0a6 100644 --- a/src/app/app-root/code-input/code-input.component.ts +++ b/src/app/app-root/code-input/code-input.component.ts @@ -13,7 +13,7 @@ import { BackendService } from '../../backend.service'; templateUrl: './code-input.component.html', styles: [ 'mat-card {margin: 10px;}', - '.mat-card-gray {background-color: lightgray}' + '.mat-card-gray {background-color: var(--tc-box-background)}' ] }) export class CodeInputComponent implements OnInit { diff --git a/src/app/app-root/login/login.component.ts b/src/app/app-root/login/login.component.ts index e9377fb1..a2f133f3 100644 --- a/src/app/app-root/login/login.component.ts +++ b/src/app/app-root/login/login.component.ts @@ -11,8 +11,7 @@ import { BackendService } from '../../backend.service'; styles: [ 'mat-card {margin: 10px;}', '.mat-card-gray {background: var(--tc-box-background)}', - '#toggle-show-password {cursor: pointer}', - '.mat-card-header {background-color: salmon; padding: 4px;}' + '#toggle-show-password {cursor: pointer}' ] }) diff --git a/src/app/app-root/test-starter/test-starter.component.css b/src/app/app-root/test-starter/test-starter.component.css index 3b5ec57a..3563ebfa 100644 --- a/src/app/app-root/test-starter/test-starter.component.css +++ b/src/app/app-root/test-starter/test-starter.component.css @@ -20,5 +20,5 @@ mat-card { } .mat-card-gray { - background-color: lightgray + background-color: var(--tc-box-background) } diff --git a/src/app/config/app.config.ts b/src/app/config/app.config.ts index 429914b9..e1496347 100644 --- a/src/app/config/app.config.ts +++ b/src/app/config/app.config.ts @@ -96,42 +96,43 @@ export class AppConfig { this.impressum_html = 'Impressum/Datenschutz nicht definiert'; } this.mainLogo = 'assets/IQB-LogoA.png'; - this.background_body = ''; - this.background_box = ''; + const elementStyle = window.getComputedStyle(document.body); + this.background_body = elementStyle.getPropertyValue('--tc-body-background'); + this.background_box = elementStyle.getPropertyValue('--tc-box-background'); this.trusted_intro_html = null; this.trusted_impressum_html = null; this.global_warning = ''; this.global_warning_expired_day = ''; this.global_warning_expired_hour = ''; if (appConfig) { - Object.keys(appConfig).forEach(k => { + appConfig.forEach((v, k) => { switch (k) { case 'app_title': - this.app_title = appConfig[k]; + this.app_title = v; break; case 'mainLogo': - this.mainLogo = appConfig[k]; + this.mainLogo = v; break; case 'background_body': - this.background_body = appConfig[k]; + this.background_body = v; break; case 'background_box': - this.background_box = appConfig[k]; + this.background_box = v; break; case 'intro_html': - this.intro_html = appConfig[k]; + this.intro_html = v; break; case 'impressum_html': - this.impressum_html = appConfig[k]; + this.impressum_html = v; break; case 'global_warning': - this.global_warning = appConfig[k]; + this.global_warning = v; break; case 'global_warning_expired_day': - this.global_warning_expired_day = appConfig[k]; + this.global_warning_expired_day = v; break; case 'global_warning_expired_hour': - this.global_warning_expired_hour = appConfig[k]; + this.global_warning_expired_hour = v; break; default: console.warn(`unknown key in appConfig "${k}"`); diff --git a/src/app/superadmin/backend.service.ts b/src/app/superadmin/backend.service.ts index 7fba22e3..c55927b8 100644 --- a/src/app/superadmin/backend.service.ts +++ b/src/app/superadmin/backend.service.ts @@ -133,7 +133,7 @@ export class BackendService { setAppConfig(newConfig: Map<string, string>): Observable<boolean> { return this.http - .patch<boolean>(`${this.serverUrl}system/config/app`, { newConfig }) + .patch<boolean>(`${this.serverUrl}system/config/app`, newConfig) .pipe(catchError((err: ApiError) => { console.warn(`setAppConfig Api-Error: ${err.code} ${err.info}`); return of(false); diff --git a/src/app/superadmin/settings/app-config.component.html b/src/app/superadmin/settings/app-config.component.html index 88b455d1..d53c7758 100644 --- a/src/app/superadmin/settings/app-config.component.html +++ b/src/app/superadmin/settings/app-config.component.html @@ -39,10 +39,17 @@ cdkTextareaAutosize cdkAutosizeMinRows="6"></textarea> </mat-form-field> + <mat-form-field fxLayout="column"> + <mat-label>Hintergrundfarbe Anwendung</mat-label> + <input matInput formControlName="backgroundBody" placeholder="Farbe"> + </mat-form-field> + <mat-form-field fxLayout="column"> + <mat-label>Hintergrundfarbe sekundäre Boxen</mat-label> + <input matInput formControlName="backgroundBox" placeholder="Farbe"> + </mat-form-field> <div fxLayout="row" fxLayoutGap="30px" fxLayoutAlign="start start"> <button mat-raised-button color="primary" [disabled]="!dataChanged" (click)="saveData()"> Speichern </button> - <div *ngIf="dataChanged" fxFlex>Nach dem Speichern bitte die Seite neu laden, damit die Änderungen wirksam werden!</div> </div> </form> diff --git a/src/app/superadmin/settings/app-config.component.ts b/src/app/superadmin/settings/app-config.component.ts index 41b216bb..1c151b85 100644 --- a/src/app/superadmin/settings/app-config.component.ts +++ b/src/app/superadmin/settings/app-config.component.ts @@ -53,19 +53,32 @@ export class AppConfigComponent implements OnInit, OnDestroy { private snackBar: MatSnackBar, private mds: MainDataService, private bs: BackendService - ) { } + ) { + this.configForm = this.fb.group({ + appTitle: this.fb.control(''), + introHtml: this.fb.control(''), + impressumHtml: this.fb.control(''), + globalWarningText: this.fb.control(''), + globalWarningExpiredDay: this.fb.control(''), + globalWarningExpiredHour: this.fb.control(''), + backgroundBody: this.fb.control(''), + backgroundBox: this.fb.control('') + }); + } ngOnInit(): void { setTimeout(() => { const appConfig = this.mds.appConfig.getAppConfig(); - this.configForm = this.fb.group({ - appTitle: this.fb.control(appConfig.get('app_title')), - introHtml: this.fb.control(appConfig.get('intro_html')), - impressumHtml: this.fb.control(appConfig.get('impressum_html')), - globalWarningText: this.fb.control(appConfig.get('global_warning')), - globalWarningExpiredDay: this.fb.control(appConfig.get('global_warning_expired_day')), - globalWarningExpiredHour: this.fb.control(appConfig.get('global_warning_expired_hour')) - }); + this.configForm.setValue({ + appTitle: appConfig.get('app_title'), + introHtml: appConfig.get('intro_html'), + impressumHtml: appConfig.get('impressum_html'), + globalWarningText: appConfig.get('global_warning'), + globalWarningExpiredDay: appConfig.get('global_warning_expired_day'), + globalWarningExpiredHour: appConfig.get('global_warning_expired_hour'), + backgroundBody: appConfig.get('background_body'), + backgroundBox: appConfig.get('background_box') + }, { emitEvent: false }); this.warningIsExpired = AppConfig.isWarningExpired( appConfig.get('global_warning_expired_day'), appConfig.get('global_warning_expired_hour') @@ -91,9 +104,9 @@ export class AppConfigComponent implements OnInit, OnDestroy { appConfig.set('global_warning', this.configForm.get('globalWarningText').value); appConfig.set('global_warning_expired_day', this.configForm.get('globalWarningExpiredDay').value); appConfig.set('global_warning_expired_hour', this.configForm.get('globalWarningExpiredHour').value); + appConfig.set('background_body', this.configForm.get('backgroundBody').value); + appConfig.set('background_box', this.configForm.get('backgroundBox').value); - this.mds.appConfig.setAppConfig(appConfig); - this.mds.appConfig.applyBackgroundColors(); this.bs.setAppConfig(appConfig).subscribe(isOk => { if (isOk) { this.snackBar.open( @@ -102,6 +115,7 @@ export class AppConfigComponent implements OnInit, OnDestroy { this.dataChanged = false; this.mds.appConfig.setAppConfig(appConfig); this.mds.appConfig.applyBackgroundColors(); + this.mds.appTitle$.next(this.configForm.get('appTitle').value); } else { this.snackBar.open('Konnte Konfigurationsdaten der Anwendung nicht speichern', 'Fehler', { duration: 3000 }); } diff --git a/src/app/test-controller/test-status/test-status.component.css b/src/app/test-controller/test-status/test-status.component.css index c4a96601..4cfb6aa9 100644 --- a/src/app/test-controller/test-status/test-status.component.css +++ b/src/app/test-controller/test-status/test-status.component.css @@ -8,7 +8,7 @@ mat-card { } .mat-card-gray { - background-color: lightgray + background-color: var(--tc-box-background) } .active-unit { diff --git a/src/app/test-controller/unit-menu/unit-menu.component.css b/src/app/test-controller/unit-menu/unit-menu.component.css index ae2a7132..d8abef87 100644 --- a/src/app/test-controller/unit-menu/unit-menu.component.css +++ b/src/app/test-controller/unit-menu/unit-menu.component.css @@ -8,7 +8,7 @@ mat-card { } .mat-card-gray { - background-color: lightgray + background-color: var(--tc-box-background) } .active-unit { -- GitLab