refactor: Verwende GUID anstelle des Konstruktor-Namens für Button-Sichtbarkeit; Webanwendung im wwwroot aktualisiert

- Ersetzt die Nutzung des Konstruktor-Namens durch eine GUID (`id`) in der `BaseButtonService`-Klasse, um Button-Sichtbarkeitsprobleme zu beheben.
- Aktualisiert die `ButtonVisibilityService`-Klasse zur Verwendung der GUIDs zur Identifikation von Buttons.
- Webanwendung im `wwwroot`-Verzeichnis auf den neuesten Stand gebracht.
This commit is contained in:
Developer 02 2024-08-28 14:18:10 +02:00
parent f4f02d1ee5
commit c8bcb5a6ac
11 changed files with 68 additions and 61 deletions

View File

@ -38,6 +38,7 @@
"@types/express": "^4.17.17", "@types/express": "^4.17.17",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"@types/node": "^18.18.0", "@types/node": "^18.18.0",
"@types/uuid": "^10.0.0",
"jasmine-core": "~5.1.0", "jasmine-core": "~5.1.0",
"karma": "~6.4.0", "karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0", "karma-chrome-launcher": "~3.2.0",
@ -4793,6 +4794,12 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/uuid": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
"integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
"dev": true
},
"node_modules/@types/ws": { "node_modules/@types/ws": {
"version": "8.5.10", "version": "8.5.10",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",

View File

@ -41,6 +41,7 @@
"@types/express": "^4.17.17", "@types/express": "^4.17.17",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"@types/node": "^18.18.0", "@types/node": "^18.18.0",
"@types/uuid": "^10.0.0",
"jasmine-core": "~5.1.0", "jasmine-core": "~5.1.0",
"karma": "~6.4.0", "karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0", "karma-chrome-launcher": "~3.2.0",

View File

@ -1,16 +1,15 @@
import { Injectable, inject } from "@angular/core"; import { Injectable, inject } from "@angular/core";
import { ButtonVisibilityService } from "./button-visibility.service"; import { ButtonVisibilityService } from "./button-visibility.service";
import { v4 as uuidv4 } from 'uuid';
export class BaseButtonService { export class BaseButtonService {
readonly id = uuidv4().toString();
constructor() { constructor() {
const bvService = inject(ButtonVisibilityService); const bvService = inject(ButtonVisibilityService);
bvService.buttons[this.constructorName] = this; bvService.buttons[this.id] = this;
} }
public isVisible: boolean = true; public isVisible: boolean = true;
public get constructorName() {
return this.constructor.name;
}
} }

View File

@ -24,7 +24,7 @@ export class ButtonVisibilityService {
} }
setVisibleOnly(...buttons: BaseButtonService[]) { setVisibleOnly(...buttons: BaseButtonService[]) {
const keys = buttons.map(b => b.constructorName) const keys = buttons.map(b => b.id)
for (const key in this._buttons) { for (const key in this._buttons) {
if (keys.includes(key)) { if (keys.includes(key)) {
this.setVisibility(key, true) this.setVisibility(key, true)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long