Browse Source

feature(identity): add debounce event modifier to search input

pull/1601/head
TheDiaval 7 years ago
parent
commit
5dae57732b
  1. 2
      npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html
  2. 30
      npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts
  3. 2
      npm/ng-packs/packages/identity/src/lib/components/users/users.component.html
  4. 18
      npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts

2
npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html

@ -18,7 +18,7 @@
type="search" type="search"
class="form-control form-control-sm" class="form-control form-control-sm"
[placeholder]="'AbpUi::PagerSearch' | abpLocalization" [placeholder]="'AbpUi::PagerSearch' | abpLocalization"
(input)="search$.next($event.target.value)" (input.debounce)="onSearch($event.target.value)"
/></label> /></label>
</div> </div>
<p-table <p-table

30
npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts

@ -1,25 +1,25 @@
import { Component, TemplateRef, ViewChild, OnInit } from '@angular/core'; import { ABP } from '@abp/ng.core';
import { Select, Store } from '@ngxs/store'; import { ConfirmationService, Toaster } from '@abp/ng.theme.shared';
import { Observable, Subject } from 'rxjs'; import { Component, TemplateRef, ViewChild } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { IdentityState } from '../../states/identity.state'; import { Select, Store } from '@ngxs/store';
import { Identity } from '../../models/identity'; import { Observable } from 'rxjs';
import { debounceTime, finalize, pluck } from 'rxjs/operators';
import { import {
IdentityUpdateRole,
IdentityAddRole, IdentityAddRole,
IdentityDeleteRole, IdentityDeleteRole,
IdentityGetRoleById, IdentityGetRoleById,
IdentityGetRoles, IdentityGetRoles,
IdentityUpdateRole,
} from '../../actions/identity.actions'; } from '../../actions/identity.actions';
import { pluck, debounceTime, finalize } from 'rxjs/operators'; import { Identity } from '../../models/identity';
import { ConfirmationService, Toaster } from '@abp/ng.theme.shared'; import { IdentityState } from '../../states/identity.state';
import { ABP } from '@abp/ng.core';
@Component({ @Component({
selector: 'abp-roles', selector: 'abp-roles',
templateUrl: './roles.component.html', templateUrl: './roles.component.html',
}) })
export class RolesComponent implements OnInit { export class RolesComponent {
@Select(IdentityState.getRoles) @Select(IdentityState.getRoles)
data$: Observable<Identity.RoleItem[]>; data$: Observable<Identity.RoleItem[]>;
@ -42,18 +42,14 @@ export class RolesComponent implements OnInit {
loading: boolean = false; loading: boolean = false;
search$ = new Subject<string>();
@ViewChild('modalContent', { static: false }) @ViewChild('modalContent', { static: false })
modalContent: TemplateRef<any>; modalContent: TemplateRef<any>;
constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {} constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}
ngOnInit() { onSearch(value) {
this.search$.pipe(debounceTime(300)).subscribe(value => { this.pageQuery.filter = value;
this.pageQuery.filter = value; this.get();
this.get();
});
} }
createForm() { createForm() {

2
npm/ng-packs/packages/identity/src/lib/components/users/users.component.html

@ -24,7 +24,7 @@
type="search" type="search"
class="form-control form-control-sm" class="form-control form-control-sm"
[placeholder]="'AbpUi::PagerSearch' | abpLocalization" [placeholder]="'AbpUi::PagerSearch' | abpLocalization"
(input)="search$.next($event.target.value)" (input.debounce)="onSearch($event.target.value)"
/></label> /></label>
</div> </div>
<p-table <p-table

18
npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts

@ -1,10 +1,10 @@
import { ABP } from '@abp/ng.core'; import { ABP } from '@abp/ng.core';
import { ConfirmationService, Toaster } from '@abp/ng.theme.shared'; import { ConfirmationService, Toaster } from '@abp/ng.theme.shared';
import { Component, OnInit, TemplateRef, TrackByFunction, ViewChild } from '@angular/core'; import { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Select, Store } from '@ngxs/store'; import { Select, Store } from '@ngxs/store';
import { combineLatest, Observable, Subject } from 'rxjs'; import { combineLatest, Observable } from 'rxjs';
import { debounceTime, filter, map, pluck, take, finalize } from 'rxjs/operators'; import { filter, finalize, map, pluck, take } from 'rxjs/operators';
import snq from 'snq'; import snq from 'snq';
import { import {
IdentityAddUser, IdentityAddUser,
@ -20,7 +20,7 @@ import { IdentityState } from '../../states/identity.state';
selector: 'abp-users', selector: 'abp-users',
templateUrl: './users.component.html', templateUrl: './users.component.html',
}) })
export class UsersComponent implements OnInit { export class UsersComponent {
@Select(IdentityState.getUsers) @Select(IdentityState.getUsers)
data$: Observable<Identity.UserItem[]>; data$: Observable<Identity.UserItem[]>;
@ -50,8 +50,6 @@ export class UsersComponent implements OnInit {
loading: boolean = false; loading: boolean = false;
search$ = new Subject<string>();
trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index; trackByFn: TrackByFunction<AbstractControl> = (index, item) => Object.keys(item)[0] || index;
get roleGroups(): FormGroup[] { get roleGroups(): FormGroup[] {
@ -60,11 +58,9 @@ export class UsersComponent implements OnInit {
constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {} constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}
ngOnInit() { onSearch(value) {
this.search$.pipe(debounceTime(300)).subscribe(value => { this.pageQuery.filter = value;
this.pageQuery.filter = value; this.get();
this.get();
});
} }
buildForm() { buildForm() {

Loading…
Cancel
Save