From 8a46a5a25a445e5214d9855ae7e3141eba3fc6c8 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Wed, 17 Jun 2026 11:00:58 +0300 Subject: [PATCH] update: some upgrade enhancements for the setting-management --- .../email-setting-group.component.html | 6 ++- .../email-setting-group.component.ts | 17 +++++---- .../setting-management.component.html | 10 ++--- .../setting-management.component.ts | 38 ++++++++----------- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html index 7b8739e44d..f483ae7270 100644 --- a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html +++ b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html @@ -98,7 +98,11 @@ } - +

{{ 'AbpSettingManagement::SendTestEmail' | abpLocalization }}

diff --git a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts index 221d98f621..4300bfc940 100644 --- a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts +++ b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts @@ -5,7 +5,7 @@ import { ModalComponent, ToasterService, } from '@abp/ng.theme.shared'; -import { Component, inject, OnInit, signal } from '@angular/core'; +import { Component, inject, OnInit, signal, ChangeDetectionStrategy } from '@angular/core'; import { toSignal } from '@angular/core/rxjs-interop'; import { ReactiveFormsModule, @@ -28,6 +28,7 @@ import { NgxValidateCoreModule } from '@ngx-validate/core'; const { required, email } = Validators; @Component({ + changeDetection: ChangeDetectionStrategy.OnPush, selector: 'abp-email-setting-group', templateUrl: 'email-setting-group.component.html', imports: [ @@ -53,11 +54,11 @@ export class EmailSettingGroupComponent implements OnInit { readonly form = signal(undefined); readonly loading = signal(true); + readonly saving = signal(false); + readonly isEmailTestModalOpen = signal(false); emailTestForm!: UntypedFormGroup; - saving = false; emailingPolicy = SettingManagementPolicyNames.Emailing; - isEmailTestModalOpen = false; modalSize: NgbModalOptions = { size: 'lg' }; ngOnInit() { @@ -93,12 +94,12 @@ export class EmailSettingGroupComponent implements OnInit { submit() { const form = this.form(); - if (!form || this.saving || form.invalid) return; + if (!form || this.saving() || form.invalid) return; - this.saving = true; + this.saving.set(true); this.emailSettingsService .update(form.value) - .pipe(finalize(() => (this.saving = false))) + .pipe(finalize(() => this.saving.set(false))) .subscribe(() => { this.toasterService.success('AbpSettingManagement::SavedSuccessfully'); this.getData(); @@ -107,7 +108,7 @@ export class EmailSettingGroupComponent implements OnInit { openSendEmailModal() { this.buildEmailTestForm(); - this.isEmailTestModalOpen = true; + this.isEmailTestModalOpen.set(true); } buildEmailTestForm() { @@ -133,7 +134,7 @@ export class EmailSettingGroupComponent implements OnInit { this.emailSettingsService.sendTestEmail(this.emailTestForm.value).subscribe(() => { this.toasterService.success('AbpSettingManagement::SentSuccessfully'); - this.isEmailTestModalOpen = false; + this.isEmailTestModalOpen.set(false); }); } } diff --git a/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html b/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html index 0fc6c785b4..cb7985ac64 100644 --- a/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html +++ b/npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.html @@ -2,7 +2,7 @@
- @if (settings.length) { + @if (settings().length) {
- +
(undefined); - selected!: ABP.Tab; - - ngOnDestroy() { - this.subscription.unsubscribe(); - } - - ngOnInit() { - this.subscription.add( - this.settingTabsService.visible$.subscribe(settings => { - this.settings = settings; - - if (!this.selected) this.selected = this.settings[0]; - }), - ); + constructor() { + effect(() => { + const settings = this.settings(); + if (!this.selected() && settings.length) { + this.selected.set(settings[0] as ABP.Tab); + } + }); } }