Feat: show and hide form
This commit is contained in:
		| @@ -1,24 +1,24 @@ | |||||||
| {{define "createform"}} | {{define "createform"}} | ||||||
|  <div class="create-room-div"> | {{if .}} | ||||||
|  |  <div id="create-room" class="create-room-div"> | ||||||
|     Create a room <br/> |     Create a room <br/> | ||||||
|     or<br/> |     or<br/> | ||||||
|             @CustomBtn(templ.Attributes{"hx-get": "/room/hideform", "hx-target": ".create-room-div"}, "Hide Form") |     <button button class="justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" hx-get="/room/hideform" hx-target=".create-room-div" >Hide Form</button> | ||||||
|     <form hx-post="/room/create" hx-target="#ancestor"> |     <form hx-post="/room/create" hx-target="#ancestor"> | ||||||
| 	<label For="room_name">Room Name</label><br/> | 	<label For="room_name">Room Name</label><br/> | ||||||
| 	<input type="text" id="room_name" name="room_name" class="text-center text-black" value={utils.MakeDefaultRoomName(utils.GetUsername(c))}/><br/> | 	<input type="text" id="room_name" name="room_name" class="text-center text-black" value={utils.MakeDefaultRoomName(utils.GetUsername(c))}/><br/> | ||||||
| 	<label For="game_time">Game Time:</label><br/> | 	<label For="game_time">Game Time:</label><br/> | ||||||
| 	<input type="number" id="game_time" name="game_time" class="text-center text-black" value="300"/><br/> | 	<input type="number" id="game_time" name="game_time" class="text-center text-black" value="300"/><br/> | ||||||
|                 <label For="minority_number">Minority Number:</label><br/> |  | ||||||
|                 <input type="number" id="minority_number" name="minority_number" class="text-center text-black" value="1"/><br/> |  | ||||||
| 	<label For="language">Language:</label><br/> | 	<label For="language">Language:</label><br/> | ||||||
|                 /* <input type="text" id="language" name="language" class="text-center text-black" value="en"/><br/> */ | 	<input type="text" id="language" name="language" class="text-center text-black" value="en"/><br/> | ||||||
|                 @base.LangOption()<br/> |  | ||||||
| 	<label For="password">Password:</label><br/> | 	<label For="password">Password:</label><br/> | ||||||
| 	<input type="text" id="password" name="room_pass" class="text-center text-black" value="" placeholder="Leave empty for open room"/><br/> | 	<input type="text" id="password" name="room_pass" class="text-center text-black" value="" placeholder="Leave empty for open room"/><br/> | ||||||
|                 @CustomBtn(templ.Attributes{"type": "submit"}, "Create Room") |     <button button class="justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" type="submit" >Create Room</button> | ||||||
|     </form> |     </form> | ||||||
| </div> | </div> | ||||||
|         <div class="create-room-div"> | {{else}} | ||||||
|             Hello, you should login. | <div id="create-room" class="create-room-div"> | ||||||
|  |     <button button id="create-form-btn" type="submit" class="justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" hx-get="/room/createform" hx-swap="outerHTML">SHOW ROOM CREATE FORM</button> | ||||||
| </div> | </div> | ||||||
| {{end}} | {{end}} | ||||||
|  | {{end}} | ||||||
|   | |||||||
| @@ -43,7 +43,9 @@ | |||||||
| <body> | <body> | ||||||
| <div id=ancestor> | <div id=ancestor> | ||||||
| 	{{template "login"}} | 	{{template "login"}} | ||||||
|  | 	<div id="create-room" class="create-room-div"> | ||||||
| 	    <button button id="create-form-btn" type="submit" class="justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" hx-get="/room/createform" hx-swap="outerHTML">SHOW ROOM CREATE FORM</button> | 	    <button button id="create-form-btn" type="submit" class="justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" hx-get="/room/createform" hx-swap="outerHTML">SHOW ROOM CREATE FORM</button> | ||||||
|  | 	</div> | ||||||
| 	<h1>Word Color Cards</h1> | 	<h1>Word Color Cards</h1> | ||||||
| 	<div style="display: flex; gap: 1rem; flex-wrap: wrap; padding: 1rem;"> | 	<div style="display: flex; gap: 1rem; flex-wrap: wrap; padding: 1rem;"> | ||||||
| 		{{range $word, $color := .}} | 		{{range $word, $color := .}} | ||||||
|   | |||||||
| @@ -6,10 +6,21 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| func HandleShowCreateForm(w http.ResponseWriter, r *http.Request) { | func HandleShowCreateForm(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 	show := true | ||||||
| 	tmpl, err := template.ParseGlob("components/*.html") | 	tmpl, err := template.ParseGlob("components/*.html") | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		abortWithError(w, err.Error()) | 		abortWithError(w, err.Error()) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	tmpl.ExecuteTemplate(w, "createform", nil) | 	tmpl.ExecuteTemplate(w, "createform", show) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func HandleHideCreateForm(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 	show := false | ||||||
|  | 	tmpl, err := template.ParseGlob("components/*.html") | ||||||
|  | 	if err != nil { | ||||||
|  | 		abortWithError(w, err.Error()) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	tmpl.ExecuteTemplate(w, "createform", show) | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.go
									
									
									
									
									
								
							| @@ -23,7 +23,9 @@ func ListenToRequests(port string) error { | |||||||
| 	mux.HandleFunc("GET /ping", handlers.HandlePing) | 	mux.HandleFunc("GET /ping", handlers.HandlePing) | ||||||
| 	mux.HandleFunc("GET /", handlers.HandleHome) | 	mux.HandleFunc("GET /", handlers.HandleHome) | ||||||
| 	mux.HandleFunc("POST /login", handlers.HandleFrontLogin) | 	mux.HandleFunc("POST /login", handlers.HandleFrontLogin) | ||||||
|  | 	//elements | ||||||
| 	mux.HandleFunc("GET /room/createform", handlers.HandleShowCreateForm) | 	mux.HandleFunc("GET /room/createform", handlers.HandleShowCreateForm) | ||||||
|  | 	mux.HandleFunc("GET /room/hideform", handlers.HandleHideCreateForm) | ||||||
| 	slog.Info("Listening", "addr", port) | 	slog.Info("Listening", "addr", port) | ||||||
| 	return server.ListenAndServe() | 	return server.ListenAndServe() | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder