argos/dmp-frontend/src/app/ui/user-profile/user-profile-editor.model.ts

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;
}
}