diff --git a/web/src/app/model/entities/api-key.ts b/web/src/app/model/entities/api-key.ts index 987f5c0..a60b82f 100644 --- a/web/src/app/model/entities/api-key.ts +++ b/web/src/app/model/entities/api-key.ts @@ -1,9 +1,10 @@ -import { DbModel } from "src/app/model/entities/db-model"; -import { Permission } from "src/app/model/entities/role"; +import { DbModel } from 'src/app/model/entities/db-model'; +import { Permission } from 'src/app/model/entities/role'; export interface ApiKey extends DbModel { identifier?: string; key?: string; + description?: string; permissions?: Permission[]; } diff --git a/web/src/app/modules/admin/administration/api-keys/api-keys.data.service.ts b/web/src/app/modules/admin/administration/api-keys/api-keys.data.service.ts index 3c0c1cd..24b6bf9 100644 --- a/web/src/app/modules/admin/administration/api-keys/api-keys.data.service.ts +++ b/web/src/app/modules/admin/administration/api-keys/api-keys.data.service.ts @@ -91,14 +91,16 @@ export class ApiKeysDataService .query<{ apiKeys: QueryResult }>({ query: gql` query getApiKey($id: Int) { - apiKey(filter: { id: { equal: $id } }) { - id - identifier - permissions { - name - } + apiKeys(filter: { id: { equal: $id } }) { + nodes { + id + identifier + permissions { + name + } - ...DB_MODEL + ...DB_MODEL + } } } diff --git a/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.html b/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.html index a4f5628..8cdc353 100644 --- a/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.html +++ b/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.html @@ -1,63 +1,65 @@ - -

- {{ 'common.api_key' | translate }} - {{ - (isUpdate ? 'sidebar.header.update' : 'sidebar.header.create') - | translate - }} -

-
+ *ngIf="node" + [formGroup]="form" + [isUpdate]="isUpdate" + (onSave)="save()" + (onClose)="close()"> + +

+ {{ 'common.role' | translate }} + {{ + (isUpdate ? 'sidebar.header.update' : 'sidebar.header.create') + | translate + }} +

+
- -
-

{{ 'common.id' | translate }}

- -
-
-

{{ 'common.identifier' | translate }}

- -
-
- -
-
-
-
- -
- -
-
- -
- - - > - -
+ +
+

{{ 'common.id' | translate }}

+
-
-
- +
+

{{ 'common.identifier' | translate }}

+ +
+
+ +
+
+
+
+ +
+ +
+
+ +
+
+ + + +
+
+

+ {{ permission.description }} +

+
+
+
+
+
+ diff --git a/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.ts b/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.ts index 5b2d941..84e6ce1 100644 --- a/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.ts +++ b/web/src/app/modules/admin/administration/api-keys/form-page/api-key-form-page.component.ts @@ -11,6 +11,7 @@ import { ApiKeyUpdateInput, } from 'src/app/model/entities/api-key'; import { ApiKeysDataService } from 'src/app/modules/admin/administration/api-keys/api-keys.data.service'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-api-key-form-page', @@ -26,7 +27,10 @@ export class ApiKeyFormPageComponent extends FormPageBase< permissionGroups: { [key: string]: Permission[] } = {}; allPermissions: Permission[] = []; - constructor(private toast: ToastService) { + constructor( + private toast: ToastService, + private translate: TranslateService + ) { super(); this.initializePermissions().then(() => { if (!this.nodeId) { @@ -36,12 +40,10 @@ export class ApiKeyFormPageComponent extends FormPageBase< return; } - this.dataService - .load([{ id: { equal: this.nodeId } }]) - .subscribe(apiKey => { - this.node = apiKey.nodes[0]; - this.setForm(this.node); - }); + this.dataService.loadById(this.nodeId).subscribe(apiKey => { + this.node = apiKey; + this.setForm(this.node); + }); }); } @@ -49,7 +51,12 @@ export class ApiKeyFormPageComponent extends FormPageBase< const permissions = await firstValueFrom( this.dataService.getAllPermissions() ); - this.allPermissions = permissions; + this.allPermissions = permissions.map(x => { + const key = `permission_descriptions.${x.name}`; + const description = this.translate.instant(key); + x.description = description === key ? undefined : description; + return x; + }); this.permissionGroups = permissions.reduce( (acc, p) => { const group = p.name.includes('.') ? p.name.split('.')[0] : p.name; diff --git a/web/src/assets/i18n/de.json b/web/src/assets/i18n/de.json index abff6b2..5cac921 100644 --- a/web/src/assets/i18n/de.json +++ b/web/src/assets/i18n/de.json @@ -101,6 +101,10 @@ "ip_list.create": "Erstellen", "ip_list.delete": "Löschen", "ip_list.update": "Bearbeiten", + "news": "Nachrichten", + "news.create": "Erstellen", + "news.delete": "Löschen", + "news.update": "Bearbeiten", "roles": "Rollen", "roles.create": "Erstellen", "roles.delete": "Löschen", diff --git a/web/src/assets/i18n/en.json b/web/src/assets/i18n/en.json index d8bfea7..36b8ad3 100644 --- a/web/src/assets/i18n/en.json +++ b/web/src/assets/i18n/en.json @@ -101,6 +101,10 @@ "ip_list.create": "Create", "ip_list.delete": "Delete", "ip_list.update": "Update", + "news": "News", + "news.create": "Create", + "news.delete": "Delete", + "news.update": "Update", "roles": "Roles", "roles.create": "Create", "roles.delete": "Delete",