Skip to content

Commit

Permalink
Merge pull request #185
Browse files Browse the repository at this point in the history
* feat: changeable items per table page

* Merge branch 'main' into main
  • Loading branch information
tonyaellie authored Sep 5, 2024
1 parent c0e2aa5 commit 25c7652
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
20 changes: 18 additions & 2 deletions frontend/components/Item/View/Table.vue
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,14 @@
</tr>
</tbody>
</table>
<div v-if="hasPrev || hasNext" class="border-t p-3 justify-end flex">
<div v-if="items.length > 10" class="border-t p-3 justify-end flex gap-3">
<div class="flex items-center">Rows per page</div>
<select v-model.number="pagination.rowsPerPage" class="select select-sm select-primary">
<option :value="10">10</option>
<option :value="25">25</option>
<option :value="50">50</option>
<option :value="100">100</option>
</select>
<div class="btn-group">
<button :disabled="!hasPrev" class="btn btn-sm" @click="prev()">«</button>
<button class="btn btn-sm">Page {{ pagination.page }}</button>
Expand Down Expand Up @@ -97,13 +104,22 @@
] as TableHeader[];
});
const preferences = useViewPreferences();
const pagination = reactive({
descending: false,
page: 1,
rowsPerPage: 10,
rowsPerPage: preferences.value.itemsPerTablePage,
rowsNumber: 0,
});
watch(
() => pagination.rowsPerPage,
newRowsPerPage => {
preferences.value.itemsPerTablePage = newRowsPerPage;
}
);
const next = () => pagination.page++;
const hasNext = computed<boolean>(() => {
return pagination.page * pagination.rowsPerPage < props.items.length;
Expand Down
2 changes: 2 additions & 0 deletions frontend/composables/use-preferences.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export type LocationViewPreferences = {
editorAdvancedView: boolean;
itemDisplayView: ViewType;
theme: DaisyTheme;
itemsPerTablePage: number;
};

/**
Expand All @@ -24,6 +25,7 @@ export function useViewPreferences(): Ref<LocationViewPreferences> {
editorAdvancedView: false,
itemDisplayView: "card",
theme: "homebox",
itemsPerTablePage: 10,
},
{ mergeDefaults: true }
);
Expand Down

0 comments on commit 25c7652

Please sign in to comment.