From c4b63e47f8f38e48363c7e62f19c8494432e1bc7 Mon Sep 17 00:00:00 2001 From: Mads Apollo Lauridsen <mal@iterator-it.dk> Date: Fri, 20 Sep 2024 11:18:32 +0200 Subject: [PATCH 1/3] Added sorting of organizations, padding for dialog, and call to get permissions where applicationadmin --- src/app/admin/permission/permission.model.ts | 10 +++++++ .../admin/permission/permission.service.ts | 29 +++++++++++++++++++ ...-change-organization-dialog.component.html | 2 +- ...-change-organization-dialog.component.scss | 5 ++++ ...on-change-organization-dialog.component.ts | 26 ++++++++++------- .../applications-table.component.ts | 6 ---- 6 files changed, 60 insertions(+), 18 deletions(-) diff --git a/src/app/admin/permission/permission.model.ts b/src/app/admin/permission/permission.model.ts index 4d85096d..98d30b75 100644 --- a/src/app/admin/permission/permission.model.ts +++ b/src/app/admin/permission/permission.model.ts @@ -39,6 +39,16 @@ export interface PermissionGetManyResponse { count: number; } +export type PermissionsSlimDto = Pick< + PermissionResponse, + "id" | "name" | "automaticallyAddNewApplications" | "organization" +>; + +export interface PermissionGetManyWhereApplicationAdminResponse { + data: PermissionsSlimDto[]; + count: number; +} + export interface PermissionTypes { type: PermissionType; } diff --git a/src/app/admin/permission/permission.service.ts b/src/app/admin/permission/permission.service.ts index 83bc2040..4dbb274b 100644 --- a/src/app/admin/permission/permission.service.ts +++ b/src/app/admin/permission/permission.service.ts @@ -6,6 +6,7 @@ import { PermissionResponse, PermissionRequest, PermissionRequestAcceptUser, + PermissionGetManyWhereApplicationAdminResponse, } from "./permission.model"; import { map } from "rxjs/operators"; import { UserMinimalService } from "../users/user-minimal.service"; @@ -15,6 +16,7 @@ import { UserMinimalService } from "../users/user-minimal.service"; }) export class PermissionService { endpoint = "permission"; + applicationAdmin = "/applicationAdmin"; constructor(private restService: RestService, private userMinimalService: UserMinimalService) {} createPermission(body: PermissionRequest): Observable<PermissionResponse> { @@ -72,6 +74,33 @@ export class PermissionService { } } + getPermissionsWhereApplicationAdmin( + limit: number = 1000, + offset: number = 0, + orderByColumn?: string, + orderByDirection?: string, + userId?: number, + organisationId?: number + ): Observable<PermissionGetManyWhereApplicationAdminResponse> { + if (userId || organisationId) { + return this.restService.get(this.endpoint + this.applicationAdmin, { + limit: limit, + offset: offset, + orderOn: orderByColumn, + sort: orderByDirection, + userId: userId, + organisationId: organisationId, + }); + } else { + return this.restService.get(this.endpoint + this.applicationAdmin, { + limit: limit, + offset: offset, + orderOn: orderByColumn, + sort: orderByDirection, + }); + } + } + deletePermission(id: number) { return this.restService.delete(this.endpoint, id); } diff --git a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.html b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.html index 8e25a205..100d0b3d 100644 --- a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.html +++ b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.html @@ -35,7 +35,7 @@ <h1 mat-dialog-title>{{ "APPLICATION.CHANGE-ORGANIZATION.TITLE" | translate }}</ <mat-hint>{{ "APPLICATION.CHANGE-ORGANIZATION.USER-GROUP-AUTO-SELECT" | translate }}</mat-hint> </div> </div> - <div mat-dialog-actions class="d-flex flex-row"> + <div mat-dialog-actions class="d-flex flex-row mat-dialog-actions"> <button (click)="onSubmit()" class="btn btn-primary"> {{ "GEN.SAVE" | translate }} </button> diff --git a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.scss b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.scss index 5731c5e9..448b8185 100644 --- a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.scss +++ b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.scss @@ -1,3 +1,8 @@ .application-change-organization-dialog { width: 50vw; } + +.mat-dialog-actions { + margin-left: 13px; + margin-bottom: 13px; +} diff --git a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts index 05eaebb6..ab6765bb 100644 --- a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts +++ b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts @@ -4,7 +4,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog"; import { MatSnackBar } from "@angular/material/snack-bar"; import { Organisation } from "@app/admin/organisation/organisation.model"; import { OrganisationService } from "@app/admin/organisation/organisation.service"; -import { PermissionResponse } from "@app/admin/permission/permission.model"; +import { PermissionResponse, PermissionsSlimDto } from "@app/admin/permission/permission.model"; import { PermissionService } from "@app/admin/permission/permission.service"; import { Application, UpdateApplicationOrganization } from "@applications/application.model"; import { ApplicationService } from "@applications/application.service"; @@ -23,9 +23,9 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit { public permissionsSubscription: Subscription; public organizationsSubscription: Subscription; public application: UpdateApplicationOrganization; - public permissions: PermissionResponse[]; + public permissions: PermissionsSlimDto[]; public organizations: Organisation[]; - public filteredPermissionsMulti: ReplaySubject<PermissionResponse[]> = new ReplaySubject<PermissionResponse[]>(1); + public filteredPermissionsMulti: ReplaySubject<PermissionsSlimDto[]> = new ReplaySubject<PermissionsSlimDto[]>(1); public filteredOrganizations: ReplaySubject<Organisation[]> = new ReplaySubject<Organisation[]>(1); constructor( @@ -61,18 +61,21 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit { getOrganizations() { this.organizationsSubscription = this.organizationService.getMultipleWithApplicationAdmin().subscribe(res => { - this.organizations = res.data; + this.organizations = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true })); this.filteredOrganizations.next(this.organizations.slice()); }); } getPermissions() { - this.permissionsSubscription = this.permissionService.getPermissions(1000, 0).subscribe(res => { - this.permissions = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true })); - this.filteredPermissionsMulti.next( - this.permissions.filter(p => p?.organization?.id === this?.application?.organizationId) - ); - }); + this.permissionsSubscription = this.permissionService + .getPermissionsWhereApplicationAdmin(1000, 0) + .subscribe(res => { + console.log(res.data, "dat"); + this.permissions = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true })); + this.filteredPermissionsMulti.next( + this.permissions.filter(p => p?.organization?.id === this?.application?.organizationId) + ); + }); } public compare(o1: any, o2: any): boolean { @@ -99,12 +102,13 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit { applicationName: savedApplication.name, organizationName: savedApplication.belongsTo.name, }), - "", + this.translate.instant("DIALOG.OK"), { duration: 10000, } ); this.dialog.close(true); + this.snackBar._openedSnackBarRef.afterDismissed().subscribe(() => location.reload()); }); } } diff --git a/src/app/applications/applications-list/applications-table/applications-table.component.ts b/src/app/applications/applications-list/applications-table/applications-table.component.ts index 30d94840..64972c98 100644 --- a/src/app/applications/applications-list/applications-table/applications-table.component.ts +++ b/src/app/applications/applications-list/applications-table/applications-table.component.ts @@ -278,12 +278,6 @@ export class ApplicationsTableComponent implements AfterViewInit, OnInit { applicationId: id, } as ApplicationDialogModel, }); - - dialog.afterClosed().subscribe(res => { - if (!res) return; - - location.reload(); - }); } protected readonly columnDefinitions = columnDefinitions; From 743587b12838bd912e57b9fbbb8d91e9162b65bb Mon Sep 17 00:00:00 2001 From: Mads Apollo Lauridsen <mal@iterator-it.dk> Date: Fri, 20 Sep 2024 11:32:26 +0200 Subject: [PATCH 2/3] removed log, and unused variable. --- .../application-change-organization-dialog.component.ts | 1 - .../applications-table/applications-table.component.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts index ab6765bb..a38f69d9 100644 --- a/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts +++ b/src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts @@ -70,7 +70,6 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit { this.permissionsSubscription = this.permissionService .getPermissionsWhereApplicationAdmin(1000, 0) .subscribe(res => { - console.log(res.data, "dat"); this.permissions = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true })); this.filteredPermissionsMulti.next( this.permissions.filter(p => p?.organization?.id === this?.application?.organizationId) diff --git a/src/app/applications/applications-list/applications-table/applications-table.component.ts b/src/app/applications/applications-list/applications-table/applications-table.component.ts index 64972c98..3b469b6b 100644 --- a/src/app/applications/applications-list/applications-table/applications-table.component.ts +++ b/src/app/applications/applications-list/applications-table/applications-table.component.ts @@ -273,7 +273,7 @@ export class ApplicationsTableComponent implements AfterViewInit, OnInit { } onOpenChangeOrganizationDialog(id: number) { - const dialog = this.changeOrganizationDialog.open(ApplicationChangeOrganizationDialogComponent, { + this.changeOrganizationDialog.open(ApplicationChangeOrganizationDialogComponent, { data: { applicationId: id, } as ApplicationDialogModel, From b34c8d9375f924f739b16524b294cd73eb069915 Mon Sep 17 00:00:00 2001 From: Frederik Christ Vestergaard <fcv@iterator-it.dk> Date: Thu, 26 Sep 2024 13:49:12 +0200 Subject: [PATCH 3/3] Renamed long interface name --- src/app/admin/permission/permission.model.ts | 2 +- src/app/admin/permission/permission.service.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/admin/permission/permission.model.ts b/src/app/admin/permission/permission.model.ts index 98d30b75..52e457a0 100644 --- a/src/app/admin/permission/permission.model.ts +++ b/src/app/admin/permission/permission.model.ts @@ -44,7 +44,7 @@ export type PermissionsSlimDto = Pick< "id" | "name" | "automaticallyAddNewApplications" | "organization" >; -export interface PermissionGetManyWhereApplicationAdminResponse { +export interface PermissionGetManySlimResponse { data: PermissionsSlimDto[]; count: number; } diff --git a/src/app/admin/permission/permission.service.ts b/src/app/admin/permission/permission.service.ts index b4366d7d..4f46bffd 100644 --- a/src/app/admin/permission/permission.service.ts +++ b/src/app/admin/permission/permission.service.ts @@ -6,7 +6,7 @@ import { PermissionResponse, PermissionRequest, PermissionRequestAcceptUser, - PermissionGetManyWhereApplicationAdminResponse, + PermissionGetManySlimResponse, } from "./permission.model"; import { map } from "rxjs/operators"; import { UserMinimalService } from "../users/user-minimal.service"; @@ -72,6 +72,7 @@ export class PermissionService { offset: offset, orderOn: orderByColumn, sort: orderByDirection, + ignoreGlobalAdmin: ignoreGlobalAdmin, }); } } @@ -83,7 +84,7 @@ export class PermissionService { orderByDirection?: string, userId?: number, organisationId?: number - ): Observable<PermissionGetManyWhereApplicationAdminResponse> { + ): Observable<PermissionGetManySlimResponse> { if (userId || organisationId) { return this.restService.get(this.endpoint + this.applicationAdmin, { limit: limit, @@ -99,7 +100,6 @@ export class PermissionService { offset: offset, orderOn: orderByColumn, sort: orderByDirection, - ignoreGlobalAdmin: ignoreGlobalAdmin, }); } }