Skip to content

Commit 40e11d7

Browse files
Merge pull request #178 from OS2iot/feature/IOT-1583-MoveApplication
Feature/IOT-1583-MoveApplication
2 parents 5fb82e0 + b34c8d9 commit 40e11d7

File tree

6 files changed

+60
-19
lines changed

6 files changed

+60
-19
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 PermissionGetManySlimResponse {
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+
PermissionGetManySlimResponse,
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> {
@@ -75,6 +77,33 @@ export class PermissionService {
7577
}
7678
}
7779

80+
getPermissionsWhereApplicationAdmin(
81+
limit: number = 1000,
82+
offset: number = 0,
83+
orderByColumn?: string,
84+
orderByDirection?: string,
85+
userId?: number,
86+
organisationId?: number
87+
): Observable<PermissionGetManySlimResponse> {
88+
if (userId || organisationId) {
89+
return this.restService.get(this.endpoint + this.applicationAdmin, {
90+
limit: limit,
91+
offset: offset,
92+
orderOn: orderByColumn,
93+
sort: orderByDirection,
94+
userId: userId,
95+
organisationId: organisationId,
96+
});
97+
} else {
98+
return this.restService.get(this.endpoint + this.applicationAdmin, {
99+
limit: limit,
100+
offset: offset,
101+
orderOn: orderByColumn,
102+
sort: orderByDirection,
103+
});
104+
}
105+
}
106+
78107
getPermissionsWithoutUsers(userId?: number): Observable<PermissionGetManyResponse> {
79108
return this.restService.get(this.endpoint + "/getAllPermissionsWithoutUsers", {
80109
limit: 1000,

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: 14 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,20 @@ 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+
this.permissions = res.data.sort((a, b) => a.name.localeCompare(b.name, "da-DK", { numeric: true }));
74+
this.filteredPermissionsMulti.next(
75+
this.permissions.filter(p => p?.organization?.id === this?.application?.organizationId)
76+
);
77+
});
7678
}
7779

7880
public compare(o1: any, o2: any): boolean {
@@ -99,12 +101,13 @@ export class ApplicationChangeOrganizationDialogComponent implements OnInit {
99101
applicationName: savedApplication.name,
100102
organizationName: savedApplication.belongsTo.name,
101103
}),
102-
"",
104+
this.translate.instant("DIALOG.OK"),
103105
{
104106
duration: 10000,
105107
}
106108
);
107109
this.dialog.close(true);
110+
this.snackBar._openedSnackBarRef.afterDismissed().subscribe(() => location.reload());
108111
});
109112
}
110113
}

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -273,17 +273,11 @@ export class ApplicationsTableComponent implements AfterViewInit, OnInit {
273273
}
274274

275275
onOpenChangeOrganizationDialog(id: number) {
276-
const dialog = this.changeOrganizationDialog.open(ApplicationChangeOrganizationDialogComponent, {
276+
this.changeOrganizationDialog.open(ApplicationChangeOrganizationDialogComponent, {
277277
data: {
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)