Merge pull request 'UI: lås session-opdatering mens lie/guess submit kører (#115)' (#116) from feature/ui-session-refresh-lock-during-submit-115 into main
All checks were successful
CI / test-and-quality (push) Successful in 1m25s
All checks were successful
CI / test-and-quality (push) Successful in 1m25s
This commit was merged in pull request #116.
This commit is contained in:
@@ -78,7 +78,7 @@ function stopPlayerAutoRefresh(reason){playerAutoRefreshEnabled=false;if(playerA
|
|||||||
function startPlayerAutoRefresh(){if(!code()){updatePlayerAutoRefreshUi();return;}playerAutoRefreshEnabled=true;if(playerAutoRefreshTimer){clearInterval(playerAutoRefreshTimer);}playerAutoRefreshTimer=setInterval(function(){if(!code()||sessionDetailInFlight){return;}if(currentSessionStatus==="finished"){stopPlayerAutoRefresh("Auto-refresh stoppet: spillet er afsluttet.");return;}sessionDetail();},10000);updatePlayerAutoRefreshUi();savePlayerContext();}
|
function startPlayerAutoRefresh(){if(!code()){updatePlayerAutoRefreshUi();return;}playerAutoRefreshEnabled=true;if(playerAutoRefreshTimer){clearInterval(playerAutoRefreshTimer);}playerAutoRefreshTimer=setInterval(function(){if(!code()||sessionDetailInFlight){return;}if(currentSessionStatus==="finished"){stopPlayerAutoRefresh("Auto-refresh stoppet: spillet er afsluttet.");return;}sessionDetail();},10000);updatePlayerAutoRefreshUi();savePlayerContext();}
|
||||||
function togglePlayerAutoRefresh(){if(joinInFlight){updatePlayerAutoRefreshUi();return;}if(playerAutoRefreshEnabled){stopPlayerAutoRefresh();return;}startPlayerAutoRefresh();}
|
function togglePlayerAutoRefresh(){if(joinInFlight){updatePlayerAutoRefreshUi();return;}if(playerAutoRefreshEnabled){stopPlayerAutoRefresh();return;}startPlayerAutoRefresh();}
|
||||||
function updatePlayerErrorHint(status,data){var el=document.getElementById("playerErrorHint");if(!el){return;}if(status>=200&&status<300){el.textContent="Ingen fejl.";return;}var errKey=normalizeApiError(data);el.textContent="Fejl: "+mapUiErrorMessage(errKey)+" ("+(errKey||("http_"+status))+")";}
|
function updatePlayerErrorHint(status,data){var el=document.getElementById("playerErrorHint");if(!el){return;}if(status>=200&&status<300){el.textContent="Ingen fejl.";return;}var errKey=normalizeApiError(data);el.textContent="Fejl: "+mapUiErrorMessage(errKey)+" ("+(errKey||("http_"+status))+")";}
|
||||||
function updateSessionDetailState(){var btn=document.getElementById("sessionDetailBtn");var hint=document.getElementById("sessionRefreshHint");if(btn){btn.disabled=sessionDetailInFlight||joinInFlight||!code();}if(!hint){updatePlayerAutoRefreshUi();return;}if(sessionDetailInFlight){hint.textContent="Opdaterer session-status…";updatePlayerAutoRefreshUi();return;}if(joinInFlight){hint.textContent="Session-opdatering er låst mens join kører.";updatePlayerAutoRefreshUi();return;}if(!code()){hint.textContent="Angiv sessionkode for at opdatere session-status.";updatePlayerAutoRefreshUi();return;}hint.textContent="Session-opdatering klar.";updatePlayerAutoRefreshUi();}
|
function updateSessionDetailState(){var btn=document.getElementById("sessionDetailBtn");var hint=document.getElementById("sessionRefreshHint");var submitInFlight=lieSubmitInFlight||guessSubmitInFlight;if(btn){btn.disabled=sessionDetailInFlight||joinInFlight||submitInFlight||!code();}if(!hint){updatePlayerAutoRefreshUi();return;}if(sessionDetailInFlight){hint.textContent="Opdaterer session-status…";updatePlayerAutoRefreshUi();return;}if(joinInFlight){hint.textContent="Session-opdatering er låst mens join kører.";updatePlayerAutoRefreshUi();return;}if(submitInFlight){hint.textContent="Session-opdatering er låst mens submit kører.";updatePlayerAutoRefreshUi();return;}if(!code()){hint.textContent="Angiv sessionkode for at opdatere session-status.";updatePlayerAutoRefreshUi();return;}hint.textContent="Session-opdatering klar.";updatePlayerAutoRefreshUi();}
|
||||||
function updateJoinState(){var btn=document.getElementById("joinBtn");var status=document.getElementById("joinStatus");var joined=!!(pid()&&document.getElementById("sessionToken").value.trim());var canJoin=canAttemptJoin();if(btn){btn.disabled=joinInFlight||sessionDetailInFlight||joined||!canJoin;}if(!status){updateContextLockState();return;}if(joinInFlight){status.textContent="Joiner…";updateContextLockState();return;}if(sessionDetailInFlight&&!joined){status.textContent="Afvent aktiv session-opdatering før join.";updateContextLockState();return;}if(joined){status.textContent="Join gennemført.";updateContextLockState();return;}if(!canJoin){status.textContent="Udfyld kode og nickname for at join.";updateContextLockState();return;}status.textContent="Klar til join.";updateContextLockState();}
|
function updateJoinState(){var btn=document.getElementById("joinBtn");var status=document.getElementById("joinStatus");var joined=!!(pid()&&document.getElementById("sessionToken").value.trim());var canJoin=canAttemptJoin();if(btn){btn.disabled=joinInFlight||sessionDetailInFlight||joined||!canJoin;}if(!status){updateContextLockState();return;}if(joinInFlight){status.textContent="Joiner…";updateContextLockState();return;}if(sessionDetailInFlight&&!joined){status.textContent="Afvent aktiv session-opdatering før join.";updateContextLockState();return;}if(joined){status.textContent="Join gennemført.";updateContextLockState();return;}if(!canJoin){status.textContent="Udfyld kode og nickname for at join.";updateContextLockState();return;}status.textContent="Klar til join.";updateContextLockState();}
|
||||||
|
|
||||||
function guessStorageKey(){var c=code();var p=pid();var q=rq();if(!c||!p||!q){return "";}return ["wppGuess",c,p,q].join(":");}
|
function guessStorageKey(){var c=code();var p=pid();var q=rq();if(!c||!p||!q){return "";}return ["wppGuess",c,p,q].join(":");}
|
||||||
|
|||||||
@@ -868,7 +868,7 @@ class UiScreenTests(TestCase):
|
|||||||
self.assertContains(response, "resetRoundContextForManualChange")
|
self.assertContains(response, "resetRoundContextForManualChange")
|
||||||
self.assertContains(response, "Runde-kontekst afventer session-opdatering.")
|
self.assertContains(response, "Runde-kontekst afventer session-opdatering.")
|
||||||
self.assertContains(response, "togglePlayerAutoRefresh")
|
self.assertContains(response, "togglePlayerAutoRefresh")
|
||||||
self.assertContains(response, "btn.disabled=sessionDetailInFlight||joinInFlight||!code()")
|
self.assertContains(response, "btn.disabled=sessionDetailInFlight||joinInFlight||submitInFlight||!code()")
|
||||||
self.assertContains(response, "Auto-refresh-lås: afvent aktiv session-opdatering.")
|
self.assertContains(response, "Auto-refresh-lås: afvent aktiv session-opdatering.")
|
||||||
self.assertContains(response, "Auto-refresh-lås: afvent aktiv join.")
|
self.assertContains(response, "Auto-refresh-lås: afvent aktiv join.")
|
||||||
self.assertContains(response, "Auto-refresh kræver sessionkode.")
|
self.assertContains(response, "Auto-refresh kræver sessionkode.")
|
||||||
@@ -878,6 +878,7 @@ class UiScreenTests(TestCase):
|
|||||||
self.assertContains(response, "session_detail_in_flight")
|
self.assertContains(response, "session_detail_in_flight")
|
||||||
self.assertContains(response, "Opdaterer session-status…")
|
self.assertContains(response, "Opdaterer session-status…")
|
||||||
self.assertContains(response, "Session-opdatering er låst mens join kører.")
|
self.assertContains(response, "Session-opdatering er låst mens join kører.")
|
||||||
|
self.assertContains(response, "Session-opdatering er låst mens submit kører.")
|
||||||
self.assertContains(response, "Session-data ikke opdateret endnu.")
|
self.assertContains(response, "Session-data ikke opdateret endnu.")
|
||||||
self.assertContains(response, "Sidst opdateret:")
|
self.assertContains(response, "Sidst opdateret:")
|
||||||
self.assertContains(response, "Session-data kan være forældet")
|
self.assertContains(response, "Session-data kan være forældet")
|
||||||
|
|||||||
Reference in New Issue
Block a user