Feature: nutze für Tabellen eine Pagination

This commit is contained in:
2023-02-25 13:05:32 +01:00
parent d7e99cbf30
commit fbbb563aad
5 changed files with 68 additions and 28 deletions
+32 -13
View File
@@ -1,16 +1,21 @@
<script>
export let params = {};
import { paginate, PaginationNav } from 'svelte-paginate'
export let params = {}
let records = []
let isLoading = true
console.log(params)
let currentPage = 1
let pageSize = 15
$: paginatedItems = paginate({ items: records, pageSize, currentPage })
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position) {
position = position || 0;
return this.indexOf(searchString, position) === position;
};
String.prototype.startsWith = function (searchString, position) {
position = position || 0
return this.indexOf(searchString, position) === position
}
}
$: isNegative = time => time.startsWith('-') ? 'absence-time' : '';
$: cutMinusChar = time => time.startsWith('-') ? time.substr(1) : time;
$: isNegative = time => time.startsWith('-') ? 'absence-time' : ''
$: cutMinusChar = time => time.startsWith('-') ? time.substr(1) : time
const init = async () => await params.promise.then(data => {
records = data
@@ -20,7 +25,7 @@
</script>
<svelte:head>
<title>{params.title}</title>
<title>{params.title}</title>
</svelte:head>
<section id="list-records">
@@ -33,10 +38,10 @@
{:else}
<table>
<colgroup>
<col />
<col />
<col />
<col />
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
@@ -47,7 +52,7 @@
</tr>
</thead>
<tbody>
{#each records as record}
{#each paginatedItems as record}
<tr>
<td>{record.period}</td>
<td>{record.workingDays}</td>
@@ -56,6 +61,20 @@
</tr>
{/each}
</tbody>
<tfoot>
<tr>
<td colspan="4">
<PaginationNav
totalItems="{records.length}"
pageSize="{pageSize}"
currentPage="{currentPage}"
limit="{1}"
showStepOptions="{true}"
on:setPage="{(e) => currentPage = e.detail.page}"
/>
</td>
</tr>
</tfoot>
</table>
{/if}
</article>
+3 -2
View File
@@ -5,6 +5,7 @@
let TITLE = "Bearbeitung Einträge"
let activeRecord = null;
let currentPage = 1
</script>
<svelte:head>
@@ -17,7 +18,7 @@
<h1>{TITLE}</h1>
</header>
<article>
<List bind:activeRecord={activeRecord}/>
<List bind:activeRecord={activeRecord} bind:currentPage/>
</article>
</section>
{:else}
@@ -26,7 +27,7 @@
<h1>{TITLE}</h1>
</header>
<article>
<Formular bind:activeRecord={activeRecord}/>
<Formular bind:activeRecord={activeRecord} bind:currentPage/>
</article>
</section>
{/if}
@@ -82,6 +82,7 @@
let nextDate = null
let activeRecordList = []
export let activeRecord = null
export let currentPage = 1
let period_of_edit
let makeTimekeepingList
+30 -12
View File
@@ -1,22 +1,26 @@
<script>
import {WorkingHoursRepository} from "../../components/Repositories.svelte"
import {TimekeepingDate} from "../../components/TimekeepingDate.svelte"
export let activeRecord = null
let isLoading = true
let records = []
import { WorkingHoursRepository } from '../../components/Repositories.svelte'
import { TimekeepingDate } from '../../components/TimekeepingDate.svelte'
import { paginate, PaginationNav } from 'svelte-paginate'
import IconifyIcon from '@iconify/svelte'
import wrenchIcon from '@iconify-icons/oi/wrench'
import documentIcon from '@iconify-icons/oi/document'
export let activeRecord = null
let isLoading = true
let records = []
export let currentPage = 1
let pageSize = 15
$: paginatedItems = paginate({ items: records, pageSize, currentPage })
const Controller = {
'listRecords': () => {
Controller.cancelActiveRecord();
Controller.cancelActiveRecord()
WorkingHoursRepository.browse().then(data => {
Controller.cancelActiveRecord()
records = data
isLoading = false
});
})
},
'newRecord': async () => {
const actDate = new TimekeepingDate()
@@ -27,11 +31,11 @@
Controller.listRecords()
return
}
activeRecord = data;
activeRecord = data
}),
'cancelActiveRecord': () => {
activeRecord = null;
}
activeRecord = null
},
}
Controller.listRecords()
</script>
@@ -61,7 +65,7 @@
</tr>
</thead>
<tbody>
{#each records as record}
{#each paginatedItems as record}
<tr>
<td>{record.workingDay}</td>
<td>{record.workingTime}</td>
@@ -73,5 +77,19 @@
</tr>
{/each}
</tbody>
<tfoot>
<tr>
<td colspan="4">
<PaginationNav
totalItems="{records.length}"
pageSize="{pageSize}"
currentPage="{currentPage}"
limit="{1}"
showStepOptions="{true}"
on:setPage="{(e) => currentPage = e.detail.page}"
/>
</td>
</tr>
</tfoot>
</table>
{/if}