ninja-merge: Trying to fill input form in managetournament
This commit is contained in:
		
							parent
							
								
									6b6f99bfca
								
							
						
					
					
						commit
						dee81b51b4
					
				| @ -1,27 +1,91 @@ | ||||
| import * as React from "react"; | ||||
| import { BrowserRouter as Router, Link, Route, Routes } from "react-router-dom"; | ||||
| import { AlertContainer, alert } from "react-custom-alert"; | ||||
| import Appbar from './components/appbar'; | ||||
| import SaveButton from "./components/savebutton"; | ||||
| import { useParams } from 'react-router-dom' | ||||
| import Appbar from "./components/appbar"; | ||||
| import { useParams } from "react-router-dom"; | ||||
| import { Button, TextField, MenuItem, InputLabel, Select, Container, Slider} from "@mui/material"; | ||||
| 
 | ||||
| import { Button, TextField, MenuItem, InputLabel, Select, Container, Slider } from '@mui/material' | ||||
| function submitChanges(event) { | ||||
|   event.preventDefault(); | ||||
|   //TODO use refs to get values
 | ||||
|   let tournamentName = document.getElementById("editName").value; | ||||
|   let tournamentDescription = document.getElementById("editDesc").value; | ||||
|   let tournamentImageFile = document.getElementById("editImage").files[0]; | ||||
|   let tournamentStartDate = document.getElementById("editStartDate").value; | ||||
|   let tournamentEndDate = document.getElementById("editEndDate").value; | ||||
| 
 | ||||
|   if (!tournamentName || tournamentName == "") { | ||||
|     alert("Tournament name cannot be empty"); | ||||
|     return; | ||||
|   } | ||||
|   if (!tournamentDescription || tournamentDescription == "") { | ||||
|     alert("Tournament description cannot be empty"); | ||||
|     return; | ||||
|   } | ||||
|   if (!tournamentStartDate || tournamentStartDate == "") { | ||||
|     alert("Tournament start date cannot be empty"); | ||||
|     return; | ||||
|   } | ||||
|   if (!tournamentEndDate || tournamentEndDate == "") { | ||||
|     alert("Tournament end date cannot be empty"); | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   if (tournamentStartDate > tournamentEndDate) { | ||||
|     alert("Tournament start date cannot be after end date"); | ||||
|     return; | ||||
|   } | ||||
|   let today = new Date(); | ||||
|   if (tournamentStartDate < today || tournamentEndDate < today) { | ||||
|     alert("Tournament start and end date must be after today"); | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   let formData = new FormData(); | ||||
|   formData.append("name", tournamentName); | ||||
|   formData.append("description", tournamentDescription); | ||||
|   // formData.append("image", tournamentImageFile);
 | ||||
|   formData.append("startDate", tournamentStartDate); | ||||
|   formData.append("endDate", tournamentEndDate); | ||||
|   // formData.append("teamLimit", tournamentMaxTeams);
 | ||||
|   let body = new URLSearchParams(formData); | ||||
| 
 | ||||
|   fetch(process.env.REACT_APP_BACKEND_URL + "/api/tournament/create", { | ||||
|     method: "POST", | ||||
|     body: body, | ||||
|   }) | ||||
|     .then((response) => response.json()) | ||||
|     .then((data) => { | ||||
|       if (data.status == "OK") { | ||||
|         alert("Tournament managed successfully"); | ||||
|         window.location.href = "/"; | ||||
|       } else { | ||||
|         showError(data.data); | ||||
|       } | ||||
|     }) | ||||
|     .catch((error) => showError(error)); | ||||
| } | ||||
| 
 | ||||
| function ManageTournament(props) { | ||||
|   let [tournamentInfo, setTournamentInfo] = React.useState([]); | ||||
| 
 | ||||
|   React.useEffect(() => { | ||||
|     console.log(props.tournamentId); | ||||
|     fetch(process.env.REACT_APP_BACKEND_URL + `/api/tournament/${props.tournamentId}`) | ||||
|       .then(res => res.json()) | ||||
|       .then(data => { | ||||
|          | ||||
|     fetch( | ||||
|       process.env.REACT_APP_BACKEND_URL + | ||||
|         `/api/tournament/${props.tournamentId}` | ||||
|     ) | ||||
|       .then((res) => res.json()) | ||||
|       .then((data) => { | ||||
|         if (data.status !== "OK") { | ||||
|           showError(data.data); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         setTournamentInfo(data.data); | ||||
|         document.getElementById("editName").value = data.data.name; | ||||
|         document.getElementById("editDesc").value = data.data.description; | ||||
|         document.getElementById("editStartDate").value = data.data.startTime; | ||||
|         document.getElementById("editEndDate").value = data.data.endTime; | ||||
|       }) | ||||
|       .catch((err) => console.log(err.message)); | ||||
|   }, []); | ||||
| @ -30,28 +94,36 @@ function ManageTournament(props) { | ||||
|     <> | ||||
|       <form> | ||||
|         <Container> | ||||
|         <InputLabel htmlFor="editName">Edit name: </InputLabel> | ||||
|         <TextField type="text" id="editName" /> | ||||
|         <InputLabel htmlFor="editDesc">Edit description: </InputLabel> | ||||
|         <TextField type="text" id="editDesc" /> | ||||
|         <InputLabel htmlFor="editImage"> | ||||
|           Edit image:  | ||||
|           <br /> | ||||
|           <Button variant="outlined" component="span" color="primary"> | ||||
|             Upload | ||||
|           <InputLabel htmlFor="editName">Edit name: </InputLabel> | ||||
|           <TextField type="text" id="editName" /> | ||||
|           <InputLabel htmlFor="editDesc">Edit description: </InputLabel> | ||||
|           <TextField type="text" id="editDesc" /> | ||||
|           <InputLabel htmlFor="editImage"> | ||||
|             Edit image: | ||||
|             <br /> | ||||
|             <Button variant="outlined" component="span" color="primary"> | ||||
|               Upload | ||||
|             </Button> | ||||
|           </InputLabel> | ||||
|           <input | ||||
|             type="file" | ||||
|             id="editImage" | ||||
|             accept="image/png, image/jpeg, image/jpg, image/gif, image/svg" | ||||
|             style={{ display: "none" }} | ||||
|           /> | ||||
|           <InputLabel htmlFor="editStartDate">Edit Start Time:</InputLabel> | ||||
|           <TextField type="datetime-local" id="editStartDate" /> | ||||
| 
 | ||||
|           <InputLabel htmlFor="editEndDate">Edit End Time:</InputLabel> | ||||
|           <TextField type="datetime-local" id="editEndDate" /> | ||||
|           <Button | ||||
|             type="submit" | ||||
|             variant="contained" | ||||
|             onClick={submitChanges} | ||||
|             color="primary" | ||||
|           > | ||||
|             Save Tournament Details | ||||
|           </Button> | ||||
|         </InputLabel> | ||||
|         <input | ||||
|           type="file" | ||||
|           id="editImage" | ||||
|           accept="image/png, image/jpeg, image/jpg, image/gif, image/svg" | ||||
|           style={{ display: 'none' }} | ||||
|         /> | ||||
|         <InputLabel htmlFor="editStartDate">Edit Start Time:</InputLabel> | ||||
|         <TextField type="datetime-local" id="editStartDate" /> | ||||
|          | ||||
|         <InputLabel htmlFor="editEndDate">Edit End Time:</InputLabel> | ||||
|         <TextField type="datetime-local" id="editEndDate" /> | ||||
|         </Container> | ||||
|       </form> | ||||
|     </> | ||||
| @ -61,7 +133,9 @@ function ManageTournament(props) { | ||||
| function AnnounceButton(props) { | ||||
|   return ( | ||||
|     <Link to="/tournament/manage/announcement"> | ||||
|       <Button id="sendAnnon" variant="outlined" color="primary">Send Tournament Announcement</Button> | ||||
|       <Button id="sendAnnon" variant="outlined" color="primary"> | ||||
|         Send Tournament Announcement | ||||
|       </Button> | ||||
|     </Link> | ||||
|   ); | ||||
| } | ||||
| @ -82,21 +156,25 @@ function InviteButton(props) { | ||||
|   const alertSuccess = () => | ||||
|     alert({ message: "Copied to clipboard.", type: "success" }); | ||||
|   return ( | ||||
|     <Button id="createInvLink" onClick={event} variant="outlined" color="primary"> | ||||
|     <Button | ||||
|       id="createInvLink" | ||||
|       onClick={event} | ||||
|       variant="outlined" | ||||
|       color="primary" | ||||
|     > | ||||
|       Copy Invite Link | ||||
|     </Button> | ||||
|   ); | ||||
| } | ||||
| 
 | ||||
| export default function TournamentManager(props) { | ||||
|   const { tournamentId } = useParams() | ||||
|   const { tournamentId } = useParams(); | ||||
|   return ( | ||||
|     <> | ||||
|       <Appbar /> | ||||
|       <ManageTournament tournamentId={tournamentId} /> | ||||
|       <AnnounceButton /> | ||||
|       <InviteButton /> | ||||
|       <SaveButton /> | ||||
|       <AlertContainer floatingTime={5000} /> | ||||
|     </> | ||||
|   ); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user