Implement guestbook settings #20
| @ -5,85 +5,99 @@ import ( | ||||
| 	"git.32bit.cafe/32bitcafe/guestbook/internal/models" | ||||
| ) | ||||
| 
 | ||||
| templ UserLogin (title string, data CommonData, form forms.UserLoginForm) { | ||||
|     @base(title, data) { | ||||
|         <h1>Login</h1> | ||||
|         <form action="/users/login" method="POST" novalidate> | ||||
|             <input type="hidden" name="csrf_token" value={ data.CSRFToken }> | ||||
|             for _, error := range form.NonFieldErrors { | ||||
|                 <div class="error">{ error }</div> | ||||
|             } | ||||
|             <div> | ||||
|                 <label>Email: </label> | ||||
|                 {{ error, exists := form.FieldErrors["email"] }} | ||||
|                 if exists { | ||||
|                     <label class="error">{ error }</label> | ||||
|                 } | ||||
|                 <input type="email" name="email" value={form.Email}> | ||||
|             </div> | ||||
|             <div> | ||||
|                 <label>Password: </label> | ||||
|                 {{ error, exists = form.FieldErrors["password"] }} | ||||
|                 if exists { | ||||
|                     <label class="error">{ error }</label> | ||||
|                 } | ||||
|                 <input type="password" name="password"> | ||||
|             </div> | ||||
|             <div> | ||||
|                 <input type="submit" value="login"> | ||||
|             </div> | ||||
|         </form> | ||||
|     } | ||||
| templ UserLogin(title string, data CommonData, form forms.UserLoginForm) { | ||||
| 	@base(title, data) { | ||||
| 		<h1>Login</h1> | ||||
| 		<form action="/users/login" method="POST" novalidate> | ||||
| 			<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||
| 			for _, error := range form.NonFieldErrors { | ||||
| 				<div class="error">{ error }</div> | ||||
| 			} | ||||
| 			<div> | ||||
| 				<label>Email: </label> | ||||
| 				{{ error, exists := form.FieldErrors["email"] }} | ||||
| 				if exists { | ||||
| 					<label class="error">{ error }</label> | ||||
| 				} | ||||
| 				<input type="email" name="email" value={ form.Email }/> | ||||
| 			</div> | ||||
| 			<div> | ||||
| 				<label>Password: </label> | ||||
| 				{{ error, exists = form.FieldErrors["password"] }} | ||||
| 				if exists { | ||||
| 					<label class="error">{ error }</label> | ||||
| 				} | ||||
| 				<input type="password" name="password"/> | ||||
| 			</div> | ||||
| 			<div> | ||||
| 				<input type="submit" value="login"/> | ||||
| 			</div> | ||||
| 		</form> | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| templ UserRegistration (title string, data CommonData, form forms.UserRegistrationForm) { | ||||
|     @base(title, data) { | ||||
|         <h1>User Registration</h1> | ||||
|         <form action="/users/register" method="post"> | ||||
|             <input type="hidden" name="csrf_token" value={ data.CSRFToken }> | ||||
|             <div> | ||||
|                 {{ error, exists := form.FieldErrors["name"] }} | ||||
|                 <label for="username">Username: </label> | ||||
|                 if exists { | ||||
|                     <label class="error">{ error }</label> | ||||
|                 } | ||||
|                 <input type="text" name="username" id="username" value={form.Name} required /> | ||||
|             </div> | ||||
|             <div> | ||||
|                 {{ error, exists = form.FieldErrors["email"] }} | ||||
|                 <label for="email">Email: </label> | ||||
|                 if exists { | ||||
|                     <label class="error">{ error }</label> | ||||
|                 } | ||||
|                 <input type="text" name="email" id="email" value={form.Email} required /> | ||||
|             </div> | ||||
|             <div> | ||||
|                 {{ error, exists = form.FieldErrors["password"] }} | ||||
|                 <label for="password">Password: </label> | ||||
|                 if exists { | ||||
|                     <label class="error">{ error }</label> | ||||
|                 } | ||||
|                 <input type="password" name="password" id="password" /> | ||||
|             </div> | ||||
|             <div> | ||||
|                 <input type="submit" value="Register" /> | ||||
|             </div> | ||||
|         </form> | ||||
|     } | ||||
| templ UserRegistration(title string, data CommonData, form forms.UserRegistrationForm) { | ||||
| 	@base(title, data) { | ||||
| 		<h1>User Registration</h1> | ||||
| 		<form action="/users/register" method="post"> | ||||
| 			<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||
| 			<div> | ||||
| 				{{ error, exists := form.FieldErrors["name"] }} | ||||
| 				<label for="username">Username: </label> | ||||
| 				if exists { | ||||
| 					<label class="error">{ error }</label> | ||||
| 				} | ||||
| 				<input type="text" name="username" id="username" value={ form.Name } required/> | ||||
| 			</div> | ||||
| 			<div> | ||||
| 				{{ error, exists = form.FieldErrors["email"] }} | ||||
| 				<label for="email">Email: </label> | ||||
| 				if exists { | ||||
| 					<label class="error">{ error }</label> | ||||
| 				} | ||||
| 				<input type="text" name="email" id="email" value={ form.Email } required/> | ||||
| 			</div> | ||||
| 			<div> | ||||
| 				{{ error, exists = form.FieldErrors["password"] }} | ||||
| 				<label for="password">Password: </label> | ||||
| 				if exists { | ||||
| 					<label class="error">{ error }</label> | ||||
| 				} | ||||
| 				<input type="password" name="password" id="password"/> | ||||
| 			</div> | ||||
| 			<div> | ||||
| 				<input type="submit" value="Register"/> | ||||
| 			</div> | ||||
| 		</form> | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| templ UserProfile (title string, data CommonData, user models.User) { | ||||
|     @base(title, data) { | ||||
|         <h1>{ user.Username }</h1> | ||||
|         <p>{ user.Email }</p> | ||||
|     } | ||||
| templ UserProfile(title string, data CommonData, user models.User) { | ||||
| 	@base(title, data) { | ||||
| 		<h1>{ user.Username }</h1> | ||||
| 		<p>{ user.Email }</p> | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| templ UserSettings (title string, data CommonData, user models.User) { | ||||
|     @base(title, data) { | ||||
|         <form hx-put="/users/settings"> | ||||
|             <input type="text"> | ||||
|             <button type="submit">Submit</button> | ||||
|         </form> | ||||
|     } | ||||
| templ UserSettingsView(data CommonData, timezones []string) { | ||||
| 	{{ user := data.CurrentUser }} | ||||
| 	@base("User Settings", data) { | ||||
| 		<div> | ||||
| 			<h1>User Settings</h1> | ||||
| 			<form hx-put="/users/settings"> | ||||
| 				<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||
| 				<label>Local Timezone</label> | ||||
| 				<select name="timezones" id="timezone-select"> | ||||
| 					for _, tz := range timezones { | ||||
| 						if tz == user.Settings.LocalTimezone.String() { | ||||
| 							<option value={ tz } selected="true">{ tz }</option> | ||||
| 						} else { | ||||
| 							<option value={ tz }>{ tz }</option> | ||||
| 						} | ||||
| 					} | ||||
| 				</select> | ||||
| 				<input type="submit" value="Submit"/> | ||||
| 			</form> | ||||
| 		</div> | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -1,24 +0,0 @@ | ||||
| package views | ||||
| 
 | ||||
| templ UserSettingsView(data CommonData, timezones []string) { | ||||
| 	{{ user := data.CurrentUser }} | ||||
| 	@base("User Settings", data) { | ||||
| 		<div> | ||||
| 			<h1>User Settings</h1> | ||||
| 			<form hx-put="/users/settings"> | ||||
| 				<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||
| 				<h3>Timezone</h3> | ||||
| 				<select name="timezones" id="timezone-select"> | ||||
| 					for _, tz := range timezones { | ||||
| 						if tz == user.Settings.LocalTimezone.String() { | ||||
| 							<option value={ tz } selected="true">{ tz }</option> | ||||
| 						} else { | ||||
| 							<option value={ tz }>{ tz }</option> | ||||
| 						} | ||||
| 					} | ||||
| 				</select> | ||||
| 				<input type="submit" value="Submit"/> | ||||
| 			</form> | ||||
| 		</div> | ||||
| 	} | ||||
| } | ||||
| @ -1,141 +0,0 @@ | ||||
| // Code generated by templ - DO NOT EDIT. | ||||
| 
 | ||||
| // templ: version: v0.3.833 | ||||
| package views | ||||
| 
 | ||||
| //lint:file-ignore SA4006 This context is only used if a nested component is present. | ||||
| 
 | ||||
| import "github.com/a-h/templ" | ||||
| import templruntime "github.com/a-h/templ/runtime" | ||||
| 
 | ||||
| func UserSettingsView(data CommonData, timezones []string) templ.Component { | ||||
| 	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | ||||
| 		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||||
| 		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { | ||||
| 			return templ_7745c5c3_CtxErr | ||||
| 		} | ||||
| 		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | ||||
| 		if !templ_7745c5c3_IsBuffer { | ||||
| 			defer func() { | ||||
| 				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) | ||||
| 				if templ_7745c5c3_Err == nil { | ||||
| 					templ_7745c5c3_Err = templ_7745c5c3_BufErr | ||||
| 				} | ||||
| 			}() | ||||
| 		} | ||||
| 		ctx = templ.InitializeContext(ctx) | ||||
| 		templ_7745c5c3_Var1 := templ.GetChildren(ctx) | ||||
| 		if templ_7745c5c3_Var1 == nil { | ||||
| 			templ_7745c5c3_Var1 = templ.NopComponent | ||||
| 		} | ||||
| 		ctx = templ.ClearChildren(ctx) | ||||
| 		user := data.CurrentUser | ||||
| 		templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | ||||
| 			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||||
| 			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | ||||
| 			if !templ_7745c5c3_IsBuffer { | ||||
| 				defer func() { | ||||
| 					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) | ||||
| 					if templ_7745c5c3_Err == nil { | ||||
| 						templ_7745c5c3_Err = templ_7745c5c3_BufErr | ||||
| 					} | ||||
| 				}() | ||||
| 			} | ||||
| 			ctx = templ.InitializeContext(ctx) | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div><h1>User Settings</h1><form hx-put=\"/users/settings\"><input type=\"hidden\" name=\"csrf_token\" value=\"") | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			var templ_7745c5c3_Var3 string | ||||
| 			templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users_settings.templ`, Line: 9, Col: 65} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\"><h3>Timezone</h3><select name=\"timezones\" id=\"timezone-select\">") | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			for _, tz := range timezones { | ||||
| 				if tz == user.Settings.LocalTimezone.String() { | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "<option value=\"") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var4 string | ||||
| 					templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users_settings.templ`, Line: 14, Col: 25} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\" selected=\"true\">") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var5 string | ||||
| 					templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users_settings.templ`, Line: 14, Col: 48} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</option>") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 				} else { | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<option value=\"") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var6 string | ||||
| 					templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users_settings.templ`, Line: 16, Col: 25} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\">") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var7 string | ||||
| 					templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users_settings.templ`, Line: 16, Col: 32} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</option>") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</select> <input type=\"submit\" value=\"Submit\"></form></div>") | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			return nil | ||||
| 		}) | ||||
| 		templ_7745c5c3_Err = base("User Settings", data).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) | ||||
| 		if templ_7745c5c3_Err != nil { | ||||
| 			return templ_7745c5c3_Err | ||||
| 		} | ||||
| 		return nil | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| var _ = templruntime.GeneratedTemplate | ||||
| @ -53,7 +53,7 @@ func UserLogin(title string, data CommonData, form forms.UserLoginForm) templ.Co | ||||
| 			var templ_7745c5c3_Var3 string | ||||
| 			templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 12, Col: 73} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 12, Col: 64} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -71,7 +71,7 @@ func UserLogin(title string, data CommonData, form forms.UserLoginForm) templ.Co | ||||
| 				var templ_7745c5c3_Var4 string | ||||
| 				templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 14, Col: 42} | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 14, Col: 30} | ||||
| 				} | ||||
| 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| @ -95,7 +95,7 @@ func UserLogin(title string, data CommonData, form forms.UserLoginForm) templ.Co | ||||
| 				var templ_7745c5c3_Var5 string | ||||
| 				templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 20, Col: 48} | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 20, Col: 33} | ||||
| 				} | ||||
| 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| @ -113,7 +113,7 @@ func UserLogin(title string, data CommonData, form forms.UserLoginForm) templ.Co | ||||
| 			var templ_7745c5c3_Var6 string | ||||
| 			templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(form.Email) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 22, Col: 66} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 22, Col: 55} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -132,7 +132,7 @@ func UserLogin(title string, data CommonData, form forms.UserLoginForm) templ.Co | ||||
| 				var templ_7745c5c3_Var7 string | ||||
| 				templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 28, Col: 48} | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 28, Col: 33} | ||||
| 				} | ||||
| 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| @ -197,7 +197,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | ||||
| 			var templ_7745c5c3_Var10 string | ||||
| 			templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 43, Col: 73} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 43, Col: 64} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -220,7 +220,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | ||||
| 				var templ_7745c5c3_Var11 string | ||||
| 				templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 48, Col: 48} | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 48, Col: 33} | ||||
| 				} | ||||
| 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| @ -238,7 +238,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | ||||
| 			var templ_7745c5c3_Var12 string | ||||
| 			templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(form.Name) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 50, Col: 81} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 50, Col: 70} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -261,7 +261,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | ||||
| 				var templ_7745c5c3_Var13 string | ||||
| 				templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 56, Col: 48} | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 56, Col: 33} | ||||
| 				} | ||||
| 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| @ -279,7 +279,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | ||||
| 			var templ_7745c5c3_Var14 string | ||||
| 			templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(form.Email) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 58, Col: 76} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 58, Col: 65} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -302,7 +302,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | ||||
| 				var templ_7745c5c3_Var15 string | ||||
| 				templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 64, Col: 48} | ||||
| 					return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 64, Col: 33} | ||||
| 				} | ||||
| 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) | ||||
| 				if templ_7745c5c3_Err != nil { | ||||
| @ -367,7 +367,7 @@ func UserProfile(title string, data CommonData, user models.User) templ.Componen | ||||
| 			var templ_7745c5c3_Var18 string | ||||
| 			templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(user.Username) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 77, Col: 27} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 77, Col: 21} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -380,7 +380,7 @@ func UserProfile(title string, data CommonData, user models.User) templ.Componen | ||||
| 			var templ_7745c5c3_Var19 string | ||||
| 			templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(user.Email) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 78, Col: 23} | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 78, Col: 17} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| @ -400,7 +400,7 @@ func UserProfile(title string, data CommonData, user models.User) templ.Componen | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| func UserSettings(title string, data CommonData, user models.User) templ.Component { | ||||
| func UserSettingsView(data CommonData, timezones []string) templ.Component { | ||||
| 	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | ||||
| 		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||||
| 		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { | ||||
| @ -421,6 +421,7 @@ func UserSettings(title string, data CommonData, user models.User) templ.Compone | ||||
| 			templ_7745c5c3_Var20 = templ.NopComponent | ||||
| 		} | ||||
| 		ctx = templ.ClearChildren(ctx) | ||||
| 		user := data.CurrentUser | ||||
| 		templ_7745c5c3_Var21 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | ||||
| 			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||||
| 			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | ||||
| @ -433,13 +434,95 @@ func UserSettings(title string, data CommonData, user models.User) templ.Compone | ||||
| 				}() | ||||
| 			} | ||||
| 			ctx = templ.InitializeContext(ctx) | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<form hx-put=\"/users/settings\"><input type=\"text\"> <button type=\"submit\">Submit</button></form>") | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<div><h1>User Settings</h1><form hx-put=\"/users/settings\"><input type=\"hidden\" name=\"csrf_token\" value=\"") | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			var templ_7745c5c3_Var22 string | ||||
| 			templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 88, Col: 65} | ||||
| 			} | ||||
| 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22)) | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "\"> <label>Local Timezone</label> <select name=\"timezones\" id=\"timezone-select\">") | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			for _, tz := range timezones { | ||||
| 				if tz == user.Settings.LocalTimezone.String() { | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<option value=\"") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var23 string | ||||
| 					templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 93, Col: 25} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\" selected=\"true\">") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var24 string | ||||
| 					templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 93, Col: 48} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</option>") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 				} else { | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<option value=\"") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var25 string | ||||
| 					templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 95, Col: 25} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "\">") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					var templ_7745c5c3_Var26 string | ||||
| 					templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(tz) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/users.templ`, Line: 95, Col: 32} | ||||
| 					} | ||||
| 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</option>") | ||||
| 					if templ_7745c5c3_Err != nil { | ||||
| 						return templ_7745c5c3_Err | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</select> <input type=\"submit\" value=\"Submit\"></form></div>") | ||||
| 			if templ_7745c5c3_Err != nil { | ||||
| 				return templ_7745c5c3_Err | ||||
| 			} | ||||
| 			return nil | ||||
| 		}) | ||||
| 		templ_7745c5c3_Err = base(title, data).Render(templ.WithChildren(ctx, templ_7745c5c3_Var21), templ_7745c5c3_Buffer) | ||||
| 		templ_7745c5c3_Err = base("User Settings", data).Render(templ.WithChildren(ctx, templ_7745c5c3_Var21), templ_7745c5c3_Buffer) | ||||
| 		if templ_7745c5c3_Err != nil { | ||||
| 			return templ_7745c5c3_Err | ||||
| 		} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user