Newer
Older
<ASection :title="t('showSchedules.title')">
<template #header>
<div class="tw-ml-auto">
<RadioGroup
v-model="scheduleSelection"
:choices="[
{ value: 'all', label: t('showSchedules.selection.all') },
{ value: 'relevant', label: t('showSchedules.selection.relevant') },
]"
name="display-mode"
/>
</div>
</template>
<div class="aura-table-wrapper tw-mb-0">
<table class="aura-table">
<thead>
<tr>
<th scope="col">
{{ t('showSchedules.rhythm') }}
</th>
<th scope="col">
{{ t('showSchedules.firstBroadcast') }}
</th>
<th scope="col">
{{ t('showSchedules.lastBroadcast') }}
</th>
<th scope="col" class="tw-text-right">
{{ t('showSchedules.times') }}
</th>
</tr>
</thead>
<tbody>
<ScheduleRow v-for="schedule in result.items" :key="schedule.id" :schedule="schedule" />

Konrad Mohrfeldt
committed
<tr v-if="result.count === 0">
<td colspan="4">
<p class="tw-text-center tw-py-3 tw-m-0">
{{ t('showSchedules.noSchedulesAvailable') }}
</p>
</td>
</tr>
</tbody>
</table>
<div
class="tw-flex tw-flex-wrap tw-gap-3 tw-items-center tw-px-6 tw-mt-3 tw-py-3 tw-border-0 tw-border-t tw-border-solid tw-border-gray-200 empty:tw-hidden"
>
<PaginationRange v-if="result.count > 0" :pagination-data="result" />
<Pagination v-model="page" :items-per-page="result.itemsPerPage" :count="result.count" />
</div>
</div>
</ASection>

Konrad Mohrfeldt
committed
import { usePaginatedList } from '@rokoli/bnb/drf'
import { useI18n } from '@/i18n'
import { useScheduleStore } from '@/stores/schedules'
import { Show } from '@/types'
import { useQuery } from '@/util'
import ASection from '@/components/generic/ASection.vue'

Konrad Mohrfeldt
committed
import ScheduleRow from './ScheduleRow.vue'
import RadioGroup from '@/components/generic/RadioGroup.vue'
import Pagination from '@/components/generic/Pagination.vue'
import PaginationRange from '@/components/generic/PaginationRange.vue'
defineOptions({ compatConfig: { MODE: 3 } })
const props = defineProps<{
show: Show
}>()
const { t } = useI18n()
const scheduleStore = useScheduleStore()
const scheduleSelection = ref<'all' | 'relevant'>('relevant')
const { result } = usePaginatedList(scheduleStore.listIsolated, page, 100, {
query: useQuery(() => ({
showIds: props.show.id,
excludeInactive: scheduleSelection.value === 'relevant' ? '1' : undefined,
})