Skip to content

Commit c4b63e4

Browse files
committed
Added sorting of organizations, padding for dialog, and call to get permissions where applicationadmin
1 parent ec9810c commit c4b63e4

File tree

6 files changed

+60
-18
lines changed

6 files changed

+60
-18
lines changed

src/app/admin/permission/permission.model.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ export interface PermissionGetManyResponse {
3939
count: number;
4040
}
4141

42+
export type PermissionsSlimDto = Pick<
43+
PermissionResponse,
44+
"id" | "name" | "automaticallyAddNewApplications" | "organization"
45+
>;
46+
47+
export interface PermissionGetManyWhereApplicationAdminResponse {
48+
data: PermissionsSlimDto[];
49+
count: number;
50+
}
51+
4252
export interface PermissionTypes {
4353
type: PermissionType;
4454
}

src/app/admin/permission/permission.service.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
PermissionResponse,
77
PermissionRequest,
88
PermissionRequestAcceptUser,
9+
PermissionGetManyWhereApplicationAdminResponse,
910
} from "./permission.model";
1011
import { map } from "rxjs/operators";
1112
import { UserMinimalService } from "../users/user-minimal.service";
@@ -15,6 +16,7 @@ import { UserMinimalService } from "../users/user-minimal.service";
1516
})
1617
export class PermissionService {
1718
endpoint = "permission";
19+
applicationAdmin = "/applicationAdmin";
1820
constructor(private restService: RestService, private userMinimalService: UserMinimalService) {}
1921

2022
createPermission(body: PermissionRequest): Observable<PermissionResponse> {
@@ -72,6 +74,33 @@ export class PermissionService {
7274
}
7375
}
7476

77+
getPermissionsWhereApplicationAdmin(
78+
limit: number = 1000,
79+
offset: number = 0,
80+
orderByColumn?: string,
81+
orderByDirection?: string,
82+
userId?: number,
83+
organisationId?: number
84+
): Observable<PermissionGetManyWhereApplicationAdminResponse> {
85+
if (userId || organisationId) {
86+
return this.restService.get(this.endpoint + this.applicationAdmin, {
87+
limit: limit,
88+
offset: offset,
89+
orderOn: orderByColumn,
90+
sort: orderByDirection,
91+
userId: userId,
92+
organisationId: organisationId,
93+
});
94+
} else {
95+
return this.restService.get(this.endpoint + this.applicationAdmin, {
96+
limit: limit,
97+
offset: offset,
98+
orderOn: orderByColumn,
99+
sort: orderByDirection,
100+
});
101+
}
102+
}
103+
75104
deletePermission(id: number) {
76105
return this.restService.delete(this.endpoint, id);
77106
}

src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ <h1 mat-dialog-title>{{ "APPLICATION.CHANGE-ORGANIZATION.TITLE" | translate }}</
3535
<mat-hint>{{ "APPLICATION.CHANGE-ORGANIZATION.USER-GROUP-AUTO-SELECT" | translate }}</mat-hint>
3636
</div>
3737
</div>
38-
<div mat-dialog-actions class="d-flex flex-row">
38+
<div mat-dialog-actions class="d-flex flex-row mat-dialog-actions">
3939
<button (click)="onSubmit()" class="btn btn-primary">
4040
{{ "GEN.SAVE" | translate }}
4141
</button>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
.application-change-organization-dialog {
22
width: 50vw;
33
}
4+
5+
.mat-dialog-actions {
6+
margin-left: 13px;
7+
margin-bottom: 13px;
8+
}

src/app/applications/application-change-organization-dialog/application-change-organization-dialog.component.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
44
import { MatSnackBar } from "@angular/material/snack-bar";
55
import { Organisation } from "@app/admin/organisation/organisation.model";
66
import { OrganisationService } from "@app/admin/organisation/organisation.service";
7-
import { PermissionResponse } from "@app/admin/permission/permission.model";
7+
import { PermissionResponse, PermissionsSlimDto } from "@app/admin/permission/permission.model";
88
import { PermissionService } from "@app/admin/permission/permission.service";
99
import { Application, UpdateApplicationOrganization } from "@applications/application.model";
1010
import { ApplicationService } from "@applications/application.service";
@@ -23,9 +23,9 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit {
2323
public permissionsSubscription: Subscription;
2424
public organizationsSubscription: Subscription;
2525
public application: UpdateApplicationOrganization;
26-
public permissions: PermissionResponse[];
26+
public permissions: PermissionsSlimDto[];
2727
public organizations: Organisation[];
28-
public filteredPermissionsMulti: ReplaySubject<PermissionResponse[]> = new ReplaySubject<PermissionResponse[]>(1);
28+
public filteredPermissionsMulti: ReplaySubject<PermissionsSlimDto[]> = new ReplaySubject<PermissionsSlimDto[]>(1);
2929
public filteredOrganizations: ReplaySubject<Organisation[]> = new ReplaySubject<Organisation[]>(1);
3030

3131
constructor(
@@ -61,18 +61,21 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit {
6161

6262
getOrganizations() {
6363
this.organizationsSubscription = this.organizationService.getMultipleWithApplicationAdmin().subscribe(res => {
64-
this.organizations = res.data;
64+
this.organizations = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true }));
6565
this.filteredOrganizations.next(this.organizations.slice());
6666
});
6767
}
6868

6969
getPermissions() {
70-
this.permissionsSubscription = this.permissionService.getPermissions(1000, 0).subscribe(res => {
71-
this.permissions = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true }));
72-
this.filteredPermissionsMulti.next(
73-
this.permissions.filter(p => p?.organization?.id === this?.application?.organizationId)
74-
);
75-
});
70+
this.permissionsSubscription = this.permissionService
71+
.getPermissionsWhereApplicationAdmin(1000, 0)
72+
.subscribe(res => {
73+
console.log(res.data, "dat");
74+
this.permissions = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true }));
75+
this.filteredPermissionsMulti.next(
76+
this.permissions.filter(p => p?.organization?.id === this?.application?.organizationId)
77+
);
78+
});
7679
}
7780

7881
public compare(o1: any, o2: any): boolean {
@@ -99,12 +102,13 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit {
99102
applicationName: savedApplication.name,
100103
organizationName: savedApplication.belongsTo.name,
101104
}),
102-
"",
105+
this.translate.instant("DIALOG.OK"),
103106
{
104107
duration: 10000,
105108
}
106109
);
107110
this.dialog.close(true);
111+
this.snackBar._openedSnackBarRef.afterDismissed().subscribe(() => location.reload());
108112
});
109113
}
110114
}

src/app/applications/applications-list/applications-table/applications-table.component.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -278,12 +278,6 @@ export class ApplicationsTableComponent implements AfterViewInit, OnInit {
278278
applicationId: id,
279279
} as ApplicationDialogModel,
280280
});
281-
282-
dialog.afterClosed().subscribe(res => {
283-
if (!res) return;
284-
285-
location.reload();
286-
});
287281
}
288282

289283
protected readonly columnDefinitions = columnDefinitions;

0 commit comments

Comments
 (0)