diff --git a/app.go b/app.go
index 3a59316..faaf49a 100644
--- a/app.go
+++ b/app.go
@@ -28,7 +28,6 @@ func (a *App) GetFood() WailsFood {
}
return WailsFood{Data: data, Success: true}
}
-
func (a *App) CreateFood(food Food) WailsFood1 {
data, err := foodService.Create(food)
if err != nil {
@@ -36,7 +35,6 @@ func (a *App) CreateFood(food Food) WailsFood1 {
}
return WailsFood1{Data: data, Success: true}
}
-
func (a *App) UpdateFood(food Food) WailsFood1 {
data, err := foodService.Update(food)
if err != nil {
@@ -45,10 +43,18 @@ func (a *App) UpdateFood(food Food) WailsFood1 {
return WailsFood1{Data: data, Success: true}
}
+func (a *App) GetLastPer100(name string) WailsPer100 {
+ data, err := foodService.GetLastPer100(name)
+ if err != nil {
+ return WailsPer100{Success: false, Error: err.Error()}
+ }
+ return WailsPer100{Data: data, Success: true}
+}
+
// region settings
func (a *App) GetSettings() settings {
return Settings
}
func (a *App) SetSetting(key string, value any) settings {
return settingsService.Set(key, value)
-}
\ No newline at end of file
+}
diff --git a/foodservice.go b/foodservice.go
index 62fb4de..447c584 100644
--- a/foodservice.go
+++ b/foodservice.go
@@ -56,6 +56,21 @@ func (s *FoodService) GetRecent() ([]Food, error) {
return res, nil
}
+func (s *FoodService) GetLastPer100(name string) (float32, error) {
+ if s.db == nil || !s.db.Ready {
+ return 0, fmt.Errorf("cannot get last per100, db is nil or is not ready")
+ }
+
+ row := s.db.readConn.QueryRow("SELECT per100 FROM food WHERE food like ? ORDER BY rowid DESC LIMIT 1", name+"%")
+ var per100 float32
+ err := row.Scan(&per100)
+ if err != nil {
+ return 0, fmt.Errorf("error scanning row: %v", err)
+ }
+
+ return per100, nil
+}
+
func (s *FoodService) Create(food Food) (Food, error) {
if s.db == nil || !s.db.Ready {
return food, fmt.Errorf("cannot create food, db is nil or is not ready")
diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte
index 8f2caea..0eb3f4a 100644
--- a/frontend/src/App.svelte
+++ b/frontend/src/App.svelte
@@ -1,8 +1,10 @@
+
diff --git a/frontend/src/lib/components/Energy/Energy.svelte b/frontend/src/lib/components/Energy/Energy.svelte
index 4555643..da56fd5 100644
--- a/frontend/src/lib/components/Energy/Energy.svelte
+++ b/frontend/src/lib/components/Energy/Energy.svelte
@@ -1,8 +1,24 @@
-
-
\ No newline at end of file
+ {#if forceUpdate}
+
+ {:else}
+
+ {/if}
+
diff --git a/frontend/src/lib/components/Energy/Food/EmptyFoodComp.svelte b/frontend/src/lib/components/Energy/Food/EmptyFoodComp.svelte
index b16ed84..f7325fc 100644
--- a/frontend/src/lib/components/Energy/Food/EmptyFoodComp.svelte
+++ b/frontend/src/lib/components/Energy/Food/EmptyFoodComp.svelte
@@ -1,95 +1,110 @@
-
+
diff --git a/frontend/src/lib/components/Energy/Food/FoodTable.svelte b/frontend/src/lib/components/Energy/Food/FoodTable.svelte
index 905d446..fa58e9a 100644
--- a/frontend/src/lib/components/Energy/Food/FoodTable.svelte
+++ b/frontend/src/lib/components/Energy/Food/FoodTable.svelte
@@ -8,10 +8,12 @@
let minCal = 1e5;
let maxCal = 0;
- for (let item of items) {
- if (!item.energy) continue;
- if (item.energy > maxCal) maxCal = item.energy;
- if (item.energy < minCal) minCal = item.energy;
+ $: {
+ for (let item of items) {
+ if (!item.energy) continue;
+ if (item.energy > maxCal) maxCal = item.energy;
+ if (item.energy < minCal) minCal = item.energy;
+ }
}
const start = "#99ff99";
@@ -72,7 +74,12 @@
{#each items as f}
-
+
{/each}
diff --git a/frontend/wailsjs/go/main/App.d.ts b/frontend/wailsjs/go/main/App.d.ts
index cfa9a64..64c88be 100644
--- a/frontend/wailsjs/go/main/App.d.ts
+++ b/frontend/wailsjs/go/main/App.d.ts
@@ -6,6 +6,8 @@ export function CreateFood(arg1:main.Food):Promise;
export function GetFood():Promise;
+export function GetLastPer100(arg1:string):Promise;
+
export function GetSettings():Promise;
export function SetSetting(arg1:string,arg2:any):Promise;
diff --git a/frontend/wailsjs/go/main/App.js b/frontend/wailsjs/go/main/App.js
index de92774..205ce76 100644
--- a/frontend/wailsjs/go/main/App.js
+++ b/frontend/wailsjs/go/main/App.js
@@ -10,6 +10,10 @@ export function GetFood() {
return window['go']['main']['App']['GetFood']();
}
+export function GetLastPer100(arg1) {
+ return window['go']['main']['App']['GetLastPer100'](arg1);
+}
+
export function GetSettings() {
return window['go']['main']['App']['GetSettings']();
}
diff --git a/frontend/wailsjs/go/models.ts b/frontend/wailsjs/go/models.ts
index 0198c06..785eb16 100644
--- a/frontend/wailsjs/go/models.ts
+++ b/frontend/wailsjs/go/models.ts
@@ -92,6 +92,22 @@ export namespace main {
return a;
}
}
+ export class WailsPer100 {
+ data: number;
+ success: boolean;
+ error?: string;
+
+ static createFrom(source: any = {}) {
+ return new WailsPer100(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.data = source["data"];
+ this.success = source["success"];
+ this.error = source["error"];
+ }
+ }
export class settings {
foodDaysLookback: number;
foodAggregatedDaysLookback: number;
diff --git a/wailstypes.go b/wailstypes.go
index 6302297..8c0fff6 100644
--- a/wailstypes.go
+++ b/wailstypes.go
@@ -16,11 +16,15 @@ type (
Error string `json:"error,omitempty"`
}
WailsFood1 struct {
- Data Food `json:"data"`
+ Data Food `json:"data"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
-
+ WailsPer100 struct {
+ Data float32 `json:"data"`
+ Success bool `json:"success"`
+ Error string `json:"error,omitempty"`
+ }
WailsAggregateFood struct {
Data []AggregatedFood `json:"data"`
Success bool `json:"success"`