diff --git a/backend.light/backend.light b/backend.light/backend.light
index 57c73bb..41f525f 100755
Binary files a/backend.light/backend.light and b/backend.light/backend.light differ
diff --git a/backend.light/http.go b/backend.light/http.go
index abd6c26..14745fa 100644
--- a/backend.light/http.go
+++ b/backend.light/http.go
@@ -46,8 +46,8 @@ func (app *App) RegisterWebRoutes() {
display_h := app.Engine.Group("/display-h")
display_h.Static("/", "./static/display-h")
- display_v := app.Engine.Group("/display-v")
- display_v.Static("/", "./static/display-v")
+ display := app.Engine.Group("/display")
+ display.Static("/", "./static/display")
mobile := app.Engine.Group("/mobile")
mobile.Static("/", "./static/mobile")
diff --git a/backend.light/http_api.go b/backend.light/http_api.go
index dd1b024..5133a69 100644
--- a/backend.light/http_api.go
+++ b/backend.light/http_api.go
@@ -21,19 +21,18 @@ func (app *App) RegisterApiRoutes() {
func (app *App) GetPriority(c *gin.Context) {
c.JSON(http.StatusOK, app.Stream.Data)
- log.Printf("priority: %+v", app.Stream.Data)
+ log.Printf("get priority: %+v", app.Stream.Data)
}
func (app *App) SetPriority(c *gin.Context) {
- var priority = &Priority{}
+ var priority = Priority{}
body, _ := io.ReadAll(c.Request.Body)
- log.Printf("set priority %s", string(body))
-
+ log.Printf("set priority body: %s", string(body))
c.Request.Body = io.NopCloser(bytes.NewReader(body))
- c.ShouldBind(priority)
- log.Printf("priority: %+v", priority)
+ err := c.ShouldBindJSON(&priority)
+ log.Printf("set priority: %+v - err: %+v", priority, err)
c.JSON(http.StatusOK, gin.H{
"code": http.StatusOK,
"message": priority,
diff --git a/backend.light/priority.go b/backend.light/priority.go
index cde07ff..1accb1f 100644
--- a/backend.light/priority.go
+++ b/backend.light/priority.go
@@ -2,8 +2,8 @@ package main
type Priority struct {
Surfers []Surfer `json:"surfers"`
- Count int `json:"count"`
Round Round `json:"round"`
+ Count int `json:"surfersCount"`
}
type Surfer struct {
diff --git a/frontend.light/src/routes/+page.svelte b/frontend.light/src/routes/+page.svelte
index 5982b0a..92ec785 100644
--- a/frontend.light/src/routes/+page.svelte
+++ b/frontend.light/src/routes/+page.svelte
@@ -1,2 +1,4 @@
-
Welcome to SvelteKit
-Visit kit.svelte.dev to read the documentation
+Home
+Priority
+Mobile
+Display
\ No newline at end of file
diff --git a/frontend.light/src/routes/display-v/+page.svelte b/frontend.light/src/routes/display/+page.svelte
similarity index 85%
rename from frontend.light/src/routes/display-v/+page.svelte
rename to frontend.light/src/routes/display/+page.svelte
index 8f27a76..1a5dc3a 100644
--- a/frontend.light/src/routes/display-v/+page.svelte
+++ b/frontend.light/src/routes/display/+page.svelte
@@ -3,12 +3,17 @@
import { onMount } from 'svelte';
import { priority } from '$lib/stores/priority.js';
- if (dev) {
+ let base;
+
+ if (dev) {
console.log('Dev mode');
+ base = 'http://10.39.253.16:8080';
} else {
console.log('Not dev mode');
+ base = '';
}
+
const events = ['priority'];
window.document.body.oncontextmenu = function () {
@@ -25,7 +30,7 @@
});
function StartSSE() {
- let url = '/api/sse?';
+ let url = base + '/api/sse?';
for (let e in events) {
url += `event=${events[e]}&`;
}
@@ -41,7 +46,9 @@
let Msg = JSON.parse(e.data);
console.log(JSON.stringify(Msg));
console.log(`surfers: ${Msg.data.priority}`);
- $priority = Msg.data.priority;
+ $priority.surfers = Msg.data.surfers;
+ $priority.round = Msg.data.round;
+ $priority.surfersCount = Msg.data.surfersCount;
});
return () => {
@@ -51,10 +58,12 @@
}
async function LoadPriority() {
- const res = await fetch(`/api/priority`);
+ const res = await fetch(`${base}/api/priority`);
const data = await res.json();
console.log(`load priority: ${JSON.stringify(data)}`);
- $priority = data.priority;
+ $priority.surfers = data.surfers;
+ $priority.round = data.round;
+ $priority.surfersCount = data.surfersCount;
}
diff --git a/frontend.light/src/routes/mobile/+page.svelte b/frontend.light/src/routes/mobile/+page.svelte
index e7c2634..bcb197a 100644
--- a/frontend.light/src/routes/mobile/+page.svelte
+++ b/frontend.light/src/routes/mobile/+page.svelte
@@ -4,10 +4,14 @@
import { dev } from '$app/environment';
import { priority } from '$lib/stores/priority.js';
- if (dev) {
+ let base;
+
+ if (dev) {
console.log('Dev mode');
+ base = 'http://10.39.253.16:8080';
} else {
console.log('Not dev mode');
+ base = '';
}
const events = ['priority'];
@@ -24,7 +28,7 @@
// }
function StartSSE() {
- let url = '/api/sse?';
+ let url = base + '/api/sse?';
for (let e in events) {
url += `event=${events[e]}&`;
}
@@ -36,12 +40,23 @@
console.log(`sse open ${Date.now()}`);
};
+ sse.onmessage = (e) => {
+ let Msg = JSON.parse(e.data);
+ console.log(JSON.stringify(Msg));
+ console.log(`surfers: ${Msg.data.priority}`);
+ $priority.surfers = Msg.data.surfers;
+ $priority.round = Msg.data.round;
+ $priority.surfersCount = Msg.data.surfersCount;
+ };
+
sse.addEventListener('priority', (e) => {
let Msg = JSON.parse(e.data);
console.log(JSON.stringify(Msg));
console.log(`surfers: ${Msg.data.priority}`);
- $priority = Msg.data.priority;
- SaveSession();
+ $priority.surfers = Msg.data.surfers;
+ $priority.round = Msg.data.round;
+ $priority.surfersCount = Msg.data.surfersCount;
+// SaveSession();
});
return () => {
@@ -50,28 +65,27 @@
};
}
- function SaveSession() {
- window.sessionStorage.setItem('status', true);
- window.sessionStorage.setItem('priority', JSON.stringify($priority));
- console.log(`saved: ${JSON.stringify($priority)}`);
- }
+ // function SaveSession() {
+ // window.sessionStorage.setItem('status', true);
+ // window.sessionStorage.setItem('priority', JSON.stringify($priority));
+ // console.log(`saved: ${JSON.stringify($priority)}`);
+ // }
async function LoadPriority() {
- const res = await fetch(`/api/priority`);
+ const res = await fetch(`${base}/api/priority`);
const data = await res.json();
console.log(`load priority: ${JSON.stringify(data)}`);
- $priority = data.priority;
+ $priority.surfers = data.surfers;
+ $priority.round = data.round;
+ $priority.surfersCount = data.surfersCount;
}
onMount(async () => {
- if (!dev) {
- const sse = StartSSE();
- } else {
- const sse = 0;
- }
+ const sse = StartSSE();
- if (window.sessionStorage.getItem('status')) {
- $priority = JSON.parse(window.sessionStorage.getItem('priority'));
+ let pri = window.sessionStorage.getItem('priority')
+ if (pri) {
+ $priority = JSON.parse(pri);
console.log(`loaded: ${JSON.stringify($priority)}`);
}
diff --git a/frontend.light/src/routes/priority/+page.svelte b/frontend.light/src/routes/priority/+page.svelte
index d01d43e..b19b9c3 100644
--- a/frontend.light/src/routes/priority/+page.svelte
+++ b/frontend.light/src/routes/priority/+page.svelte
@@ -21,16 +21,13 @@
let footer_height = 8;
$: setup_height = (100 - footer_height) / $priority.surfersCount - 2.2 / $priority.surfersCount;
- $: if ($priority.surfers) {
- SaveToLocalCahe();
- }
+ // $: if ($priority.surfers) {
+ // SaveToLocalCahe();
+ // }
onMount(async () => {
- let status = window.sessionStorage.getItem('status');
- if (status) {
- LoadFromLocalCache();
- // console.log(`loaded: ${JSON.stringify($priority.surfers)}`);
- }
+ LoadFromLocalCache();
+ console.log(`loaded: ${JSON.stringify($priority)}`);
});
function hasDuplicateColors() {
@@ -65,6 +62,7 @@
}
ResetPriority();
start = true;
+ SaveToLocalCahe();
SendPriority();
}
@@ -90,23 +88,44 @@
function ResetLocalCache() {
console.log('ResetLocalCache');
window.sessionStorage.clear();
- window.sessionStorage.setItem('status', false);
- console.log(`reset cache: ${JSON.parse(window.sessionStorage.getItem('priority'))}`);
priority.reset();
- SendPriority();
+ console.log(`reset store: ${$priority}`);
+ // SendPriority();
}
function SaveToLocalCahe() {
- window.sessionStorage.setItem('status', true);
window.sessionStorage.setItem('priority', JSON.stringify($priority));
window.sessionStorage.setItem('start', JSON.stringify(start));
console.log(`update cache: ${JSON.stringify($priority)}`);
}
function LoadFromLocalCache() {
- $priority = JSON.parse(window.sessionStorage.getItem('priority'));
- start = JSON.parse(window.sessionStorage.getItem('start'));
- console.log(`load cache: ${JSON.stringify($priority)}`);
+ let pri = window.sessionStorage.getItem('priority')
+ if (pri) {
+ $priority = JSON.parse(pri);
+ start = JSON.parse(window.sessionStorage.getItem('start'));
+ console.log(`load cache: ${JSON.stringify($priority)} - ${start}`);
+ } else {
+ console.log(`no cache found`);
+ }
+ }
+
+ async function SendPriority() {
+ if (dev) {
+ return;
+ }
+ const res = await fetch(`/api/priority`, {
+ method: 'POST',
+ body: JSON.stringify({
+ surfers: $priority.surfers,
+ round: $priority.round,
+ surfersCount: $priority.surfersCount
+ }),
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ });
+ console.log(`SendPriority: ${JSON.stringify($priority)}`);
}
async function ChangePriority(id) {
@@ -167,22 +186,6 @@
SendPriority();
}
-
- async function SendPriority() {
- if (dev) {
- return;
- }
- const res = await fetch(`/api/priority`, {
- method: 'POST',
- body: JSON.stringify({
- piority: $priority
- }),
- headers: {
- 'Content-Type': 'application/json'
- }
- });
- console.log(`SendPriority: ${JSON.stringify($priority)}`);
- }