diff --git a/npm/ng-packs/packages/account/src/lib/account.module.ts b/npm/ng-packs/packages/account/src/lib/account.module.ts index 26f71ef150..d8c88055d9 100644 --- a/npm/ng-packs/packages/account/src/lib/account.module.ts +++ b/npm/ng-packs/packages/account/src/lib/account.module.ts @@ -15,11 +15,11 @@ import { accountConfigOptionsFactory } from './utils/factory-utils'; import { AuthenticationFlowGuard } from './guards/authentication-flow.guard'; import { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component'; import { ResetPasswordComponent } from './components/reset-password/reset-password.component'; -import { ExtensiblePersonalSettingsComponent } from './components/extensible-personal-settings/extensible-personal-settings.component'; import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions'; import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS } from './tokens/extensions.token'; import { AccountExtensionsGuard } from './guards/extensions.guard'; -import { HelloComponent } from './components/hello/hello.component'; +import { HalfRowComponent } from './components/personal-settings/half-row/half-row.component'; +import { NameSurnameComponent } from './components/personal-settings/name-surname/name-surname.component'; const declarations = [ LoginComponent, @@ -29,10 +29,12 @@ const declarations = [ PersonalSettingsComponent, ForgotPasswordComponent, ResetPasswordComponent, + HalfRowComponent, + NameSurnameComponent ]; @NgModule({ - declarations: [...declarations, ExtensiblePersonalSettingsComponent, HelloComponent], + declarations: [...declarations], imports: [ CoreModule, AccountRoutingModule, diff --git a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.html b/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.html deleted file mode 100644 index 5b17770996..0000000000 --- a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.html +++ /dev/null @@ -1,5 +0,0 @@ -

extensible-personal-settings works!

- -
- -
diff --git a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.scss b/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.spec.ts b/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.spec.ts deleted file mode 100644 index e2a2102e5a..0000000000 --- a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ExtensiblePersonalSettingsComponent } from './extensible-personal-settings.component'; - -describe('ExtensiblePersonalSettingsComponent', () => { - let component: ExtensiblePersonalSettingsComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ExtensiblePersonalSettingsComponent], - }).compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(ExtensiblePersonalSettingsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.ts b/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.ts deleted file mode 100644 index 0b54672cab..0000000000 --- a/npm/ng-packs/packages/account/src/lib/components/extensible-personal-settings/extensible-personal-settings.component.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {Component, Injector, OnInit} from '@angular/core'; -import {EXTENSIONS_IDENTIFIER, FormPropData, generateFormFromProps} from "@abp/ng.theme.shared/extensions"; -import { eAccountComponents } from '../../enums/components'; -import {FormBuilder, FormGroup} from "@angular/forms"; -import {ProfileService} from "@abp/ng.account.core/proxy"; - -@Component({ - selector: 'abp-extensible-personal-settings', - templateUrl: './extensible-personal-settings.component.html', - styleUrls: ['./extensible-personal-settings.component.scss'], - providers:[ - { - provide: EXTENSIONS_IDENTIFIER, - useValue: eAccountComponents.PersonalSettings, - }, - ] -}) -export class ExtensiblePersonalSettingsComponent implements OnInit { - selected = {a: 1};// hacky for triggering 'edit' mode of extensible-form - - form: FormGroup; - - constructor( - private profileService: ProfileService, - protected fb: FormBuilder, - protected injector: Injector, - ) {} - - - buildForm() { - const data = new FormPropData(this.injector, this.selected); - this.form = generateFormFromProps(data); - } - - ngOnInit(): void { - this.buildForm() - } - - save() { - - } -} diff --git a/npm/ng-packs/packages/account/src/lib/components/personal-settings/half-row/half-row.component.ts b/npm/ng-packs/packages/account/src/lib/components/personal-settings/half-row/half-row.component.ts new file mode 100644 index 0000000000..76c741459b --- /dev/null +++ b/npm/ng-packs/packages/account/src/lib/components/personal-settings/half-row/half-row.component.ts @@ -0,0 +1,33 @@ +import {Component, Inject} from '@angular/core'; +import {FORM_PROP_DATA_STREAM, FormProp} from "@abp/ng.theme.shared/extensions"; +import {ControlContainer, FormGroup, FormGroupDirective} from "@angular/forms"; + +@Component({ + selector: 'abp-half-row', + template: ` +
+
+ + +
+
`, + styles: [], + viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] + +}) +export class HalfRowComponent { + public displayName: string; + public name: string; + public id: string; + public formGroup: FormGroup + + constructor(@Inject(FORM_PROP_DATA_STREAM) private propData: FormProp) { + this.displayName = propData.displayName + this.name = propData.name + this.id = propData.id + } +} diff --git a/npm/ng-packs/packages/account/src/lib/components/personal-settings/name-surname/name-surname.component.ts b/npm/ng-packs/packages/account/src/lib/components/personal-settings/name-surname/name-surname.component.ts new file mode 100644 index 0000000000..7701f4567f --- /dev/null +++ b/npm/ng-packs/packages/account/src/lib/components/personal-settings/name-surname/name-surname.component.ts @@ -0,0 +1,30 @@ +import { Component } from '@angular/core'; +import {ControlContainer, FormGroupDirective} from "@angular/forms"; + +@Component({ + selector: 'abp-name-surname', + template: `
+
+
+ +
+
+
+
+ +
+
+
`, + styles: [], + viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] + +}) +export class NameSurnameComponent { + constructor() {} +} 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 0b70ad41e8..42a323e5ca 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 @@ -1,49 +1,7 @@ -
-
- * -
-
-
-
- -
-
-
-
- -
-
-
-
- * -
-
- -
+

Thor

+ + + ([ { type: ePropType.String, name: 'userName', - displayName: 'Account::UserName', - id: 'user-name', - validators: () => [Validators.required, Validators.maxLength(256)], - template: HelloComponent + displayName: 'AbpIdentity::DisplayName:UserName', + id: 'username', + validators: () => [required,maxLength(256)], + }, + { + type: ePropType.String, + name: 'name', + displayName: 'AbpIdentity::DisplayName:Name', + id: 'name', + validators: () => [maxLength(64),required], + template:NameSurnameComponent + }, + { + type: ePropType.String, + name: 'surname', + displayName: 'AbpIdentity::DisplayName:Surname', + id: 'surname', + validators: () => [maxLength(64),required], + visible:() => false + }, + { + type: ePropType.String, + name: 'email', + displayName: 'AbpIdentity::DisplayName:Email', + id: 'email-address', + validators: () => [required, email, maxLength(256)], + }, + { + type: ePropType.String, + name: 'phoneNumber', + displayName: 'AbpIdentity::DisplayName:PhoneNumber', + id: 'phone-number', + validators: () => [maxLength(16)], }, ]) diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html index 67b0022be8..239882a498 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html @@ -1,148 +1,153 @@ -
+ - + - - - - - - - - +
- -
+ + - -
-
+ - - - - + + + - - - + +
+ + + + + - + + + - - -
- + + + + + + +
+ + +
+
+ + + + - -
-
+ - - - - + + + + - - - - + + + + - - - - + + + + +
- - - - - + {{ prop.displayName | abpLocalization }} {{ asterisk }} diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts index 49257f34c9..efa894cf55 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts @@ -77,8 +77,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { setTypeaheadValue(selectedOption: ABP.Option) { - this.typeaheadModel = selectedOption || { key: null, value: null }; - const { key, value } = this.typeaheadModel; + this.typeaheadModel = selectedOption || {key: null, value: null}; + const {key, value} = this.typeaheadModel; const [keyControl, valueControl] = this.getTypeaheadControls(); if (valueControl?.value && !value) valueControl.markAsDirty(); keyControl?.setValue(key); @@ -88,10 +88,10 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { search = (text$: Observable) => text$ ? text$.pipe( - debounceTime(300), - distinctUntilChanged(), - switchMap(text => this.prop.options(this.data, text)), - ) + debounceTime(300), + distinctUntilChanged(), + switchMap(text => this.prop.options(this.data, text)), + ) : of([]); typeaheadFormatter = (option: ABP.Option) => option.key; @@ -190,7 +190,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { { provide: FORM_PROP_DATA_STREAM, useValue: currentProp - } + }, + ], parent: this.injector, }); @@ -209,7 +210,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { const [keyControl, valueControl] = this.getTypeaheadControls(); if (keyControl && valueControl) - this.typeaheadModel = { key: keyControl.value, value: valueControl.value }; + this.typeaheadModel = {key: keyControl.value, value: valueControl.value}; } }