diff --git a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html index 0a60d9e241..5f70e699ba 100644 --- a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html +++ b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html @@ -13,7 +13,11 @@ > * - {{ - 'AbpIdentity::Save' | abpLocalization - }} + {{ 'AbpIdentity::Save' | abpLocalization }} diff --git a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.ts b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.ts index 3a0e5bb6a7..afef2ccf95 100644 --- a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.ts +++ b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.ts @@ -5,6 +5,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { comparePasswords, Validation } from '@ngx-validate/core'; import { Store } from '@ngxs/store'; import snq from 'snq'; +import { finalize } from 'rxjs/operators'; const { minLength, required } = Validators; @@ -17,11 +18,13 @@ const PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword']; export class ChangePasswordComponent implements OnInit { form: FormGroup; + inProgress: boolean; + mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => { if (PASSWORD_FIELDS.indexOf(control.name) < 0) return errors; return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch')); - } + }; constructor(private fb: FormBuilder, private store: Store, private toasterService: ToasterService) {} @@ -40,7 +43,7 @@ export class ChangePasswordComponent implements OnInit { onSubmit() { if (this.form.invalid) return; - + this.inProgress = true; this.store .dispatch( new ChangePassword({ @@ -48,6 +51,7 @@ export class ChangePasswordComponent implements OnInit { newPassword: this.form.get('newPassword').value, }), ) + .pipe(finalize(() => (this.inProgress = false))) .subscribe({ next: () => { this.form.reset(); diff --git a/npm/ng-packs/packages/account/src/lib/components/manage-profile/manage-profile.component.html b/npm/ng-packs/packages/account/src/lib/components/manage-profile/manage-profile.component.html index bd1f55d57d..021e5b5b7b 100644 --- a/npm/ng-packs/packages/account/src/lib/components/manage-profile/manage-profile.component.html +++ b/npm/ng-packs/packages/account/src/lib/components/manage-profile/manage-profile.component.html @@ -1,34 +1,40 @@ -
-
- -
-
+
-
-
- -
-
-
- -
+
+
+
+ -
-
- +
+
+
+

+ {{ 'AbpIdentity::ChangePassword' | abpLocalization }} +
+

+ +
+
+
+
+

+ {{ 'AbpIdentity::PersonalSettings' | abpLocalization }} +
+

+ +
diff --git a/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.html b/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.html index 0031af0d12..819980c35a 100644 --- a/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.html +++ b/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.html @@ -25,7 +25,12 @@
- + {{ 'AbpIdentity::Save' | abpLocalization }} 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 3b719d0230..d9b602089c 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 @@ -3,7 +3,7 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Select, Store } from '@ngxs/store'; import { Observable } from 'rxjs'; -import { take, withLatestFrom } from 'rxjs/operators'; +import { take, withLatestFrom, finalize } from 'rxjs/operators'; import { ToasterService } from '@abp/ng.theme.shared'; const { maxLength, required, email } = Validators; @@ -18,8 +18,14 @@ export class PersonalSettingsComponent implements OnInit { form: FormGroup; + inProgress: boolean; + constructor(private fb: FormBuilder, private store: Store, private toasterService: ToasterService) {} + ngOnInit() { + this.buildForm(); + } + buildForm() { this.store .dispatch(new GetProfile()) @@ -40,13 +46,12 @@ export class PersonalSettingsComponent implements OnInit { submit() { if (this.form.invalid) return; - - this.store.dispatch(new UpdateProfile(this.form.value)).subscribe(() => { - this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 }); - }); - } - - ngOnInit() { - this.buildForm(); + this.inProgress = true; + this.store + .dispatch(new UpdateProfile(this.form.value)) + .pipe(finalize(() => (this.inProgress = false))) + .subscribe(() => { + this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 }); + }); } }