Commit graph

610 commits

Author SHA1 Message Date
bgoulard
4f6aca819f fix up html order elements + end-screen 2026-01-13 18:07:52 +01:00
bgoulard
7ffb3d8ef4 unified front for games done 2026-01-13 18:07:52 +01:00
apetitco
77f24de84d (tic-tac-toe): No longer letting old match information displayed once game is finished 2026-01-13 17:20:44 +01:00
Maieul BOYER
52746f8a7f properly dequeue user and reflect that on frontend 2026-01-13 17:20:00 +01:00
Maieul BOYER
06fa768c84 fixes(tournament): tournament now no long blocks you and you get removed from queue when joining a tournament 2026-01-13 17:20:00 +01:00
Maieul BOYER
6fa846f1e2 catching global exceptions 2026-01-13 17:10:28 +01:00
Maieul BOYER
30540bfe92 auth reload and better tour handling 2026-01-13 17:02:21 +01:00
apetitco
deb391807a (tic-tac-toe): Added history button to check player's tic-tac-toe matches history 2026-01-13 16:47:39 +01:00
G.C.L. Baptiste
5eec958663
Merge pull request #152 from Maix0/feat/ttt/cleanboard_endgame
Clearing board on game end
2026-01-13 16:42:43 +01:00
apetitco
f83ae5ce71 (tic-tac-toe): Clearing board on game end. 2026-01-13 16:33:49 +01:00
NigeParis
ca1865b850 Modification win.loc to navigateTO() 2026-01-13 15:51:47 +01:00
NigeParis
b49641d71c history games now in chat and profil 2026-01-13 15:51:47 +01:00
NigeParis
2e87cb12c1 history games now in chat and profil 2026-01-13 15:51:47 +01:00
Maieul BOYER
9e431e9c6c fixes: cleanup things and added a title on every page 2026-01-13 15:50:44 +01:00
Maieul BOYER
a1a896daf2 fix(msg): show correct messages 2026-01-13 15:29:46 +01:00
Maieul BOYER
aca2dbd070 feat(tour): added tournament history page :D 2026-01-13 14:17:51 +01:00
NigeParis
75f3c2a769 Added quitChat in Pong.ts to go to UGAME 2026-01-13 13:00:33 +01:00
NigeParis
7e644fe658 Fixed in / out chat notification system info 2026-01-13 13:00:33 +01:00
NigeParis
2e422eee2a Blockage u-Game from user 2026-01-13 13:00:33 +01:00
NigeParis
432fd849b8 WIP copy U Game link to sender 2026-01-13 13:00:33 +01:00
Maieul BOYER
ed2885f19d removed console.log 2026-01-12 17:10:34 +01:00
Maieul BOYER
43e3b9af26 feat(tournament): better frontend and database handling 2026-01-12 17:10:34 +01:00
Alessandro Petitcollin
ca618d64ca Now using variable to define time before result message disappears to avoid magic numbers in this case. 2026-01-12 17:02:30 +01:00
Alessandro Petitcollin
35a7438e83 Instead of toast, result message is now displayed on top of tic-tac-toe grid and disappear after a timeout period.
# Conflicts:
#	frontend/src/pages/ttt/ttt.ts

diff --git c/frontend/src/pages/ttt/ttt.html i/frontend/src/pages/ttt/ttt.html
index 82b0f8f..0ea49e1 100644
--- c/frontend/src/pages/ttt/ttt.html
+++ i/frontend/src/pages/ttt/ttt.html
@@ -1,6 +1,6 @@
 <div class="displaybox">
-    <div id="mainbox" class="mainboxDisplay">
-        <button id="JoinQueueBtn" class="btn-style absolute top-4 right-6">Join Queue</button>
+    <div class="mainboxDisplay" id="mainbox">
+        <button class="btn-style absolute top-4 right-6" id="JoinQueueBtn">Join Queue</button>
         <h1 class="text-3xl font-bold text-gray-800">
             Tic-tac-toe Box<span id="t-username"></span>
         </h1><br>
