From b94e77e0b9defad512a7eef976ab32a140416855 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Mon, 15 Jun 2026 16:42:18 +0300 Subject: [PATCH] update: identity package for the latest upgrade (state management and html properties) --- npm/ng-packs/packages/identity/project.json | 2 +- .../lib/components/roles/roles.component.html | 39 +++++++++---------- .../lib/components/roles/roles.component.ts | 38 ++++++++---------- .../lib/components/users/users.component.html | 32 +++++++-------- .../lib/components/users/users.component.ts | 25 +++++------- 5 files changed, 60 insertions(+), 76 deletions(-) diff --git a/npm/ng-packs/packages/identity/project.json b/npm/ng-packs/packages/identity/project.json index cbded9c762..d770952fe4 100644 --- a/npm/ng-packs/packages/identity/project.json +++ b/npm/ng-packs/packages/identity/project.json @@ -31,7 +31,7 @@ "executor": "@nx/vitest:test", "outputs": ["{options.reportsDirectory}"], "options": { - "reportsDirectory": "../../coverage/packages/identity" + "reportsDirectory": "{projectRoot}/../../coverage/packages/identity" } } } diff --git a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html index 683f3437f0..a1b9576b2b 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html +++ b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html @@ -1,11 +1,11 @@ - +
+ />
@@ -16,7 +16,7 @@
- +
@@ -26,26 +26,25 @@ {{ 'AbpIdentity::Save' | abpLocalization - }} + }} - + />
diff --git a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts index d7d4150a4d..9d16ef0162 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts +++ b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts @@ -1,10 +1,15 @@ +import { Component, inject, Injector } from '@angular/core'; +import { toSignal } from '@angular/core/rxjs-interop'; +import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; +import { finalize } from 'rxjs/operators'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; import { InitDirective, ListService, LocalizationPipe, PagedAndSortedResultRequestDto, PagedResultDto, - ReplaceableTemplateDirective + ReplaceableTemplateDirective, } from '@abp/ng.core'; import { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy'; import { @@ -26,12 +31,8 @@ import { FormPropData, generateFormFromProps, } from '@abp/ng.components/extensible'; -import { Component, inject, Injector, OnInit } from '@angular/core'; -import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; -import { finalize } from 'rxjs/operators'; -import { eIdentityComponents } from '../../enums/components'; import { PageComponent } from '@abp/ng.components/page'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { eIdentityComponents } from '../../enums/components'; @Component({ selector: 'abp-roles', @@ -58,14 +59,17 @@ import { NgxValidateCoreModule } from '@ngx-validate/core'; InitDirective, ], }) -export class RolesComponent implements OnInit { +export class RolesComponent { protected readonly list = inject(ListService); protected readonly confirmationService = inject(ConfirmationService); protected readonly toasterService = inject(ToasterService); private readonly injector = inject(Injector); protected readonly service = inject(IdentityRoleService); - data: PagedResultDto = { items: [], totalCount: 0 }; + readonly data = toSignal( + this.list.hookToQuery(query => this.service.getList(query)), + { initialValue: { items: [], totalCount: 0 } as PagedResultDto }, + ); form!: UntypedFormGroup; selected?: IdentityRoleDto; isModalVisible!: boolean; @@ -78,10 +82,6 @@ export class RolesComponent implements OnInit { this.visiblePermissions = event; }; - ngOnInit() { - this.hookToQuery(); - } - buildForm() { const data = new FormPropData(this.injector, this.selected); this.form = generateFormFromProps(data); @@ -128,20 +128,14 @@ export class RolesComponent implements OnInit { }) .subscribe((status: Confirmation.Status) => { if (status === Confirmation.Status.confirm) { - this.toasterService.success('AbpUi::DeletedSuccessfully'); - this.service.delete(id).subscribe(() => this.list.get()); + this.service.delete(id).subscribe(() => { + this.toasterService.success('AbpUi::DeletedSuccessfully'); + this.list.get(); + }); } }); } - private hookToQuery() { - this.list - .hookToQuery(query => this.service.getList(query)) - .subscribe(res => { - this.data = res; - }); - } - openPermissionsModal(providerKey: string) { this.providerKey = providerKey; setTimeout(() => { diff --git a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html index 17b0eea2a1..403ba42cfd 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html +++ b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html @@ -1,4 +1,4 @@ - +
@@ -13,10 +13,10 @@
+ />
@@ -32,28 +32,27 @@
  • {{ 'AbpIdentity::UserInformations' | abpLocalization }} - +
  • {{ 'AbpIdentity::Roles' | abpLocalization }} @for (roleGroup of roleGroups; track $index; let i = $index) { -
    +
    - + />
    } @@ -84,15 +83,14 @@ inputs: { providerName: { value: 'U' }, providerKey: { value: providerKey }, - visible: { value: visiblePermissions, twoWay: true } + visible: { value: visiblePermissions, twoWay: true }, }, outputs: { visibleChange: onVisiblePermissionChange }, - componentKey: permissionManagementKey + componentKey: permissionManagementKey, }; let init = initTemplate " [entityDisplayName]="entityDisplayName" (abpInit)="init(abpPermissionManagement)" - > - + /> diff --git a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts index e83199e076..713328f999 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts +++ b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts @@ -36,11 +36,11 @@ import { Component, inject, Injector, - OnInit, TemplateRef, TrackByFunction, - viewChild + viewChild, } from '@angular/core'; +import { toSignal } from '@angular/core/rxjs-interop'; import { AbstractControl, FormsModule, @@ -84,7 +84,7 @@ import { NgxValidateCoreModule } from '@ngx-validate/core'; InitDirective, ], }) -export class UsersComponent implements OnInit { +export class UsersComponent { protected readonly list = inject(ListService); protected readonly confirmationService = inject(ConfirmationService); protected readonly service = inject(IdentityUserService); @@ -92,7 +92,12 @@ export class UsersComponent implements OnInit { private readonly fb = inject(UntypedFormBuilder); private readonly injector = inject(Injector); - data: PagedResultDto = { items: [], totalCount: 0 }; + readonly data = toSignal( + this.list.hookToQuery(query => this.service.getList(query)), + { + initialValue: { items: [], totalCount: 0 } as PagedResultDto, + }, + ); readonly modalContent = viewChild.required>('modalContent'); @@ -130,10 +135,6 @@ export class UsersComponent implements OnInit { return ((this.form.get('roleNames') as UntypedFormArray)?.controls as UntypedFormGroup[]) || []; } - ngOnInit() { - this.hookToQuery(); - } - buildForm() { const data = new FormPropData(this.injector, this.selected); this.form = generateFormFromProps(data); @@ -233,14 +234,6 @@ export class UsersComponent implements OnInit { this.list.sortOrder = dir; } - private hookToQuery() { - this.list - .hookToQuery(query => this.service.getList(query)) - .subscribe(res => { - this.data = res; - }); - } - openPermissionsModal(providerKey: string, entityDisplayName?: string) { this.providerKey = providerKey; this.entityDisplayName = entityDisplayName;