1
0
Fork 0
mirror of synced 2024-09-02 10:41:09 +12:00

Update backups to use single date picker instead of range

This commit is contained in:
Andrew Kingston 2024-04-10 16:45:11 +01:00
parent 283ebb2a33
commit 15e9936d9d
3 changed files with 18 additions and 98 deletions

View file

@ -1,7 +1,7 @@
<script>
import {
Button,
DateRangePicker,
DatePicker,
Divider,
Layout,
notifications,
@ -25,13 +25,13 @@
import BackupsDefault from "assets/backups-default.png"
import { BackupTrigger, BackupType } from "constants/backend/backups"
import { onMount } from "svelte"
import dayjs from "dayjs"
let loading = true
let backupData = null
let pageInfo = createPaginationStore()
let filterOpt = null
let startDate = null
let endDate = null
let date = null
let filters = [
{
label: "Manual backup",
@ -52,9 +52,9 @@
]
$: page = $pageInfo.page
$: fetchBackups(filterOpt, page, startDate, endDate)
$: fetchBackups(filterOpt, page, date)
let schema = {
const schema = {
type: {
displayName: "Type",
width: "auto",
@ -99,13 +99,13 @@
})
}
async function fetchBackups(filters, page, startDate, endDate) {
async function fetchBackups(filters, page, date) {
const response = await backups.searchBackups({
appId: $appStore.appId,
...filters,
page,
startDate,
endDate,
startDate: date ? dayjs(date).startOf("day") : null,
endDate: date ? dayjs(date).endOf("day") : null,
})
pageInfo.fetched(response.hasNextPage, response.nextPage)
@ -165,7 +165,7 @@
}
onMount(async () => {
await fetchBackups(filterOpt, page, startDate, endDate)
await fetchBackups(filterOpt, page, date)
loading = false
})
</script>
@ -207,7 +207,7 @@
View plans
</Button>
</div>
{:else if !backupData?.length && !loading && !filterOpt && !startDate}
{:else if !backupData?.length && !loading && !filterOpt && !date}
<div class="center">
<Layout noPadding gap="S" justifyItems="center">
<img height="130px" src={BackupsDefault} alt="BackupsDefault" />
@ -236,19 +236,19 @@
bind:value={filterOpt}
/>
</div>
<DateRangePicker
value={[startDate, endDate]}
label="Date Range"
<DatePicker
value={date}
label="Date"
on:change={e => {
startDate = e.detail?.[0]
endDate = e.detail?.[1]
date = e.detail
}}
enableTime={false}
/>
</div>
<div>
<Button cta disabled={loading} on:click={createManualBackup}
>Create new backup</Button
>
<Button cta disabled={loading} on:click={createManualBackup}>
Create new backup
</Button>
</div>
</div>
<div class="table">

View file

@ -1,79 +0,0 @@
<script>
import { Select } from "@budibase/bbui"
import { getContext, onDestroy } from "svelte"
import dayjs from "dayjs"
import utc from "dayjs/plugin/utc"
dayjs.extend(utc)
export let dataProvider
export let field
export let defaultValue
const component = getContext("component")
const { styleable, ActionTypes, getAction } = getContext("sdk")
const options = [
"Last 1 day",
"Last 7 days",
"Last 30 days",
"Last 3 months",
"Last 6 months",
"Last 1 year",
]
let value = options.includes(defaultValue) ? defaultValue : "Last 30 days"
$: dataProviderId = dataProvider?.id
$: addExtension = getAction(
dataProviderId,
ActionTypes.AddDataProviderQueryExtension
)
$: removeExtension = getAction(
dataProviderId,
ActionTypes.RemoveDataProviderQueryExtension
)
$: queryExtension = getQueryExtension(field, value)
$: addExtension?.($component.id, queryExtension)
const getQueryExtension = (field, value) => {
if (!field || !value) {
return null
}
let low = dayjs.utc().subtract(1, "year")
let high = dayjs.utc().add(1, "day")
if (value === "Last 1 day") {
low = dayjs.utc().subtract(1, "day")
} else if (value === "Last 7 days") {
low = dayjs.utc().subtract(7, "days")
} else if (value === "Last 30 days") {
low = dayjs.utc().subtract(30, "days")
} else if (value === "Last 3 months") {
low = dayjs.utc().subtract(3, "months")
} else if (value === "Last 6 months") {
low = dayjs.utc().subtract(6, "months")
}
return {
range: {
[field]: {
low: low.format(),
high: high.format(),
},
},
}
}
onDestroy(() => {
removeExtension?.($component.id)
})
</script>
<div use:styleable={$component.styles}>
<Select
placeholder={null}
{options}
{value}
on:change={e => (value = e.detail)}
/>
</div>

View file

@ -29,7 +29,6 @@ export { default as image } from "./Image.svelte"
export { default as embed } from "./Embed.svelte"
export { default as icon } from "./Icon.svelte"
export { default as backgroundimage } from "./BackgroundImage.svelte"
export { default as daterangepicker } from "./DateRangePicker.svelte"
export { default as cardstat } from "./CardStat.svelte"
export { default as spectrumcard } from "./SpectrumCard.svelte"
export { default as tag } from "./Tag.svelte"