42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
import { RoleOrganizationType } from '@app/core/common/enum/role-organization-type';
|
|
import { Reference } from '@app/core/model/reference/reference';
|
|
import { User } from '@app/core/model/user/user';
|
|
import { Guid } from '@common/types/guid';
|
|
|
|
export class UserProfileEditorModel {
|
|
public id: Guid;
|
|
public name: String;
|
|
public language: any;
|
|
public culture: any;
|
|
public timezone: String;
|
|
public organization: Reference;
|
|
public roleOrganization: RoleOrganizationType;
|
|
|
|
fromModel(item: User): UserProfileEditorModel {
|
|
this.id = item.id;
|
|
this.name = item.name;
|
|
this.language = item.additionalInfo.language;
|
|
this.timezone = item.additionalInfo.timezone;
|
|
this.culture = item.additionalInfo.culture;
|
|
this.organization = item.additionalInfo.organization;
|
|
this.roleOrganization = item.additionalInfo.roleOrganization;
|
|
|
|
return this;
|
|
}
|
|
|
|
buildForm(availableLanguages: any[]): UntypedFormGroup {
|
|
const formGroup = new UntypedFormBuilder().group({
|
|
id: new UntypedFormControl(this.id),
|
|
name: new UntypedFormControl(this.name),
|
|
language: new UntypedFormControl(this.language ? availableLanguages.filter(x => x === this.language).pop() : '', [Validators.required]),
|
|
timezone: new UntypedFormControl(this.timezone, [Validators.required]),
|
|
culture: new UntypedFormControl(this.culture, [Validators.required]),
|
|
organization: new UntypedFormControl(this.organization),
|
|
roleOrganization: new UntypedFormControl(this.roleOrganization),
|
|
});
|
|
|
|
return formGroup;
|
|
}
|
|
}
|