import { Utilities } from '../../../../utilities/utilities'; import { UserCriteriaErrorModel } from '../../../../models/criteria/users/UserCriteriaErrorModel'; import { UserCriteria } from '../../../../models/criteria/users/UserCriteria'; import { TranslateService } from '@ngx-translate/core'; import { Validation, ValidationContext } from '../../../../utilities/validators/ValidationContext'; import { Component, OnInit } from '@angular/core'; import { BaseCriteriaComponent } from '../base/base-criteria.component'; import { Principal } from '../../../../models/login/Principal'; import { FormBuilder, FormGroup } from '@angular/forms'; @Component({ selector: 'users-criteria-component', templateUrl: './users-criteria.component.html', styleUrls: ['./users-criteria.component.scss'], }) export class UsersCriteriaComponent extends BaseCriteriaComponent implements OnInit { public role: Principal.AppRole; public criteria: UserCriteria = new UserCriteria(); constructor( public language: TranslateService, public errorModel: UserCriteriaErrorModel, public formBuilder: FormBuilder ) { super(errorModel); } ngOnInit() { super.ngOnInit(); if (this.criteria == null) { this.criteria = new UserCriteria(); } if (this.formGroup == null) { this.formGroup = this.buildForm(); } } setCriteria(criteria: UserCriteria): void { this.criteria = criteria; this.formGroup = this.buildForm(); } public fromJSONObject(item: any): UserCriteria { this.criteria = new UserCriteria(); this.criteria.Label = item.Label; this.criteria.Roles = item.Roles; return this.criteria; } buildForm(): FormGroup { const context: ValidationContext = this.createValidationContext(); return this.formBuilder.group({ label: [this.criteria.Label, context.getValidation('label').validators], roles: [this.criteria.Roles, context.getValidation('roles').validators], }); } createValidationContext(): ValidationContext { const validationContext: ValidationContext = new ValidationContext(); const validationArray: Validation[] = new Array(); validationArray.push({ key: 'label' }); validationArray.push({ key: 'roles' }); validationContext.validation = validationArray; return validationContext; } getPrincipalAppRoleValues(): Number[] { let keys: string[] = Object.keys(Principal.AppRole); keys = keys.slice(0, keys.length / 2); const values: Number[] = keys.map(Number); return values; } getPrincipalAppRoleWithLanguage(role: Principal.AppRole): string { let result = ''; this.language.get(new Utilities().convertFromPrincipalAppRole(role)).subscribe((value: string) => { result = value; }); return result; } }