Add weekly monthly and yearly periods
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
<tr class="border-b border-gray-200 dark:border-gray-700">
|
<tr class="border-b border-gray-200 dark:border-gray-700">
|
||||||
<th class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap bg-gray-50 dark:text-white dark:bg-gray-800"
|
<th class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap bg-gray-50 dark:text-white dark:bg-gray-800"
|
||||||
scope="row">
|
scope="row">
|
||||||
{item.date}
|
{item.period}
|
||||||
</th>
|
</th>
|
||||||
<td class="px-6 py-4">
|
<td class="px-6 py-4">
|
||||||
{item.amount}
|
{item.amount}
|
||||||
|
@@ -26,6 +26,18 @@
|
|||||||
{
|
{
|
||||||
label: 'Daily',
|
label: 'Daily',
|
||||||
href: '/daily'
|
href: '/daily'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Weekly',
|
||||||
|
href: '/weekly'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Monthly',
|
||||||
|
href: '/monthly'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Yearly',
|
||||||
|
href: '/yearly'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
</script>
|
</script>
|
||||||
|
@@ -12,14 +12,14 @@ export type Food = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export type AggregatedFood = {
|
export type AggregatedFood = {
|
||||||
date: Date,
|
period: string,
|
||||||
amount: number,
|
amount: number,
|
||||||
avgPer100: number,
|
avgPer100: number,
|
||||||
energy: number,
|
energy: number,
|
||||||
}
|
}
|
||||||
|
|
||||||
const columns = ['rowid', 'date', 'food', 'description', 'amount', 'per100', 'energy']
|
const columns = ['rowid', 'date', 'food', 'description', 'amount', 'per100', 'energy']
|
||||||
const aggColumns = ['date', 'amount', 'avgPer100', 'energy']
|
const aggColumns = ['period', 'amount', 'avgPer100', 'energy']
|
||||||
|
|
||||||
const FoodService = {
|
const FoodService = {
|
||||||
async GetAll() {
|
async GetAll() {
|
||||||
|
@@ -3,10 +3,16 @@
|
|||||||
|
|
||||||
import Home from '$lib/router/routes/Home.svelte'
|
import Home from '$lib/router/routes/Home.svelte'
|
||||||
import Daily from '$router/routes/Daily.svelte'
|
import Daily from '$router/routes/Daily.svelte'
|
||||||
|
import Weekly from '$router/routes/Weekly.svelte'
|
||||||
|
import Monthly from '$router/routes/Monthly.svelte'
|
||||||
|
import Yearly from '$router/routes/Yearly.svelte'
|
||||||
|
|
||||||
const routes = {
|
const routes = {
|
||||||
'/': Home,
|
'/': Home,
|
||||||
'/daily': Daily
|
'/daily': Daily,
|
||||||
|
'/weekly': Weekly,
|
||||||
|
'/monthly': Monthly,
|
||||||
|
'/yearly': Yearly
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
19
src/lib/router/routes/Monthly.svelte
Normal file
19
src/lib/router/routes/Monthly.svelte
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { type AggregatedFood, FoodService } from '$lib/database/food'
|
||||||
|
import { onMount } from 'svelte'
|
||||||
|
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
|
||||||
|
|
||||||
|
let foods: AggregatedFood[] = []
|
||||||
|
onMount(async () => {
|
||||||
|
const [dbfoods, err] = await FoodService.GetMonthly()
|
||||||
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
foods = dbfoods
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<AggregatedFoodTable items="{foods}" />
|
||||||
|
</template>
|
19
src/lib/router/routes/Weekly.svelte
Normal file
19
src/lib/router/routes/Weekly.svelte
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { type AggregatedFood, FoodService } from '$lib/database/food'
|
||||||
|
import { onMount } from 'svelte'
|
||||||
|
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
|
||||||
|
|
||||||
|
let foods: AggregatedFood[] = []
|
||||||
|
onMount(async () => {
|
||||||
|
const [dbfoods, err] = await FoodService.GetWeekly()
|
||||||
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
foods = dbfoods
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<AggregatedFoodTable items="{foods}" />
|
||||||
|
</template>
|
19
src/lib/router/routes/Yearly.svelte
Normal file
19
src/lib/router/routes/Yearly.svelte
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { type AggregatedFood, FoodService } from '$lib/database/food'
|
||||||
|
import { onMount } from 'svelte'
|
||||||
|
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
|
||||||
|
|
||||||
|
let foods: AggregatedFood[] = []
|
||||||
|
onMount(async () => {
|
||||||
|
const [dbfoods, err] = await FoodService.GetYearly()
|
||||||
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
foods = dbfoods
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<AggregatedFoodTable items="{foods}" />
|
||||||
|
</template>
|
Reference in New Issue
Block a user