Commit 08b346da7fd19d0a9009f88dc234f12b0807523e
1 parent
b7718b91
UI Refactoring rule-chain-autocomplete component
Showing
2 changed files
with
17 additions
and
14 deletions
@@ -17,11 +17,11 @@ | @@ -17,11 +17,11 @@ | ||
17 | --> | 17 | --> |
18 | <mat-form-field [formGroup]="selectRuleChainFormGroup" class="mat-block"> | 18 | <mat-form-field [formGroup]="selectRuleChainFormGroup" class="mat-block"> |
19 | <input matInput type="text" placeholder="{{ ruleChainLabel | translate }}" | 19 | <input matInput type="text" placeholder="{{ ruleChainLabel | translate }}" |
20 | - #entityInput | 20 | + #ruleChainInput |
21 | formControlName="ruleChainId" | 21 | formControlName="ruleChainId" |
22 | (focusin)="onFocus()" | 22 | (focusin)="onFocus()" |
23 | [required]="required" | 23 | [required]="required" |
24 | - [matAutocomplete]="entityAutocomplete"> | 24 | + [matAutocomplete]="ruleChainAutocomplete"> |
25 | <button *ngIf="selectRuleChainFormGroup.get('ruleChainId').value && !disabled" | 25 | <button *ngIf="selectRuleChainFormGroup.get('ruleChainId').value && !disabled" |
26 | type="button" | 26 | type="button" |
27 | matSuffix mat-button mat-icon-button aria-label="Clear" | 27 | matSuffix mat-button mat-icon-button aria-label="Clear" |
@@ -29,10 +29,10 @@ | @@ -29,10 +29,10 @@ | ||
29 | <mat-icon class="material-icons">close</mat-icon> | 29 | <mat-icon class="material-icons">close</mat-icon> |
30 | </button> | 30 | </button> |
31 | <mat-autocomplete class="tb-autocomplete" | 31 | <mat-autocomplete class="tb-autocomplete" |
32 | - #entityAutocomplete="matAutocomplete" | ||
33 | - [displayWith]="displayEntityFn"> | ||
34 | - <mat-option *ngFor="let entity of filteredRuleChains | async" [value]="entity"> | ||
35 | - <span [innerHTML]="entity.name | highlight:searchText"></span> | 32 | + #ruleChainAutocomplete="matAutocomplete" |
33 | + [displayWith]="displayRuleChainFn"> | ||
34 | + <mat-option *ngFor="let ruleChain of filteredRuleChains | async" [value]="ruleChain"> | ||
35 | + <span [innerHTML]="ruleChain.name | highlight:searchText"></span> | ||
36 | </mat-option> | 36 | </mat-option> |
37 | <mat-option *ngIf="!(filteredRuleChains | async)?.length" [value]="null" class="tb-not-found"> | 37 | <mat-option *ngIf="!(filteredRuleChains | async)?.length" [value]="null" class="tb-not-found"> |
38 | <div class="tb-not-found-content" (click)="$event.stopPropagation()"> | 38 | <div class="tb-not-found-content" (click)="$event.stopPropagation()"> |
@@ -66,7 +66,8 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | @@ -66,7 +66,8 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | ||
66 | @Input() | 66 | @Input() |
67 | disabled: boolean; | 67 | disabled: boolean; |
68 | 68 | ||
69 | - @ViewChild('entityInput', {static: true}) entityInput: ElementRef; | 69 | + @ViewChild('ruleChainInput', {static: true}) ruleChainInput: ElementRef; |
70 | + @ViewChild('ruleChainInput', {read: MatAutocompleteTrigger}) ruleChainAutocomplete: MatAutocompleteTrigger; | ||
70 | 71 | ||
71 | filteredRuleChains: Observable<Array<BaseData<EntityId>>>; | 72 | filteredRuleChains: Observable<Array<BaseData<EntityId>>>; |
72 | 73 | ||
@@ -117,9 +118,9 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | @@ -117,9 +118,9 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | ||
117 | ngAfterViewInit(): void {} | 118 | ngAfterViewInit(): void {} |
118 | 119 | ||
119 | getCurrentEntity(): BaseData<EntityId> | null { | 120 | getCurrentEntity(): BaseData<EntityId> | null { |
120 | - const currentEntity = this.selectRuleChainFormGroup.get('ruleChainId').value; | ||
121 | - if (currentEntity && typeof currentEntity !== 'string') { | ||
122 | - return currentEntity as BaseData<EntityId>; | 121 | + const currentRuleChain = this.selectRuleChainFormGroup.get('ruleChainId').value; |
122 | + if (currentRuleChain && typeof currentRuleChain !== 'string') { | ||
123 | + return currentRuleChain as BaseData<EntityId>; | ||
123 | } else { | 124 | } else { |
124 | return null; | 125 | return null; |
125 | } | 126 | } |
@@ -180,8 +181,8 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | @@ -180,8 +181,8 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | ||
180 | } | 181 | } |
181 | } | 182 | } |
182 | 183 | ||
183 | - displayEntityFn(entity?: BaseData<EntityId>): string | undefined { | ||
184 | - return entity ? entity.name : undefined; | 184 | + displayRuleChainFn(ruleChain?: BaseData<EntityId>): string | undefined { |
185 | + return ruleChain ? ruleChain.name : undefined; | ||
185 | } | 186 | } |
186 | 187 | ||
187 | fetchRuleChain(searchText?: string): Observable<Array<BaseData<EntityId>>> { | 188 | fetchRuleChain(searchText?: string): Observable<Array<BaseData<EntityId>>> { |
@@ -193,12 +194,14 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | @@ -193,12 +194,14 @@ export class RuleChainAutocompleteComponent implements ControlValueAccessor, OnI | ||
193 | clear() { | 194 | clear() { |
194 | this.selectRuleChainFormGroup.get('ruleChainId').patchValue('', {emitEvent: true}); | 195 | this.selectRuleChainFormGroup.get('ruleChainId').patchValue('', {emitEvent: true}); |
195 | setTimeout(() => { | 196 | setTimeout(() => { |
196 | - this.entityInput.nativeElement.blur(); | ||
197 | - this.entityInput.nativeElement.focus(); | 197 | + this.ruleChainInput.nativeElement.blur(); |
198 | + this.ruleChainInput.nativeElement.focus(); | ||
198 | }, 0); | 199 | }, 0); |
199 | } | 200 | } |
200 | 201 | ||
201 | createDefaultRuleChain($event: Event, ruleChainName: string) { | 202 | createDefaultRuleChain($event: Event, ruleChainName: string) { |
203 | + $event.preventDefault(); | ||
204 | + this.ruleChainAutocomplete.closePanel(); | ||
202 | this.ruleChainService.createDefaultRuleChain(ruleChainName).subscribe((ruleChain) => { | 205 | this.ruleChainService.createDefaultRuleChain(ruleChainName).subscribe((ruleChain) => { |
203 | this.updateView(ruleChain.id.id); | 206 | this.updateView(ruleChain.id.id); |
204 | }); | 207 | }); |