1 import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage'
2 import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'
3 import { SortMeta } from 'primeng/components/common/sortmeta'
5 import { RestPagination } from './rest-pagination'
7 export abstract class RestTable {
9 abstract totalRecords: number
10 abstract rowsPerPage: number
11 abstract sort: SortMeta
12 abstract pagination: RestPagination
14 private sortLocalStorageKey = 'rest-table-sort-' + this.constructor.name
16 protected abstract loadData (): void
19 const result = peertubeLocalStorage.getItem(this.sortLocalStorageKey)
23 this.sort = JSON.parse(result)
25 console.error('Cannot load sort of local storage key ' + this.sortLocalStorageKey, err)
30 loadLazy (event: LazyLoadEvent) {
32 order: event.sortOrder,
33 field: event.sortField
38 count: this.rowsPerPage
46 peertubeLocalStorage.setItem(this.sortLocalStorageKey, JSON.stringify(this.sort))