11import { Component , Inject , OnInit } from "@angular/core" ;
22import { UntypedFormControl } from "@angular/forms" ;
3- import { MAT_DIALOG_DATA } from "@angular/material/dialog" ;
3+ import { MAT_DIALOG_DATA , MatDialogRef } from "@angular/material/dialog" ;
44import { Organisation } from "@app/admin/organisation/organisation.model" ;
55import { OrganisationService } from "@app/admin/organisation/organisation.service" ;
66import { PermissionResponse } from "@app/admin/permission/permission.model" ;
77import { PermissionService } from "@app/admin/permission/permission.service" ;
88import { Application , UpdateApplicationOrganization } from "@applications/application.model" ;
9+ import { ApplicationService } from "@applications/application.service" ;
910import { TranslateService } from "@ngx-translate/core" ;
1011import { ApplicationDialogModel } from "@shared/models/dialog.model" ;
11- import { MeService } from "@shared/services/me.service" ;
12- import { RestService } from "@shared/services/rest.service" ;
1312import { SharedVariableService } from "@shared/shared-variable/shared-variable.service" ;
1413import { ReplaySubject , Subscription } from "rxjs" ;
1514
@@ -23,24 +22,22 @@ export class ChangeOrganizationDialogComponent implements OnInit {
2322 public permissionsSubscription : Subscription ;
2423 public organizationsSubscription : Subscription ;
2524 public permissionMultiCtrl : UntypedFormControl = new UntypedFormControl ( ) ;
26- public permissionMultiFilterCtrl : UntypedFormControl = new UntypedFormControl ( ) ;
2725 public application : UpdateApplicationOrganization ;
2826 public permissions : PermissionResponse [ ] ;
2927 public organizations : Organisation [ ] ;
3028 public filteredPermissionsMulti : ReplaySubject < PermissionResponse [ ] > = new ReplaySubject < PermissionResponse [ ] > ( 1 ) ;
31- public filteredOrganizationsMulti : ReplaySubject < Organisation [ ] > = new ReplaySubject < Organisation [ ] > ( 1 ) ;
29+ public filteredOrganizations : ReplaySubject < Organisation [ ] > = new ReplaySubject < Organisation [ ] > ( 1 ) ;
3230
3331 constructor (
34- private restService : RestService ,
32+ private applicationService : ApplicationService ,
3533 public translate : TranslateService ,
3634 private permissionService : PermissionService ,
3735 private organizationService : OrganisationService ,
3836 private sharedVariableService : SharedVariableService ,
39- private meService : MeService ,
37+ private dialog : MatDialogRef < ChangeOrganizationDialogComponent > ,
4038 @Inject ( MAT_DIALOG_DATA ) public dialogModel : ApplicationDialogModel
4139 ) {
4240 this . application = {
43- applicationId : this . dialogModel . id ,
4441 organizationId : this . dialogModel . organizationId ?? this . sharedVariableService . getSelectedOrganisationId ( ) ,
4542 permissionIds : [ ] ,
4643 } ;
@@ -56,45 +53,31 @@ export class ChangeOrganizationDialogComponent implements OnInit {
5653 this . getPermissions ( ) ;
5754 }
5855
59- public compare ( o1 : any , o2 : any ) : boolean {
60- return o1 === o2 ;
61- }
62-
6356 getApplication ( id : number ) : void {
64- this . applicationsSubscription = this . restService
65- . get ( "application" , { } , id )
66- . subscribe ( ( application : Application ) => {
67- this . application . permissionIds = application . permissionIds ;
68- this . permissionMultiCtrl . setValue ( this . application . permissionIds ) ;
69- } ) ;
57+ this . applicationsSubscription = this . applicationService . getApplication ( id ) . subscribe ( ( application : Application ) => {
58+ this . application . permissionIds = application . permissionIds ;
59+ this . permissionMultiCtrl . setValue ( this . application . permissionIds ) ;
60+ } ) ;
7061 }
7162
7263 getOrganizations ( ) {
7364 this . organizationsSubscription = this . organizationService . getMinimal ( ) . subscribe ( res => {
7465 this . organizations = res . data ;
75- this . filteredOrganizationsMulti . next ( this . organizations . slice ( ) ) ;
66+ this . filteredOrganizations . next ( this . organizations . slice ( ) ) ;
7667 } ) ;
7768 }
7869
7970 getPermissions ( ) {
80- this . permissionsSubscription = this . permissionService
81- . getPermissions (
82- 1000 ,
83- 0 ,
84- undefined ,
85- undefined ,
86- this . meService . hasGlobalAdmin ( ) ? undefined : this . sharedVariableService . getUserInfo ( ) . user . id
87- )
88- . subscribe ( res => {
89- this . permissions = res . data . sort ( ( a , b ) => a . name . localeCompare ( b . name , "da-DK" , { numeric : true } ) ) ;
90- this . filteredPermissionsMulti . next (
91- this . permissions . filter ( p => p ?. organization ?. id === this ?. application ?. organizationId )
92- ) ;
93- if ( ! this . dialogModel . id ) {
94- this . application . permissionIds = [ this . permissions [ 0 ] . id ] ;
95- this . permissionMultiCtrl . setValue ( this . application . permissionIds ) ;
96- }
97- } ) ;
71+ this . permissionsSubscription = this . permissionService . getPermissions ( 1000 , 0 ) . subscribe ( res => {
72+ this . permissions = res . data . sort ( ( a , b ) => a . name . localeCompare ( b . name , "da-DK" , { numeric : true } ) ) ;
73+ this . filteredPermissionsMulti . next (
74+ this . permissions . filter ( p => p ?. organization ?. id === this ?. application ?. organizationId )
75+ ) ;
76+ } ) ;
77+ }
78+
79+ public compare ( o1 : any , o2 : any ) : boolean {
80+ return o1 === o2 ;
9881 }
9982
10083 onOrganizationChange ( ) {
@@ -107,4 +90,12 @@ export class ChangeOrganizationDialogComponent implements OnInit {
10790 ) ;
10891 } ) ;
10992 }
93+
94+ onSubmit ( ) {
95+ this . applicationsSubscription = this . applicationService
96+ . updateApplicationOrganization ( this . application , this . dialogModel . id )
97+ . subscribe ( ( ) => {
98+ this . dialog . close ( ) ;
99+ } ) ;
100+ }
110101}
0 commit comments