feat: add fields translations to common.json and enhance EnterpriseDataTable with status column and StatusBadge component
This commit is contained in:
@@ -113,6 +113,41 @@
|
|||||||
"system_menu": {
|
"system_menu": {
|
||||||
"history": "History",
|
"history": "History",
|
||||||
"bookmark": "Bookmark"
|
"bookmark": "Bookmark"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"id": "ID",
|
||||||
|
"code": "Code",
|
||||||
|
"name": "Name",
|
||||||
|
"description": "Description",
|
||||||
|
"number": "Number",
|
||||||
|
"status": "Status",
|
||||||
|
"type": "Type",
|
||||||
|
"category": "Category",
|
||||||
|
"action": "Action",
|
||||||
|
"createdAt": "Created At",
|
||||||
|
"updatedAt": "Updated At",
|
||||||
|
"createdBy": "Created By",
|
||||||
|
"updatedBy": "Updated By",
|
||||||
|
"deletedAt": "Deleted At",
|
||||||
|
"date": "Date",
|
||||||
|
"amount": "Amount",
|
||||||
|
"price": "Price",
|
||||||
|
"quantity": "Quantity",
|
||||||
|
"total": "Total",
|
||||||
|
"balance": "Balance",
|
||||||
|
"address": "Address",
|
||||||
|
"phone": "Phone Number",
|
||||||
|
"email": "Email",
|
||||||
|
"user": "User",
|
||||||
|
"role": "Role",
|
||||||
|
"notes": "Notes",
|
||||||
|
"isActive": "Active",
|
||||||
|
"isDefault": "Default",
|
||||||
|
"isRequired": "Required",
|
||||||
|
"startDate": "Start Date",
|
||||||
|
"endDate": "End Date",
|
||||||
|
"attachment": "Attachment",
|
||||||
|
"reference": "Reference"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -113,6 +113,41 @@
|
|||||||
"system_menu": {
|
"system_menu": {
|
||||||
"history": "Riwayat",
|
"history": "Riwayat",
|
||||||
"bookmark": "Bookmark"
|
"bookmark": "Bookmark"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"id": "ID",
|
||||||
|
"code": "Kode",
|
||||||
|
"name": "Nama",
|
||||||
|
"description": "Deskripsi",
|
||||||
|
"number": "Nomor",
|
||||||
|
"status": "Status",
|
||||||
|
"type": "Tipe",
|
||||||
|
"category": "Kategori",
|
||||||
|
"action": "Aksi",
|
||||||
|
"createdAt": "Tanggal Dibuat",
|
||||||
|
"updatedAt": "Tanggal Diperbarui",
|
||||||
|
"createdBy": "Dibuat Oleh",
|
||||||
|
"updatedBy": "Diperbarui Oleh",
|
||||||
|
"deletedAt": "Tanggal Dihapus",
|
||||||
|
"date": "Tanggal",
|
||||||
|
"amount": "Nominal",
|
||||||
|
"price": "Harga",
|
||||||
|
"quantity": "Kuantitas",
|
||||||
|
"total": "Total",
|
||||||
|
"balance": "Saldo",
|
||||||
|
"address": "Alamat",
|
||||||
|
"phone": "No. Telepon",
|
||||||
|
"email": "Email",
|
||||||
|
"user": "Pengguna",
|
||||||
|
"role": "Peran",
|
||||||
|
"notes": "Catatan",
|
||||||
|
"isActive": "Aktif",
|
||||||
|
"isDefault": "Bawaan",
|
||||||
|
"isRequired": "Wajib",
|
||||||
|
"startDate": "Tanggal Mulai",
|
||||||
|
"endDate": "Tanggal Selesai",
|
||||||
|
"attachment": "Lampiran",
|
||||||
|
"reference": "Referensi"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,7 @@ import {
|
|||||||
} from 'ag-grid-community';
|
} from 'ag-grid-community';
|
||||||
import { Box } from '@mantine/core';
|
import { Box } from '@mantine/core';
|
||||||
|
|
||||||
import { DataGrid } from '../../../../components';
|
import { DataGrid, StatusBadge } from '../../../../components';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
useEnterpriseModuleDataServiceContext,
|
useEnterpriseModuleDataServiceContext,
|
||||||
@@ -108,8 +108,20 @@ export function EnterpriseDataTable<E extends BaseEntity>(props: EnterpriseDataT
|
|||||||
|
|
||||||
// Ensure column definitions are referentially stable
|
// Ensure column definitions are referentially stable
|
||||||
const finalColumnDefs = useMemo<ColDef<E>[]>(() => {
|
const finalColumnDefs = useMemo<ColDef<E>[]>(() => {
|
||||||
return columnDefs;
|
const masterDetailColumn: ColDef<E> = { maxWidth: 50, sortable: false, cellRenderer: 'agGroupCellRenderer' };
|
||||||
}, [columnDefs]);
|
const statusColumn: ColDef<E> = {
|
||||||
|
maxWidth: 130,
|
||||||
|
field: 'status' as any,
|
||||||
|
headerName: t('common:fields.status'),
|
||||||
|
cellRenderer: ({ value }: any) => <StatusBadge status={value} />,
|
||||||
|
};
|
||||||
|
|
||||||
|
const prefixColumn: ColDef<E>[] = [props.masterDetail ? masterDetailColumn : (null as any), statusColumn].filter(
|
||||||
|
Boolean,
|
||||||
|
);
|
||||||
|
|
||||||
|
return [...prefixColumn, ...columnDefs];
|
||||||
|
}, [columnDefs, props.masterDetail]);
|
||||||
|
|
||||||
// Default configuration applied to all columns in the grid
|
// Default configuration applied to all columns in the grid
|
||||||
const defaultColDef = useMemo<ColDef>(() => ({ flex: 1, minWidth: 100, sortable: true, resizable: true }), []);
|
const defaultColDef = useMemo<ColDef>(() => ({ flex: 1, minWidth: 100, sortable: true, resizable: true }), []);
|
||||||
|
|||||||
Reference in New Issue
Block a user