feat(i18n): bilingual language + roles selectors in user dialogs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Chris Chen
2026-05-29 22:13:41 -07:00
parent e5296e79dc
commit fba0b63214
6 changed files with 18 additions and 21 deletions
@@ -12,6 +12,7 @@
<kendo-formfield>
<kendo-label text="Roles *"></kendo-label>
<kendo-multiselect formControlName="roles" [data]="roleOptions"
textField="label" valueField="value" [valuePrimitive]="true"
placeholder="Select roles"></kendo-multiselect>
<kendo-formerror>At least one role is required.</kendo-formerror>
</kendo-formfield>
@@ -19,7 +20,7 @@
<kendo-formfield>
<kendo-label text="Language"></kendo-label>
<kendo-dropdownlist formControlName="languagePreference"
[data]="langOptions" textField="text" valueField="value"
[data]="langOptions" textField="label" valueField="value"
[valuePrimitive]="true">
</kendo-dropdownlist>
</kendo-formfield>
@@ -6,7 +6,8 @@ import { InputsModule } from '@progress/kendo-angular-inputs';
import { LabelModule } from '@progress/kendo-angular-label';
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
import { ButtonsModule } from '@progress/kendo-angular-buttons';
import { CreateUserRequest, ALL_ROLES } from '../../models/user.model';
import { CreateUserRequest } from '../../models/user.model';
import { LANGUAGE_OPTIONS, ROLE_OPTIONS } from '../../../../shared/i18n/option-lists';
@Component({
selector: 'app-create-user-dialog',
@@ -22,11 +23,8 @@ export class CreateUserDialogComponent {
@Output() cancelled = new EventEmitter<void>();
form: FormGroup;
readonly roleOptions: string[] = [...ALL_ROLES];
readonly langOptions = [
{ text: 'English', value: 'en' },
{ text: '中文', value: 'zh-TW' },
];
readonly roleOptions = ROLE_OPTIONS;
readonly langOptions = LANGUAGE_OPTIONS;
constructor(private fb: FormBuilder) {
this.form = this.fb.group({
@@ -12,13 +12,14 @@
<kendo-formfield>
<kendo-label text="Roles *"></kendo-label>
<kendo-multiselect formControlName="roles" [data]="roleOptions"
textField="label" valueField="value" [valuePrimitive]="true"
placeholder="Select roles"></kendo-multiselect>
</kendo-formfield>
<kendo-formfield>
<kendo-label text="Language"></kendo-label>
<kendo-dropdownlist formControlName="languagePreference"
[data]="langOptions" textField="text" valueField="value"
[data]="langOptions" textField="label" valueField="value"
[valuePrimitive]="true">
</kendo-dropdownlist>
</kendo-formfield>
@@ -6,7 +6,8 @@ import { InputsModule } from '@progress/kendo-angular-inputs';
import { LabelModule } from '@progress/kendo-angular-label';
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
import { ButtonsModule } from '@progress/kendo-angular-buttons';
import { UserDto, UpdateUserRequest, ALL_ROLES } from '../../models/user.model';
import { UserDto, UpdateUserRequest } from '../../models/user.model';
import { LANGUAGE_OPTIONS, ROLE_OPTIONS } from '../../../../shared/i18n/option-lists';
@Component({
selector: 'app-edit-user-dialog',
@@ -23,11 +24,8 @@ export class EditUserDialogComponent implements OnInit {
@Output() cancelled = new EventEmitter<void>();
form!: FormGroup;
readonly roleOptions: string[] = [...ALL_ROLES];
readonly langOptions = [
{ text: 'English', value: 'en' },
{ text: '中文', value: 'zh-TW' },
];
readonly roleOptions = ROLE_OPTIONS;
readonly langOptions = LANGUAGE_OPTIONS;
constructor(private fb: FormBuilder) {}