From 682a43d170220daae177fed8d89d5d8a7e9e2d92 Mon Sep 17 00:00:00 2001 From: Felix Albrigtsen Date: Sun, 27 Mar 2022 22:20:39 +0200 Subject: [PATCH] Unified spelling and capitalization, started team editor --- src/client/public/favicon.ico | Bin 3870 -> 41662 bytes src/client/public/react.ico | Bin 0 -> 3870 bytes src/client/src/{frontpage.js => FrontPage.js} | 10 +- ...ouncement.js => TournamentAnnouncement.js} | 0 ...rnamentmatches.js => TournamentMatches.js} | 0 ...amentoverview.js => TournamentOverview.js} | 0 src/client/src/TournamentTeams.js | 132 ++++++++++++++++++ src/client/src/createtournament.js | 13 +- src/client/src/index.js | 2 +- src/client/src/managetournament.js | 10 +- src/client/src/teameditor.js | 100 ------------- 11 files changed, 144 insertions(+), 123 deletions(-) create mode 100644 src/client/public/react.ico rename src/client/src/{frontpage.js => FrontPage.js} (95%) rename src/client/src/{tournamentannouncement.js => TournamentAnnouncement.js} (100%) rename src/client/src/{tournamentmatches.js => TournamentMatches.js} (100%) rename src/client/src/{tournamentoverview.js => TournamentOverview.js} (100%) create mode 100644 src/client/src/TournamentTeams.js delete mode 100644 src/client/src/teameditor.js diff --git a/src/client/public/favicon.ico b/src/client/public/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..b8536244b246f075af9fc251b75ba7649ba60a58 100644 GIT binary patch literal 41662 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 literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= z!sii`1giyH7EKL_+Wi0ab<)&E_0KD!3Rp2^HNB*K2@PHCs4PWSA32*-^7d{9nH2_E zmC{C*N*)(vEF1_aMamw2A{ZH5aIDqiabnFdJ|y0%aS|64E$`s2ccV~3lR!u<){eS` z#^Mx6o(iP1Ix%4dv`t@!&Za-K@mTm#vadc{0aWDV*_%EiGK7qMC_(`exc>-$Gb9~W!w_^{*pYRm~G zBN{nA;cm^w$VWg1O^^<6vY`1XCD|s_zv*g*5&V#wv&s#h$xlUilPe4U@I&UXZbL z0)%9Uj&@yd03n;!7do+bfixH^FeZ-Ema}s;DQX2gY+7g0s(9;`8GyvPY1*vxiF&|w z>!vA~GA<~JUqH}d;DfBSi^IT*#lrzXl$fNpq0_T1tA+`A$1?(gLb?e#0>UELvljtQ zK+*74m0jn&)5yk8mLBv;=@}c{t0ztT<v;Avck$S6D`Z)^c0(jiwKhQsn|LDRY&w(Fmi91I7H6S;b0XM{e zXp0~(T@k_r-!jkLwd1_Vre^v$G4|kh4}=Gi?$AaJ)3I+^m|Zyj#*?Kp@w(lQdJZf4 z#|IJW5z+S^e9@(6hW6N~{pj8|NO*>1)E=%?nNUAkmv~OY&ZV;m-%?pQ_11)hAr0oAwILrlsGawpxx4D43J&K=n+p3WLnlDsQ$b(9+4 z?mO^hmV^F8MV{4Lx>(Q=aHhQ1){0d*(e&s%G=i5rq3;t{JC zmgbn5Nkl)t@fPH$v;af26lyhH!k+#}_&aBK4baYPbZy$5aFx4}ka&qxl z$=Rh$W;U)>-=S-0=?7FH9dUAd2(q#4TCAHky!$^~;Dz^j|8_wuKc*YzfdAht@Q&ror?91Dm!N03=4=O!a)I*0q~p0g$Fm$pmr$ zb;wD;STDIi$@M%y1>p&_>%?UP($15gou_ue1u0!4(%81;qcIW8NyxFEvXpiJ|H4wz z*mFT(qVx1FKufG11hByuX%lPk4t#WZ{>8ka2efjY`~;AL6vWyQKpJun2nRiZYDij$ zP>4jQXPaP$UC$yIVgGa)jDV;F0l^n(V=HMRB5)20V7&r$jmk{UUIe zVjKroK}JAbD>B`2cwNQ&GDLx8{pg`7hbA~grk|W6LgiZ`8y`{Iq0i>t!3p2}MS6S+ zO_ruKyAElt)rdS>CtF7j{&6rP-#c=7evGMt7B6`7HG|-(WL`bDUAjyn+k$mx$CH;q2Dz4x;cPP$hW=`pFfLO)!jaCL@V2+F)So3}vg|%O*^T1j>C2lx zsURO-zIJC$^$g2byVbRIo^w>UxK}74^TqUiRR#7s_X$e)$6iYG1(PcW7un-va-S&u zHk9-6Zn&>T==A)lM^D~bk{&rFzCi35>UR!ZjQkdSiNX*-;l4z9j*7|q`TBl~Au`5& z+c)*8?#-tgUR$Zd%Q3bs96w6k7q@#tUn`5rj+r@_sAVVLqco|6O{ILX&U-&-cbVa3 zY?ngHR@%l{;`ri%H*0EhBWrGjv!LE4db?HEWb5mu*t@{kv|XwK8?npOshmzf=vZA@ zVSN9sL~!sn?r(AK)Q7Jk2(|M67Uy3I{eRy z_l&Y@A>;vjkWN5I2xvFFTLX0i+`{qz7C_@bo`ZUzDugfq4+>a3?1v%)O+YTd6@Ul7 zAfLfm=nhZ`)P~&v90$&UcF+yXm9sq!qCx3^9gzIcO|Y(js^Fj)Rvq>nQAHI92ap=P z10A4@prk+AGWCb`2)dQYFuR$|H6iDE8p}9a?#nV2}LBCoCf(Xi2@szia7#gY>b|l!-U`c}@ zLdhvQjc!BdLJvYvzzzngnw51yRYCqh4}$oRCy-z|v3Hc*d|?^Wj=l~18*E~*cR_kU z{XsxM1i{V*4GujHQ3DBpl2w4FgFR48Nma@HPgnyKoIEY-MqmMeY=I<%oG~l!f<+FN z1ZY^;10j4M4#HYXP zw5eJpA_y(>uLQ~OucgxDLuf}fVs272FaMxhn4xnDGIyLXnw>Xsd^J8XhcWIwIoQ9} z%FoSJTAGW(SRGwJwb=@pY7r$uQRK3Zd~XbxU)ts!4XsJrCycrWSI?e!IqwqIR8+Jh zlRjZ`UO1I!BtJR_2~7AbkbSm%XQqxEPkz6BTGWx8e}nQ=w7bZ|eVP4?*Tb!$(R)iC z9)&%bS*u(lXqzitAN)Oo=&Ytn>%Hzjc<5liuPi>zC_nw;Z0AE3Y$Jao_Q90R-gl~5 z_xAb2J%eArrC1CN4G$}-zVvCqF1;H;abAu6G*+PDHSYFx@Tdbfox*uEd3}BUyYY-l zTfEsOqsi#f9^FoLO;ChK<554qkri&Av~SIM*{fEYRE?vH7pTAOmu2pz3X?Wn*!ROX ztd54huAk&mFBemMooL33RV-*1f0Q3_(7hl$<#*|WF9P!;r;4_+X~k~uKEqdzZ$5Al zV63XN@)j$FN#cCD;ek1R#l zv%pGrhB~KWgoCj%GT?%{@@o(AJGt*PG#l3i>lhmb_twKH^EYvacVY-6bsCl5*^~L0 zonm@lk2UvvTKr2RS%}T>^~EYqdL1q4nD%0n&Xqr^cK^`J5W;lRRB^R-O8b&HENO||mo0xaD+S=I8RTlIfVgqN@SXDr2&-)we--K7w= zJVU8?Z+7k9dy;s;^gDkQa`0nz6N{T?(A&Iz)2!DEecLyRa&FI!id#5Z7B*O2=PsR0 zEvc|8{NS^)!d)MDX(97Xw}m&kEO@5jqRaDZ!+%`wYOI<23q|&js`&o4xvjP7D_xv@ z5hEwpsp{HezI9!~6O{~)lLR@oF7?J7i>1|5a~UuoN=q&6N}EJPV_GD`&M*v8Y`^2j zKII*d_@Fi$+i*YEW+Hbzn{iQk~yP z>7N{S4)r*!NwQ`(qcN#8SRQsNK6>{)X12nbF`*7#ecO7I)Q$uZsV+xS4E7aUn+U(K baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/src/client/public/react.ico b/src/client/public/react.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/src/client/src/frontpage.js b/src/client/src/FrontPage.js similarity index 95% rename from src/client/src/frontpage.js rename to src/client/src/FrontPage.js index 302c5c6..1111238 100644 --- a/src/client/src/frontpage.js +++ b/src/client/src/FrontPage.js @@ -1,11 +1,11 @@ import * as React from "react"; import { BrowserRouter as Router, Link, Route, Routes } from "react-router-dom"; import CreateTournament from "./createtournament.js"; -import TournamentOverview from "./tournamentoverview.js"; +import TournamentOverview from "./TournamentOverview.js"; import TournamentManager from "./managetournament.js"; -import TournamentAnnouncement from "./tournamentannouncement"; -import TournamentMatches from "./tournamentmatches"; -import TeamEditor from "./teameditor"; +import TournamentAnnouncement from "./TournamentAnnouncement"; +import TournamentMatches from "./TournamentMatches"; +import TournamentTeams from "./TournamentTeams"; import Appbar from './components/appbar'; import { Button, Container, Typography, Box } from "@mui/material"; import { Card, CardContent, CardMedia, Paper } from "@mui/material"; @@ -145,7 +145,7 @@ export default function App() { } /> } /> } /> - } /> + } /> } /> +
+

Teams:

+ {/* TODO: scroll denne menyen, eventuelt søkefelt */} + + + + Team Name + Team Members + Actions + + + + {props.teams.map((team) => ( + + + + {team.name} + + {team.members} + + + + + + + ))} + +
+
+ + ); +} + +function PlayerList(props) { + // Something like https://react-list-editable.netlify.app/ + return

PlayerList coming...

+} + +function TeamEditor(props) { + const [team, setTeam] = React.useState({}); + const [players, setPlayers] = React.useState([]); + React.useEffect(() => { + if (props.selectedTeamId === -1) { + setTeam({}); + return; + } + fetch(process.env.REACT_APP_BACKEND_URL + `/api/team/${props.selectedTeamId}`) + .then(res => res.json()) + .then(data => { + if (data.status !== "OK") { + showError(data); + return; + } + setTeam(data.data); + }) + .catch(error => showError(error)); + }, [props.selectedTeamId]); + + function postEdit() { + let formData = new FormData(); + formData.append("name", document.getElementById("teamNameInput").value); + } + + if (props.selectedTeamId == -1 || !team) { + return ( + +
+ ... Create a new team or select one from the list above ... +
+
+ ) + } + + function nameInputChanged(event) { + setTeam({...team, name: event.target.value}); + } + + return ( + +
+

Edit Team:

+
+ + + +
+
+ ) +} + +export default function TournamentTeams(props) { + const [teams, setTeams] = React.useState([]); + const [selectedTeamId, setselectedTeamId] = React.useState(-1); + const { tournamentId } = useParams(); + + React.useEffect(() => { + fetch(process.env.REACT_APP_BACKEND_URL + `/api/tournament/${tournamentId}/getTeams`) + .then((res) => res.json()) + .then((data) => { + if (data.status !== "OK") { + showError(data.data); + } + setTeams(data.data); + //setselectedTeamId(teams[0].id); + }) + .catch((err) => showError(err)); + }, []); + + return ( + <> + +
+ + +
+ + ); +} \ No newline at end of file diff --git a/src/client/src/createtournament.js b/src/client/src/createtournament.js index 6d6351a..1d8b71e 100644 --- a/src/client/src/createtournament.js +++ b/src/client/src/createtournament.js @@ -130,18 +130,7 @@ function TournamentForm(props) { - + {/* go brrrr */} diff --git a/src/client/src/index.js b/src/client/src/index.js index 50401f6..680e98a 100644 --- a/src/client/src/index.js +++ b/src/client/src/index.js @@ -1,7 +1,7 @@ import React from "react"; import ReactDOM from "react-dom"; import "./index.css"; -import App from "./frontpage.js"; +import App from "./FrontPage.js"; import theme from './components/theme'; import { ThemeProvider } from "@emotion/react"; diff --git a/src/client/src/managetournament.js b/src/client/src/managetournament.js index a0cd988..285a408 100644 --- a/src/client/src/managetournament.js +++ b/src/client/src/managetournament.js @@ -15,19 +15,19 @@ let submitChanges = curryTournamentId => event => { let tournamentStartDate = document.getElementById("editStartDate").value; let tournamentEndDate = document.getElementById("editEndDate").value; - if (!tournamentName || tournamentName == "") { + if (!tournamentName || tournamentName === "") { alert("Tournament name cannot be empty"); return; } - if (!tournamentDescription || tournamentDescription == "") { + if (!tournamentDescription || tournamentDescription === "") { alert("Tournament description cannot be empty"); return; } - if (!tournamentStartDate || tournamentStartDate == "") { + if (!tournamentStartDate || tournamentStartDate === "") { alert("Tournament start date cannot be empty"); return; } - if (!tournamentEndDate || tournamentEndDate == "") { + if (!tournamentEndDate || tournamentEndDate === "") { alert("Tournament end date cannot be empty"); return; } @@ -88,7 +88,7 @@ function ManageTournament(props) { document.getElementById("editStartDate").value = data.data.startTime.slice(0, 16); document.getElementById("editEndDate").value = data.data.endTime.slice(0, 16); }) - .catch((err) => console.log(err.message)); + .catch((err) => showError(err)); }, []); return ( diff --git a/src/client/src/teameditor.js b/src/client/src/teameditor.js deleted file mode 100644 index d8959b6..0000000 --- a/src/client/src/teameditor.js +++ /dev/null @@ -1,100 +0,0 @@ -import * as React from "react"; -import { BrowserRouter as Router, Link, Route, Routes, useParams } from "react-router-dom"; -import Appbar from "./components/appbar"; -import { Button, TextField, MenuItem, InputLabel, Select, Container, Slider} from "@mui/material"; - -function TeamChanger() { - return ( - <> -
- Team Name: - - Team Members: - -
- - - - ); -} -var teams = { - "team 1": ["tom", "eric", "gustav"], - "team 2": ["emma", "mari", "ida"], - "team 3": ["ola", "ole", "ost"], - "team 4": ["christine", "kristine", "kristhine"], -}; -function TeamList(props) { - const [teamInput, setteamInput] = React.useState(""); - const [membersInput, setmembersInput] = React.useState(""); - React.useEffect(() => { - document.getElementById("teamInput").value = teamInput; - document.getElementById("membersInput").value = membersInput; - }); - return ( - <> -
- Registered teams: -
    - {Object.entries(teams).map(([team, players]) => ( -
  • - -
  • - ))} -
-
, -
- Remove team:{" "} - - -
- - {/* Link to {props.tournament.id} when teams can be fetched */} - - - - ); -} - -// function TeamRemover() { -// return ( -// 'lol' -// ); -// } - -// function Save_Button() { -// return ( -// 'lol' -// ); -// } - -export default function TeamEditor() { - return ( - <> - - - - {/* - */} - - ); -}