@@ -14,7 +14,7 @@
             </div>

             <div class="text-center text-sm text-gray-800 px-4 whitespace-nowrap">
-                <div id="currentPlayer" class='text-7xl font-bold'></div>
+                <div class='text-7xl font-bold' id="currentPlayer"></div>
                 <div id="currentPlayerTimer">Waiting for match...</div>
             </div>

@@ -27,17 +27,21 @@
             </div>
         </div>
         <div class="grid-box mt-2">
-            <div class="grid-layout">
-                <div id="cell1" class="ttt-cell"></div>
-                <div id="cell2" class="ttt-cell"></div>
-                <div id="cell3" class="ttt-cell"></div>
-                <div id="cell4" class="ttt-cell"></div>
-                <div id="cell5" class="ttt-cell"></div>
-                <div id="cell6" class="ttt-cell"></div>
-                <div id="cell7" class="ttt-cell"></div>
-                <div id="cell8" class="ttt-cell"></div>
-                <div id="cell9" class="ttt-cell"></div>
+            <div class="grid-layout relative rounded-lg overflow-hidden">
+                <div class="absolute inset-0 flex flex-col items-center justify-center z-10 bg-gray-900/85 text-white hidden"
+                     id="ttt-end-screen">
+                    outcome
+                </div>
+                <div class="ttt-cell" id="cell1"></div>
+                <div class="ttt-cell" id="cell2"></div>
+                <div class="ttt-cell" id="cell3"></div>
+                <div class="ttt-cell" id="cell4"></div>
+                <div class="ttt-cell" id="cell5"></div>
+                <div class="ttt-cell" id="cell6"></div>
+                <div class="ttt-cell" id="cell7"></div>
+                <div class="ttt-cell" id="cell8"></div>
+                <div class="ttt-cell" id="cell9"></div>
             </div>
-        </div>
+        </div>
     </div>
 </div>
\ No newline at end of file
diff --git c/frontend/src/pages/ttt/ttt.ts i/frontend/src/pages/ttt/ttt.ts
index 2c22add..a111624 100644
--- c/frontend/src/pages/ttt/ttt.ts
+++ i/frontend/src/pages/ttt/ttt.ts
@@ -1,7 +1,7 @@
 import "./ttt.css"
 import {addRoute, type RouteHandlerReturn} from "@app/routing";
 import tttPage from "./ttt.html?raw";
-import {showError, showInfo, showSuccess, showWarn} from "@app/toast";
+import {showError, showInfo} from "@app/toast";
 import {io} from "socket.io-client";
 import type {CSocket as Socket, GameUpdate} from "./socket";
 import {updateUser} from "@app/auth";
