From 771675da64df3a109e07aaaa9e112beff584600e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20=C3=87=C4=B1rak?= Date: Fri, 15 Mar 2024 16:40:07 +0300 Subject: [PATCH] enhancement(npm/ng-packs): Adding toaster notifications to account, feature management, identity, permission management, tenant management create, update, delete operations --- .../personal-settings.component.ts | 6 +-- .../feature-management.component.ts | 3 +- .../lib/components/roles/roles.component.ts | 3 +- .../lib/components/users/users.component.ts | 17 +++++-- .../permission-management.component.ts | 47 +++++++++++-------- .../components/tenants/tenants.component.ts | 3 +- 6 files changed, 50 insertions(+), 29 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts b/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts index 94c96e1e80..2742e81918 100644 --- a/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts +++ b/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts @@ -1,6 +1,6 @@ import { ProfileDto, ProfileService } from '@abp/ng.account.core/proxy'; import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared'; -import { Component, Inject, Injector, OnInit, ViewEncapsulation } from '@angular/core'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { finalize, filter } from 'rxjs/operators'; import { Account } from '../../models/account'; @@ -76,10 +76,10 @@ export class PersonalSettingsComponent this.configState.refreshAppState(); this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 }); - if(isRefreshTokenExists){ + if (isRefreshTokenExists) { return this.authService.refreshToken(); } - + if (isLogOutConfirmMessageVisible) { this.showLogoutConfirmMessage(); } diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index 25d8e76764..07d01c0099 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -11,7 +11,7 @@ import { LocaleDirection, ToasterService, } from '@abp/ng.theme.shared'; -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, EventEmitter, Input, Output, inject } from '@angular/core'; import { finalize } from 'rxjs/operators'; import { FeatureManagement } from '../../models/feature-management'; @@ -127,6 +127,7 @@ export class FeatureManagementComponent .subscribe(() => { this.visible = false; + this.toasterService.success('AbpFeatureManagement::Saved'); if (!this.providerKey) { // to refresh host's features this.configState.refreshAppState().subscribe(); 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 fd8b3670f8..032782a883 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,7 +1,7 @@ import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core'; import { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy'; import { ePermissionManagementComponents } from '@abp/ng.permission-management'; -import {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared'; +import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared'; import { EXTENSIONS_IDENTIFIER, FormPropData, @@ -90,6 +90,7 @@ export class RolesComponent implements OnInit { .pipe(finalize(() => (this.modalBusy = false))) .subscribe(() => { this.isModalVisible = false; + this.toasterService.success('AbpUi::SuccessfullySaved'); this.list.get(); }); } 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 f8802de304..4d14a7bf3e 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 @@ -6,7 +6,12 @@ import { IdentityUserService, } from '@abp/ng.identity/proxy'; import { ePermissionManagementComponents } from '@abp/ng.permission-management'; -import {Confirmation, ConfirmationService, eFormComponets, ToasterService} from '@abp/ng.theme.shared'; +import { + Confirmation, + ConfirmationService, + eFormComponets, + ToasterService, +} from '@abp/ng.theme.shared'; import { EXTENSIONS_IDENTIFIER, FormPropData, @@ -20,7 +25,12 @@ import { TrackByFunction, ViewChild, } from '@angular/core'; -import { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { + AbstractControl, + UntypedFormArray, + UntypedFormBuilder, + UntypedFormGroup, +} from '@angular/forms'; import { finalize, switchMap, tap } from 'rxjs/operators'; import { eIdentityComponents } from '../../enums/components'; @@ -61,7 +71,7 @@ export class UsersComponent implements OnInit { entityDisplayName: string; - inputKey=eFormComponets.FormCheckboxComponent + inputKey = eFormComponets.FormCheckboxComponent; trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index; @@ -158,6 +168,7 @@ export class UsersComponent implements OnInit { .pipe(finalize(() => (this.modalBusy = false))) .subscribe(() => { this.isModalVisible = false; + this.toasterService.success('AbpUi::SuccessfullySaved'); this.list.get(); }); } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index 4cb90a0fff..5e9a1d9525 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -7,7 +7,7 @@ import { ProviderInfoDto, UpdatePermissionDto, } from '@abp/ng.permission-management/proxy'; -import { LocaleDirection } from '@abp/ng.theme.shared'; +import { LocaleDirection, ToasterService } from '@abp/ng.theme.shared'; import { Component, ElementRef, @@ -41,16 +41,17 @@ type PermissionWithGroupName = PermissionGrantInfoDto & { overflow-y: scroll; } .scroll-in-modal { - overflow:auto; - max-height: calc(100vh - 15rem) + overflow: auto; + max-height: calc(100vh - 15rem); } `, ], }) export class PermissionManagementComponent implements - PermissionManagement.PermissionManagementComponentInputs, - PermissionManagement.PermissionManagementComponentOutputs { + PermissionManagement.PermissionManagementComponentInputs, + PermissionManagement.PermissionManagementComponentOutputs +{ @Input() readonly providerName!: string; @@ -117,7 +118,11 @@ export class PermissionManagementComponent trackByFn: TrackByFunction = (_, item) => item.name; - constructor(protected service: PermissionsService, protected configState: ConfigStateService) { } + constructor( + protected service: PermissionsService, + protected configState: ConfigStateService, + private readonly toasterService: ToasterService, + ) {} getChecked(name: string) { return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; @@ -130,19 +135,20 @@ export class PermissionManagementComponent return; } - const margin = `margin-${(document.body.dir as LocaleDirection) === 'rtl' ? 'right' : 'left' - }.px`; + const margin = `margin-${ + (document.body.dir as LocaleDirection) === 'rtl' ? 'right' : 'left' + }.px`; const permissions = (this.data.groups.find(group => group.name === this.selectedGroup?.name) || {}).permissions || []; this.selectedGroupPermissions = permissions.map( permission => - ({ - ...permission, - style: { [margin]: findMargin(permissions, permission) }, - isGranted: (this.permissions.find(per => per.name === permission.name) || {}).isGranted, - } as unknown as PermissionWithStyle), + ({ + ...permission, + style: { [margin]: findMargin(permissions, permission) }, + isGranted: (this.permissions.find(per => per.name === permission.name) || {}).isGranted, + }) as unknown as PermissionWithStyle, ); } @@ -199,19 +205,19 @@ export class PermissionManagementComponent if (per.name === clickedPermissions.parentName) { parentPermission = per; } - }) + }); this.permissions.forEach(per => { if (parentPermission.name === per.parentName) { per.isGranted && childPermissionGrantedCount++; } - }) + }); if (childPermissionGrantedCount === 1 && !parentPermission.isGranted) { this.permissions = this.permissions.map(per => { if (per.name === parentPermission.name) { per.isGranted = true; } return per; - }) + }); } return; } @@ -220,16 +226,16 @@ export class PermissionManagementComponent per.isGranted = false; } return per; - }) + }); } updateSelectedGroupPermissions(clickedPermissions: PermissionGrantInfoDto) { this.selectedGroupPermissions = this.selectedGroupPermissions.map(per => { if (per.name === clickedPermissions.name) { - per.isGranted = !per.isGranted + per.isGranted = !per.isGranted; } return per; - }) + }); } setTabCheckboxState() { @@ -310,7 +316,7 @@ export class PermissionManagementComponent const changedPermissions: UpdatePermissionDto[] = this.permissions .filter(per => (unchangedPermissions.find(unchanged => unchanged.name === per.name) || {}).isGranted === - per.isGranted + per.isGranted ? false : true, ) @@ -332,6 +338,7 @@ export class PermissionManagementComponent ) .subscribe(() => { this.visible = false; + this.toasterService.success('AbpPermissionManagement::SuccessfullySaved'); }); } diff --git a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts index b759947b32..79ae31108d 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts @@ -1,7 +1,7 @@ import { ListService, PagedResultDto } from '@abp/ng.core'; import { eFeatureManagementComponents } from '@abp/ng.feature-management'; import { GetTenantsInput, TenantDto, TenantService } from '@abp/ng.tenant-management/proxy'; -import {Confirmation, ConfirmationService, ToasterService} from '@abp/ng.theme.shared'; +import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared'; import { EXTENSIONS_IDENTIFIER, FormPropData, @@ -93,6 +93,7 @@ export class TenantsComponent implements OnInit { .pipe(finalize(() => (this.modalBusy = false))) .subscribe(() => { this.isModalVisible = false; + this.toasterService.success('AbpUi::SuccessfullySaved'); this.list.get(); }); }