Compare commits

..

No commits in common. "d146777b65e23a44c67a265d5d5ea3f294a2f593" and "a869ee4780037474eca6ba584645e86badc92400" have entirely different histories.

6 changed files with 47 additions and 75 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "kdb-web", "name": "kdb-web",
"version": "1.0.dev294_frontend_version", "version": "1.0.dev268_achievements",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"update-version": "ts-node-esm update-version.ts", "update-version": "ts-node-esm update-version.ts",

View File

@ -1,21 +0,0 @@
import { SoftwareVersion } from "./software-version";
import { Theme } from '../view/theme';
export interface AppAndVersionSettings {
ApiURL: string;
PrivacyURL: string;
ImprintURL: string;
Themes: Theme[];
WebVersion: SoftwareVersion;
}
export interface AppSettings {
ApiURL: string;
PrivacyURL: string;
ImprintURL: string;
Themes: Theme[];
}
export interface VersionSettings {
WebVersion: SoftwareVersion;
}

View File

@ -0,0 +1,10 @@
import { SoftwareVersion } from "./software-version";
import { Theme } from '../view/theme';
export interface Appsettings {
ApiURL: string;
PrivacyURL: string;
ImprintURL: string;
WebVersion: SoftwareVersion;
Themes: Theme[];
}

View File

@ -1,86 +1,76 @@
import { HttpClient } from "@angular/common/http"; import { HttpClient } from "@angular/common/http";
import { Injectable } from "@angular/core"; import { Injectable } from "@angular/core";
import { forkJoin, throwError } from "rxjs"; import { throwError } from "rxjs";
import { catchError } from "rxjs/operators"; import { catchError } from "rxjs/operators";
import { AppAndVersionSettings, AppSettings, VersionSettings } from "src/app/models/config/app-settings"; import { Appsettings } from "src/app/models/config/appsettings";
import { SoftwareVersion } from "src/app/models/config/software-version"; import { SoftwareVersion } from "src/app/models/config/software-version";
import { Theme } from "src/app/models/view/theme"; import { Theme } from "src/app/models/view/theme";
@Injectable({ @Injectable({
providedIn: "root" providedIn: 'root'
}) })
export class SettingsService { export class SettingsService {
appSettings!: AppSettings; appsettings!: Appsettings;
versionSettings!: VersionSettings;
constructor( constructor(
private http: HttpClient private http: HttpClient
) { ) { }
}
loadSettings(version: boolean = false): Promise<AppAndVersionSettings> { loadSettings(): Promise<Appsettings> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
forkJoin([ this.http.get<Appsettings>('../../assets/config.json')
this.http.get<AppSettings>("../../assets/config.json")
.pipe(catchError(error => { .pipe(catchError(error => {
reject(error); reject(error);
return throwError(() => error); return throwError(() => error);
})), })).subscribe(settings => {
this.http.get<VersionSettings>("../../assets/version.json") this.appsettings = settings;
.pipe(catchError(error => { resolve(settings);
reject(error);
return throwError(() => error);
}))
]).subscribe(settings => {
this.appSettings = settings[0];
this.versionSettings = settings[1];
resolve({...settings[0], ...settings[1]});
}); });
}); });
} }
public getApiURL(): string { public getApiURL(): string {
if (!this.appSettings || !this.appSettings.ApiURL) { if (!this.appsettings || !this.appsettings.ApiURL) {
console.error("ApiUrl is not set!"); console.error('ApiUrl is not set!');
return ""; return "";
} }
return this.appSettings.ApiURL; return this.appsettings.ApiURL;
} }
public getPrivacyURL(): string { public getPrivacyURL(): string {
if (!this.appSettings || !this.appSettings.PrivacyURL) { if (!this.appsettings || !this.appsettings.PrivacyURL) {
console.error("PrivacyURL is not set!"); console.error('PrivacyURL is not set!');
return ""; return "";
} }
return this.appSettings.PrivacyURL; return this.appsettings.PrivacyURL;
} }
public getImprintURL(): string { public getImprintURL(): string {
if (!this.appSettings || !this.appSettings.ImprintURL) { if (!this.appsettings || !this.appsettings.ImprintURL) {
console.error("ImprintURL is not set!"); console.error('ImprintURL is not set!');
return ""; return "";
} }
return this.appSettings.ImprintURL; return this.appsettings.ImprintURL;
} }
public getWebVersion(): SoftwareVersion | null { public getWebVersion(): SoftwareVersion | null {
if (!this.versionSettings || !this.versionSettings.WebVersion) { if (!this.appsettings || !this.appsettings.WebVersion) {
console.error("WebVersion is not set!"); console.error('WebVersion is not set!');
return null; return null;
} }
return new SoftwareVersion( return new SoftwareVersion(
this.versionSettings.WebVersion.Major, this.appsettings.WebVersion.Major,
this.versionSettings.WebVersion.Minor, this.appsettings.WebVersion.Minor,
this.versionSettings.WebVersion.Micro this.appsettings.WebVersion.Micro
); );
} }
public getThemes(): Theme[] | null { public getThemes(): Theme[] | null {
if (!this.appSettings || !this.appSettings.Themes) { if (!this.appsettings || !this.appsettings.Themes) {
console.error("Themes is not set!"); console.error('Themes is not set!');
return null; return null;
} }
return this.appSettings.Themes; return this.appsettings.Themes;
} }
} }

View File

@ -1,7 +0,0 @@
{
"WebVersion": {
"Major": "1",
"Minor": "0",
"Micro": "dev294_frontend_version"
}
}

View File

@ -1,8 +1,8 @@
import { VersionSettings } from "./src/app/models/config/app-settings"; import { Appsettings } from "./src/app/models/config/appsettings";
import { SoftwareVersion } from "./src/app/models/config/software-version"; import { SoftwareVersion } from "./src/app/models/config/software-version";
import fs from "fs"; import fs from "fs";
const jsonFilePath = "./src/assets/version.json"; const jsonFilePath = "./src/assets/config.json";
function Main(): void { function Main(): void {
getVersion() getVersion()
@ -38,13 +38,13 @@ async function getVersion(): Promise<SoftwareVersion> {
} }
} else if (branch.startsWith("#")) { } else if (branch.startsWith("#")) {
const fs = require("fs"); const fs = require("fs");
const config: VersionSettings = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8")); const config: Appsettings = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8"));
major = config.WebVersion.Major; major = config.WebVersion.Major;
minor = config.WebVersion.Minor; minor = config.WebVersion.Minor;
micro = `dev${branch.split("#")[1]}`; micro = `dev${branch.split("#")[1]}`;
} else { } else {
const fs = require("fs"); const fs = require("fs");
const config: VersionSettings = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8")); const config: Appsettings = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8"));
major = config.WebVersion.Major; major = config.WebVersion.Major;
minor = config.WebVersion.Minor; minor = config.WebVersion.Minor;
micro = config.WebVersion.Micro; micro = config.WebVersion.Micro;
@ -59,7 +59,7 @@ async function setVersion(version: SoftwareVersion) {
if (err) { if (err) {
throw err; throw err;
} }
const settings: VersionSettings = JSON.parse(data); const settings: Appsettings = JSON.parse(data);
settings.WebVersion = version; settings.WebVersion = version;
fs.writeFile(jsonFilePath, JSON.stringify(settings, null, 4), "utf8", () => { fs.writeFile(jsonFilePath, JSON.stringify(settings, null, 4), "utf8", () => {
}); });