diff --git a/packages/ui/src/components/table/ForgeTable.vue b/packages/ui/src/components/table/ForgeTable.vue
index 9c4f3b392..b0594f353 100644
--- a/packages/ui/src/components/table/ForgeTable.vue
+++ b/packages/ui/src/components/table/ForgeTable.vue
@@ -3,7 +3,7 @@
+ @update:filters="emitUpdateFilter" @sort="emitSort" @page="emitPage" showHeaders :first="firstValueIndex">
@@ -90,6 +90,8 @@ const props = withDefaults(defineProps(), {
const forgeTable = ref()
const pageSizes = ref>([5, 10, 20, 50, 100])
const perPage = ref(10)
+const pageNumber = ref(0);
+const firstValueIndex = ref(0);
const tableContext = ref({
filters: props.filters,
@@ -152,7 +154,9 @@ const exportData = () => {
const emitSort = (sort: DataTableSortEvent) => {
tableContext.value.sortDirection = sort.sortOrder === 1 ? 'Asc' : sort.sortOrder === -1 ? 'Desc' : 'None'
tableContext.value.sortField = sort.sortField?.toString() ?? ''
-
+ tableContext.value.page = pageNumber.value = 0;
+ setFirstIndex();
+
emits("update:tableContext", tableContext.value)
emits('sort', sort)
}
@@ -163,14 +167,18 @@ const emitUpdateFilter = (filters: DataTableFilterMeta | undefined) => {
emits('update:filters', filters)
}
const emitPage = (page : DataTablePageEvent) => {
- tableContext.value.page = page.page
-
+ tableContext.value.page = pageNumber.value = page.page
+
+ setFirstIndex();
emits("update:tableContext", tableContext.value)
emits('page', page)
}
const emitPageSize = () => {
tableContext.value.perPage = perPage.value
-
+ // Set page based on current index
+ tableContext.value.page = pageNumber.value = Math.floor(firstValueIndex.value/perPage.value)
+
+ setFirstIndex();
emits("update:tableContext", tableContext.value)
}
@@ -181,4 +189,11 @@ watch(() => props.filters, (newValue) => {
}, {deep: true})
onMounted(() => emits("update:tableContext", tableContext.value))
+
+const setFirstIndex = () =>
+{
+ console.log('Setting First Index')
+ firstValueIndex.value = pageNumber.value++ * perPage.value;
+}
+
\ No newline at end of file