@@ -57,7 +57,8 @@ async function handleTTT(): Promise<RouteHandlerReturn> {
             const currentPlayerIndicator = document.getElementById("currentPlayer");
             const joinQueueBtn = document.getElementById("JoinQueueBtn");
             const currentPlayerTimer = document.getElementById("currentPlayerTimer")
-            if (!userXString || !userOString || !currentPlayerIndicator || !joinQueueBtn || !currentPlayerTimer) {
+            const result_message = document.getElementById("ttt-end-screen");
+            if (!userXString || !userOString || !currentPlayerIndicator || !joinQueueBtn || !currentPlayerTimer || !result_message) {
                 return showError('fatal error');
             }

@@ -128,9 +129,12 @@ async function handleTTT(): Promise<RouteHandlerReturn> {
             };

             const makeEnd = (type: 'win' | 'conceded' | 'draw', player: 'X' | 'O') => {
-                // TODO: Enhance the draw notification
                 if (type === 'draw') {
-                    showWarn('It\'s a draw !')
+                    result_message.innerText = "It's a draw! :/";
+                    result_message.classList.remove("hidden");
+                    setTimeout(() => {
+                        result_message.classList.add("hidden");
+                    }, 3 * 1000);
                 }

                 if (type === 'win') {
@@ -145,11 +149,19 @@ async function handleTTT(): Promise<RouteHandlerReturn> {
                         default:
                             return;
                     }
-                    // TODO: Enhance the win/loss notification
-                    if (youWin)
-                        showSuccess('You won the game !');
-                    else
-                        showError('You lost the game :(');
+                    if (youWin) {
+                        result_message.innerText = "You won the game! :)";
+                        result_message.classList.remove("hidden");
+                        setTimeout(() => {
+                            result_message.classList.add("hidden");
+                        }, 3 * 1000);
+                    } else {
+                        result_message.innerText = "You lost the game! :(";
+                        result_message.classList.remove("hidden");
+                        setTimeout(() => {
+                            result_message.classList.add("hidden");
+                        }, 3 * 1000);
+                    }
                 }
             };
2026-01-12 17:02:30 +01:00
Alessandro Petitcollin
1c6a513e4f result of make npm@update && make npm@openapi 2026-01-12 17:02:30 +01:00
Alessandro Petitcollin
830d733f1b Initial commit 2026-01-12 17:02:30 +01:00
bgoulard
19cae8ae63 fix integration with caht service 2026-01-12 15:09:54 +01:00
bgoulard
fd572707ff wip 2026-01-12 15:09:54 +01:00
bgoulard
152d5e9578 added join game via url. 2026-01-12 15:09:54 +01:00
bgoulard
b862dc27f1 [wip] added socket shape for join game + started working on front handling of game param in url 2026-01-12 15:09:54 +01:00
G.C.L. Baptiste
a435afb48f
Merge pull request #138 from Maix0/nigel/merde
Nigel/merde
2026-01-12 13:46:10 +01:00
NigeParis
b8372c2a51 Small conflit with Baptiste PONG 2026-01-12 13:41:28 +01:00
NigeParis
0fbe08a5cf rebase 2026-01-12 13:38:36 +01:00
NigeParis
96cfbef642 Added U Game system 2026-01-12 13:35:31 +01:00
NigeParis
62705c4a7e WIP game link hard coded for the moment 2026-01-12 13:34:42 +01:00
Maieul BOYER
6a55b28c2a feat(tour): tournament is almost done 2026-01-11 18:14:49 +01:00
Maieul BOYER
2e23943578 feat(tour): tournament is almost done 2026-01-11 17:11:59 +01:00
Maieul BOYER
f14d618ed5 feat(chat): Handle user change 2026-01-11 14:00:09 +01:00
Maieul BOYER
0ec2b3007c feat(pong): now support getting gameUpdate from games you are not playing 2026-01-11 13:58:32 +01:00
NigeParis
cd03048cb3 Chat Overlay on global site done - needs to have chat hide still 2026-01-11 13:16:46 +01:00
Maieul BOYER
d3bd2fce22 update: rebased 2026-01-10 18:53:45 +01:00
NigeParis
b4af6e08ca Chat moved up to top level now in all services frontend 2026-01-10 18:53:45 +01:00
NigeParis
814c389e38 Deleted NextGame Dev Button in Chat 2026-01-10 18:53:45 +01:00
Maieul BOYER
1b169fca13 added pong keepalive 2026-01-10 18:07:20 +01:00
Maieul BOYER
901e3e5a8e feat(tour): better frontend for tournament start phase, and auto start after X seconds 2026-01-10 18:07:20 +01:00
bgoulard
3c95af8ede eslint on api for paused games 2026-01-10 17:42:31 +01:00
bgoulard
ce02e37b81 clean-up css 2026-01-10 17:42:31 +01:00
bgoulard
6d2ebc56ea [wip] 2026-01-10 17:42:31 +01:00
bgoulard
9f9eea9525 [wip] wip routes for paused games 2026-01-10 17:42:31 +01:00
Maieul BOYER
2195207297 feat(tournament): allow the creation of a tournament
A tournament can be created (by the "owner")
Any other players can join said tournament.
The information is currently not displayed in the frontend, but does
exists and is passed to the frontend using a socket.io event
2026-01-10 16:09:04 +01:00