Browse Source

Merge pull request #1647 from abpframework/feature/form-keyup-listener-directive

refactor(theme-basic): change submit method name
pull/1653/head
Yasin Aydın 7 years ago
committed by GitHub
parent
commit
aad62f5a0b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      npm/ng-packs/packages/core/src/lib/core.module.ts
  2. 23
      npm/ng-packs/packages/core/src/lib/directives/form-keyup-listener.directive.ts
  3. 1
      npm/ng-packs/packages/core/src/lib/directives/index.ts
  4. 4
      npm/ng-packs/packages/theme-basic/src/lib/components/profile/profile.component.html
  5. 2
      npm/ng-packs/packages/theme-basic/src/lib/components/profile/profile.component.ts

3
npm/ng-packs/packages/core/src/lib/core.module.ts

@ -22,6 +22,7 @@ import { EllipsisDirective } from './directives/ellipsis.directive';
import { AutofocusDirective } from './directives/autofocus.directive'; import { AutofocusDirective } from './directives/autofocus.directive';
import { InputEventDebounceDirective } from './directives/debounce.directive'; import { InputEventDebounceDirective } from './directives/debounce.directive';
import { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive'; import { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';
import { FormKeyupListenerDirective } from './directives/form-keyup-listener.directive';
@NgModule({ @NgModule({
imports: [ imports: [
@ -39,6 +40,7 @@ import { ClickEventStopPropagationDirective } from './directives/stop-propagatio
DynamicLayoutComponent, DynamicLayoutComponent,
AutofocusDirective, AutofocusDirective,
EllipsisDirective, EllipsisDirective,
FormKeyupListenerDirective,
LocalizationPipe, LocalizationPipe,
PermissionDirective, PermissionDirective,
VisibilityDirective, VisibilityDirective,
@ -55,6 +57,7 @@ import { ClickEventStopPropagationDirective } from './directives/stop-propagatio
DynamicLayoutComponent, DynamicLayoutComponent,
AutofocusDirective, AutofocusDirective,
EllipsisDirective, EllipsisDirective,
FormKeyupListenerDirective,
LocalizationPipe, LocalizationPipe,
PermissionDirective, PermissionDirective,
VisibilityDirective, VisibilityDirective,

23
npm/ng-packs/packages/core/src/lib/directives/form-keyup-listener.directive.ts

@ -0,0 +1,23 @@
import { Directive, ElementRef, EventEmitter, Output, OnDestroy } from '@angular/core';
import { fromEvent } from 'rxjs';
import { debounceTime, filter, tap } from 'rxjs/operators';
import { takeUntilDestroy } from '../utils/rxjs-utils';
@Directive({
selector: 'form[ngSubmit]',
})
export class FormKeyupListenerDirective implements OnDestroy {
@Output() ngSubmit = new EventEmitter();
constructor(private elRef: ElementRef) {
fromEvent(elRef.nativeElement as HTMLElement, 'keyup')
.pipe(
debounceTime(200),
filter((key: KeyboardEvent) => key && key.key === 'Enter'),
takeUntilDestroy(this),
)
.subscribe(() => this.ngSubmit.emit());
}
ngOnDestroy(): void {}
}

1
npm/ng-packs/packages/core/src/lib/directives/index.ts

@ -1,4 +1,5 @@
export * from './autofocus.directive'; export * from './autofocus.directive';
export * from './ellipsis.directive'; export * from './ellipsis.directive';
export * from './form-keyup-listener.directive';
export * from './permission.directive'; export * from './permission.directive';
export * from './visibility.directive'; export * from './visibility.directive';

4
npm/ng-packs/packages/theme-basic/src/lib/components/profile/profile.component.html

@ -3,7 +3,7 @@
<h4>{{ 'AbpIdentity::PersonalInfo' | abpLocalization }}</h4> <h4>{{ 'AbpIdentity::PersonalInfo' | abpLocalization }}</h4>
</ng-template> </ng-template>
<ng-template #abpBody> <ng-template #abpBody>
<form novalidate *ngIf="form" [formGroup]="form" (ngSubmit)="onSubmit()"> <form novalidate *ngIf="form" [formGroup]="form" (ngSubmit)="submit()">
<div class="form-group"> <div class="form-group">
<label for="username">{{ 'AbpIdentity::DisplayName:UserName' | abpLocalization }}</label <label for="username">{{ 'AbpIdentity::DisplayName:UserName' | abpLocalization }}</label
><span> * </span><input type="text" id="username" class="form-control" formControlName="userName" autofocus /> ><span> * </span><input type="text" id="username" class="form-control" formControlName="userName" autofocus />
@ -36,6 +36,6 @@
<button #abpClose type="button" class="btn btn-secondary"> <button #abpClose type="button" class="btn btn-secondary">
{{ 'AbpIdentity::Cancel' | abpLocalization }} {{ 'AbpIdentity::Cancel' | abpLocalization }}
</button> </button>
<abp-button iconClass="fa fa-check" (click)="onSubmit()">{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button> <abp-button iconClass="fa fa-check" (click)="submit()">{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button>
</ng-template> </ng-template>
</abp-modal> </abp-modal>

2
npm/ng-packs/packages/theme-basic/src/lib/components/profile/profile.component.ts

@ -54,7 +54,7 @@ export class ProfileComponent implements OnChanges {
}); });
} }
onSubmit() { submit() {
if (this.form.invalid) return; if (this.form.invalid) return;
this.modalBusy = true; this.modalBusy = true;

Loading…
Cancel
Save