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)}`); - }