From ae5dac1040ba2838c01c29b2d9ded5c32b4a3b1b Mon Sep 17 00:00:00 2001 From: William Nolin Date: Tue, 7 Sep 2021 15:53:32 -0400 Subject: [PATCH] #13 Use new API for app's logo and icon --- src/app/app.component.ts | 3 +- .../modules/configuration/config-editor.html | 32 +++++++++---------- .../modules/configuration/config-editor.ts | 4 +-- .../modules/configuration/config-image.html | 2 +- src/app/modules/configuration/config.ts | 20 +++++++++--- .../components/header/header.component.ts | 2 +- src/app/modules/shared/model/config.model.ts | 8 ++--- .../modules/shared/service/config.service.ts | 9 +++--- src/app/modules/shared/utils/utils.ts | 4 +++ 9 files changed, 49 insertions(+), 35 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 7f5758f..0d6e334 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -5,7 +5,6 @@ import {SubscribingComponent} from './modules/shared/components/subscribing.comp import {ActivatedRoute, Router} from '@angular/router' import {ErrorService} from './modules/shared/service/error.service' import {ConfigService} from './modules/shared/service/config.service' -import {Config} from './modules/shared/model/config.model' import {environment} from '../environments/environment' @Component({ @@ -38,7 +37,7 @@ export class AppComponent extends SubscribingComponent { online => this.isServerOnline = online ) - this.favIcon.href = environment.apiUrl + "/file?path=images%2Ficon" + this.favIcon.href = environment.apiUrl + "/config/icon" } reload() { diff --git a/src/app/modules/configuration/config-editor.html b/src/app/modules/configuration/config-editor.html index d9fa87b..c8af260 100644 --- a/src/app/modules/configuration/config-editor.html +++ b/src/app/modules/configuration/config-editor.html @@ -11,23 +11,23 @@
- - - - - - - - + + - - - - - - - - + + diff --git a/src/app/modules/configuration/config-editor.ts b/src/app/modules/configuration/config-editor.ts index bde9502..b12502a 100644 --- a/src/app/modules/configuration/config-editor.ts +++ b/src/app/modules/configuration/config-editor.ts @@ -16,8 +16,8 @@ export class CreConfigEditor extends ErrorHandlingComponent { keys = { INSTANCE_NAME: Config.INSTANCE_NAME, - INSTANCE_LOGO_PATH: Config.INSTANCE_LOGO_PATH, - INSTANCE_ICON_PATH: Config.INSTANCE_ICON_PATH, + INSTANCE_LOGO_SET: Config.INSTANCE_LOGO_SET, + INSTANCE_ICON_SET: Config.INSTANCE_ICON_SET, INSTANCE_URL: Config.INSTANCE_URL, DATABASE_URL: Config.DATABASE_URL, DATABASE_USER: Config.DATABASE_USER, diff --git a/src/app/modules/configuration/config-image.html b/src/app/modules/configuration/config-image.html index 084aad1..c801323 100644 --- a/src/app/modules/configuration/config-image.html +++ b/src/app/modules/configuration/config-image.html @@ -18,7 +18,7 @@
diff --git a/src/app/modules/configuration/config.ts b/src/app/modules/configuration/config.ts index 29acafb..d40479e 100644 --- a/src/app/modules/configuration/config.ts +++ b/src/app/modules/configuration/config.ts @@ -1,10 +1,20 @@ -import {AfterViewInit, Component, ContentChild, Directive, EventEmitter, Input, Output, ViewChild, ViewEncapsulation} from '@angular/core' +import { + AfterViewInit, + Component, + ContentChild, + Directive, + EventEmitter, + Input, + Output, + ViewChild, + ViewEncapsulation +} from '@angular/core' import {ConfigService} from '../shared/service/config.service' import {Config, ConfigControl} from '../shared/model/config.model' import {SubscribingComponent} from '../shared/components/subscribing.component' import {ErrorService} from '../shared/service/error.service' import {ActivatedRoute, Router} from '@angular/router' -import {formatDate, formatDateTime, getFileUrl, readFile} from '../shared/utils/utils' +import {formatDate, formatDateTime, getConfiguredImageUrl, getFileUrl, readFile} from '../shared/utils/utils' import {AbstractControl} from '@angular/forms' import {CrePromptDialog} from '../shared/components/dialogs/dialogs' @@ -121,9 +131,9 @@ export class CreImageConfig extends _CreConfigBase { readFile(file, (content) => this.updatedImage = content) } - - get configuredImageUrl(): string { - return getFileUrl(this.config.content) + get imageUrl(): string { + const path = this.config.key == Config.INSTANCE_ICON_SET ? 'icon' : 'logo' + return getConfiguredImageUrl(path) } } diff --git a/src/app/modules/shared/components/header/header.component.ts b/src/app/modules/shared/components/header/header.component.ts index 94f4563..6d113fd 100644 --- a/src/app/modules/shared/components/header/header.component.ts +++ b/src/app/modules/shared/components/header/header.component.ts @@ -66,7 +66,7 @@ export class HeaderComponent extends SubscribingComponent { } get logoUrl(): string { - return environment.apiUrl + "/file?path=images%2Flogo&mediaType=image/png" + return environment.apiUrl + "/config/logo" } set activeLink(link: string) { diff --git a/src/app/modules/shared/model/config.model.ts b/src/app/modules/shared/model/config.model.ts index 02e4923..70011e1 100644 --- a/src/app/modules/shared/model/config.model.ts +++ b/src/app/modules/shared/model/config.model.ts @@ -3,8 +3,8 @@ import {filterMap} from '../utils/map.utils' export class Config { static readonly INSTANCE_NAME = 'instance.name' - static readonly INSTANCE_LOGO_PATH = 'instance.logo.path' - static readonly INSTANCE_ICON_PATH = 'instance.icon.path' + static readonly INSTANCE_LOGO_SET = 'instance.logo.set' + static readonly INSTANCE_ICON_SET = 'instance.icon.set' static readonly INSTANCE_URL = 'instance.url' static readonly DATABASE_URL = 'database.url' static readonly DATABASE_USER = 'database.user' @@ -20,8 +20,8 @@ export class Config { static readonly OPERATING_SYSTEM = 'env.os' static readonly IMAGE_CONFIG_KEYS = [ - Config.INSTANCE_LOGO_PATH, - Config.INSTANCE_ICON_PATH + Config.INSTANCE_LOGO_SET, + Config.INSTANCE_ICON_SET ] static readonly PASSWORD_CONFIG_KEYS = [ diff --git a/src/app/modules/shared/service/config.service.ts b/src/app/modules/shared/service/config.service.ts index dcfd95d..546ce89 100644 --- a/src/app/modules/shared/service/config.service.ts +++ b/src/app/modules/shared/service/config.service.ts @@ -39,11 +39,12 @@ export class ConfigService { } setImage(key: string, image: File): Observable { - const body = new FormData() - body.append('key', key) - body.append('image', image) + const path = key == Config.INSTANCE_ICON_SET ? 'icon' : 'logo'; - return this.api.put('/config/image', body) + const body = new FormData() + body.append(path, image) + + return this.api.put(`/config/${path}`, body) } restart(): Observable { diff --git a/src/app/modules/shared/utils/utils.ts b/src/app/modules/shared/utils/utils.ts index bd54ea9..316a49c 100644 --- a/src/app/modules/shared/utils/utils.ts +++ b/src/app/modules/shared/utils/utils.ts @@ -60,3 +60,7 @@ export function readFile(file: File, consumer: (any) => void) { export function getFileUrl(path: string) { return `${environment.apiUrl}/file?path=${encodeURIComponent(path)}` } + +export function getConfiguredImageUrl(path: string) { + return `${environment.apiUrl}/config/${path}` +}