diff --git a/docs/pr-screenshots/ui-polish-tweaks/after/app-bundles.jpg b/docs/pr-screenshots/ui-polish-tweaks/after/app-bundles.jpg new file mode 100644 index 0000000000..e9b6a1ea24 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/after/app-bundles.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/after/app-overview.jpg b/docs/pr-screenshots/ui-polish-tweaks/after/app-overview.jpg new file mode 100644 index 0000000000..f9bf3a7e6f Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/after/app-overview.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/after/apps.jpg b/docs/pr-screenshots/ui-polish-tweaks/after/apps.jpg new file mode 100644 index 0000000000..571b2be7d4 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/after/apps.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/after/dashboard.jpg b/docs/pr-screenshots/ui-polish-tweaks/after/dashboard.jpg new file mode 100644 index 0000000000..10d0f50f30 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/after/dashboard.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/after/login.jpg b/docs/pr-screenshots/ui-polish-tweaks/after/login.jpg new file mode 100644 index 0000000000..10570a2438 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/after/login.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/after/settings-organization.jpg b/docs/pr-screenshots/ui-polish-tweaks/after/settings-organization.jpg new file mode 100644 index 0000000000..71b2a7d2ab Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/after/settings-organization.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/before/app-bundles.jpg b/docs/pr-screenshots/ui-polish-tweaks/before/app-bundles.jpg new file mode 100644 index 0000000000..ee6bf07bb5 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/before/app-bundles.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/before/app-overview.jpg b/docs/pr-screenshots/ui-polish-tweaks/before/app-overview.jpg new file mode 100644 index 0000000000..b135e06432 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/before/app-overview.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/before/apps.jpg b/docs/pr-screenshots/ui-polish-tweaks/before/apps.jpg new file mode 100644 index 0000000000..956e8ab613 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/before/apps.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/before/dashboard.jpg b/docs/pr-screenshots/ui-polish-tweaks/before/dashboard.jpg new file mode 100644 index 0000000000..6c4af21b72 Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/before/dashboard.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/before/login.jpg b/docs/pr-screenshots/ui-polish-tweaks/before/login.jpg new file mode 100644 index 0000000000..10e194631a Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/before/login.jpg differ diff --git a/docs/pr-screenshots/ui-polish-tweaks/before/settings-organization.jpg b/docs/pr-screenshots/ui-polish-tweaks/before/settings-organization.jpg new file mode 100644 index 0000000000..e81501e4db Binary files /dev/null and b/docs/pr-screenshots/ui-polish-tweaks/before/settings-organization.jpg differ diff --git a/src/components/DataTable.vue b/src/components/DataTable.vue index 234ef45c92..a30e056b44 100644 --- a/src/components/DataTable.vue +++ b/src/components/DataTable.vue @@ -34,6 +34,7 @@ interface Props { showAdd?: boolean addButtonTestId?: string search?: string + pageSize?: number total: number currentPage: number columns: TableColumn[] @@ -330,14 +331,20 @@ function tooltipIdFor(rowIndex: number, actionIndex: number): string { return `datatable-action-tooltip-${rowIndex}-${actionIndex}` } +const paginationPageSize = computed(() => props.pageSize ?? offset.value) + const displayElemRange = computed(() => { - const begin = (props.currentPage - 1) * props.elementList.length - const end = begin + props.elementList.length + if (props.total === 0 || props.elementList.length === 0) + return '0-0' + + const pageSize = paginationPageSize.value + const begin = ((props.currentPage - 1) * pageSize) + 1 + const end = Math.min(begin + props.elementList.length - 1, props.total) return `${begin}-${end}` }) function canNext() { - return props.currentPage < Math.ceil(props.total / offset.value) + return paginationPageSize.value > 0 && props.currentPage < Math.ceil(props.total / paginationPageSize.value) } function canPrev() { return props.currentPage > 1 @@ -352,7 +359,7 @@ async function next() { async function fastForward() { if (canNext()) { emit('fastForward') - emit('update:currentPage', Math.ceil(props.total / offset.value)) + emit('update:currentPage', Math.ceil(props.total / paginationPageSize.value)) } } async function prev() { @@ -455,37 +462,37 @@ const RenderCell = defineComponent<{ const isReloading = computed(() => props.isLoading || pendingReset.value) const isAdding = computed(() => props.isLoading || pendingAdd.value) const paginationClass = computed(() => props.mobileFixedPagination - ? 'fixed bottom-0 left-0 z-40 flex items-center justify-between w-full p-4 bg-white md:relative md:pt-4 md:bg-transparent dark:bg-gray-900 dark:md:bg-transparent' - : 'flex items-center justify-between w-full p-4 bg-white md:relative md:pt-4 md:bg-transparent dark:bg-gray-900 dark:md:bg-transparent') + ? 'fixed bottom-0 left-0 z-40 flex items-center justify-between w-full gap-3 border-t border-slate-200 bg-white/95 p-4 shadow-[0_-14px_34px_-28px_rgba(15,23,42,0.45)] backdrop-blur md:relative md:border-t md:bg-transparent md:pt-4 md:shadow-none md:backdrop-blur-0 dark:border-slate-700 dark:bg-gray-900/95 dark:md:bg-transparent' + : 'flex items-center justify-between w-full gap-3 border-t border-slate-200 bg-white p-4 md:relative md:bg-transparent dark:border-slate-700 dark:bg-gray-900 dark:md:bg-transparent')