feat(i18n): bilingual ministry/category/status dropdowns on expense pages
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+6
-6
@@ -19,11 +19,11 @@
|
||||
<label class="flex flex-col gap-1">Ministry
|
||||
<kendo-dropdownlist
|
||||
[data]="ministries"
|
||||
textField="name_en"
|
||||
textField="label"
|
||||
valueField="id"
|
||||
[valuePrimitive]="true"
|
||||
[(ngModel)]="form.ministryId"
|
||||
[defaultItem]="{ id: null, name_en: '-- Select ministry --' }">
|
||||
[defaultItem]="{ id: null, label: '-- Select ministry --/請選擇事工' }">
|
||||
</kendo-dropdownlist>
|
||||
</label>
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
<label class="flex flex-col gap-1">Category Group
|
||||
<kendo-dropdownlist
|
||||
[data]="groups"
|
||||
textField="name_en"
|
||||
textField="label"
|
||||
valueField="id"
|
||||
[valuePrimitive]="true"
|
||||
[(ngModel)]="form.categoryGroupId"
|
||||
(valueChange)="onGroupChange($event)"
|
||||
[defaultItem]="{ id: null, name_en: '-- Select group --' }">
|
||||
[defaultItem]="{ id: null, label: '-- Select group --/請選擇大類' }">
|
||||
</kendo-dropdownlist>
|
||||
</label>
|
||||
|
||||
@@ -44,11 +44,11 @@
|
||||
<label class="flex flex-col gap-1">Sub-Category
|
||||
<kendo-dropdownlist
|
||||
[data]="subs"
|
||||
textField="name_en"
|
||||
textField="label"
|
||||
valueField="id"
|
||||
[valuePrimitive]="true"
|
||||
[(ngModel)]="form.subCategoryId"
|
||||
[defaultItem]="{ id: null, name_en: '-- Select sub-category --' }"
|
||||
[defaultItem]="{ id: null, label: '-- Select sub-category --/請選擇子項' }"
|
||||
[disabled]="!form.categoryGroupId">
|
||||
</kendo-dropdownlist>
|
||||
</label>
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
Ministry
|
||||
<kendo-dropdownlist
|
||||
[data]="ministries"
|
||||
textField="name_en"
|
||||
textField="label"
|
||||
valueField="id"
|
||||
[valuePrimitive]="true"
|
||||
[(ngModel)]="filter.ministryId"
|
||||
[defaultItem]="{ id: null, name_en: 'All Ministries' }">
|
||||
[defaultItem]="{ id: null, label: 'All Ministries/全部事工' }">
|
||||
</kendo-dropdownlist>
|
||||
</label>
|
||||
|
||||
@@ -29,8 +29,11 @@
|
||||
Status
|
||||
<kendo-dropdownlist
|
||||
[data]="statuses"
|
||||
textField="label"
|
||||
valueField="value"
|
||||
[valuePrimitive]="true"
|
||||
[(ngModel)]="filter.status"
|
||||
[defaultItem]="null">
|
||||
[defaultItem]="{ value: null, label: 'All Status/全部狀態' }">
|
||||
</kendo-dropdownlist>
|
||||
</label>
|
||||
|
||||
|
||||
@@ -7,10 +7,11 @@ import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
||||
import { InputsModule } from '@progress/kendo-angular-inputs';
|
||||
import { DialogsModule } from '@progress/kendo-angular-dialog';
|
||||
import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
|
||||
import { EXPENSE_STATUS_OPTIONS } from '../../../../shared/i18n/option-lists';
|
||||
import { ExpenseApiService, ExpenseQuery } from '../../services/expense-api.service';
|
||||
import { MinistryApiService } from '../../services/ministry-api.service';
|
||||
import { ExpenseFormDialogComponent, ExpenseFormResult } from '../../components/expense-form-dialog/expense-form-dialog.component';
|
||||
import { ExpenseListItemDto, MinistryDto, ExpenseStatus } from '../../models/expense.model';
|
||||
import { ExpenseListItemDto, MinistryDto } from '../../models/expense.model';
|
||||
import { switchMap, of } from 'rxjs';
|
||||
|
||||
@Component({
|
||||
@@ -31,7 +32,7 @@ export class ExpensesPageComponent implements OnInit {
|
||||
loading = false;
|
||||
|
||||
ministries: MinistryDto[] = [];
|
||||
readonly statuses: ExpenseStatus[] = ['Draft', 'PendingApproval', 'Approved', 'Paid', 'Rejected'];
|
||||
readonly statuses = EXPENSE_STATUS_OPTIONS;
|
||||
|
||||
filter: ExpenseQuery = {};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user