feat(i18n): bilingual category + method dropdowns on givings page

This commit is contained in:
Chris Chen
2026-05-29 22:09:19 -07:00
parent 126e640731
commit 61e34d343a
2 changed files with 7 additions and 5 deletions
@@ -6,9 +6,9 @@
<div class="filters"> <div class="filters">
<kendo-textbox placeholder="Search name / check # / notes" [(ngModel)]="search" (keydown.enter)="onSearch()"></kendo-textbox> <kendo-textbox placeholder="Search name / check # / notes" [(ngModel)]="search" (keydown.enter)="onSearch()"></kendo-textbox>
<kendo-dropdownlist [data]="categories" textField="name_en" valueField="id" <kendo-dropdownlist [data]="categories" textField="label" valueField="id"
[valuePrimitive]="true" [(ngModel)]="filterCategoryId" (valueChange)="onSearch()" [valuePrimitive]="true" [(ngModel)]="filterCategoryId" (valueChange)="onSearch()"
[defaultItem]="{ id: null, name_en: 'All types' }"></kendo-dropdownlist> [defaultItem]="{ id: null, label: 'All types/全部類型' }"></kendo-dropdownlist>
<button kendoButton (click)="onSearch()">Search</button> <button kendoButton (click)="onSearch()">Search</button>
</div> </div>
@@ -45,12 +45,13 @@
</label> </label>
<label class="flex flex-col gap-1">Type <label class="flex flex-col gap-1">Type
<kendo-dropdownlist [data]="categories" textField="name_en" valueField="id" <kendo-dropdownlist [data]="categories" textField="label" valueField="id"
[valuePrimitive]="true" [(ngModel)]="form.givingCategoryId"></kendo-dropdownlist> [valuePrimitive]="true" [(ngModel)]="form.givingCategoryId"></kendo-dropdownlist>
</label> </label>
<label class="flex flex-col gap-1">Payment method <label class="flex flex-col gap-1">Payment method
<kendo-dropdownlist [data]="paymentMethods" [(ngModel)]="form.paymentMethod"></kendo-dropdownlist> <kendo-dropdownlist [data]="paymentMethods" textField="label" valueField="value" [valuePrimitive]="true"
[(ngModel)]="form.paymentMethod"></kendo-dropdownlist>
</label> </label>
<label *ngIf="form.paymentMethod === 'Check'" class="flex flex-col gap-1">Check # <label *ngIf="form.paymentMethod === 'Check'" class="flex flex-col gap-1">Check #
@@ -14,6 +14,7 @@ import { MemberListItemDto, memberDisplayName } from '../../../members/models/me
import { import {
GivingListItemDto, GivingCategoryDto, CreateGivingRequest, PaymentMethod, PagedResult, GivingListItemDto, GivingCategoryDto, CreateGivingRequest, PaymentMethod, PagedResult,
} from '../../models/giving.model'; } from '../../models/giving.model';
import { PAYMENT_METHOD_OPTIONS } from '../../../../shared/i18n/option-lists';
/** Flattened member item with a single displayName field for the dropdown. */ /** Flattened member item with a single displayName field for the dropdown. */
interface MemberOption { interface MemberOption {
@@ -41,7 +42,7 @@ export class GivingsPageComponent implements OnInit {
filterCategoryId: number | null = null; filterCategoryId: number | null = null;
categories: GivingCategoryDto[] = []; categories: GivingCategoryDto[] = [];
readonly paymentMethods: PaymentMethod[] = ['Cash', 'Check', 'Zelle', 'PayPal', 'Other']; readonly paymentMethods = PAYMENT_METHOD_OPTIONS;
memberResults: MemberOption[] = []; memberResults: MemberOption[] = [];