Implement guestbook settings #20
| @ -5,11 +5,11 @@ import ( | |||||||
| 	"git.32bit.cafe/32bitcafe/guestbook/internal/models" | 	"git.32bit.cafe/32bitcafe/guestbook/internal/models" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| templ UserLogin (title string, data CommonData, form forms.UserLoginForm) { | templ UserLogin(title string, data CommonData, form forms.UserLoginForm) { | ||||||
| 	@base(title, data) { | 	@base(title, data) { | ||||||
| 		<h1>Login</h1> | 		<h1>Login</h1> | ||||||
| 		<form action="/users/login" method="POST" novalidate> | 		<form action="/users/login" method="POST" novalidate> | ||||||
|             <input type="hidden" name="csrf_token" value={ data.CSRFToken }> | 			<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||||
| 			for _, error := range form.NonFieldErrors { | 			for _, error := range form.NonFieldErrors { | ||||||
| 				<div class="error">{ error }</div> | 				<div class="error">{ error }</div> | ||||||
| 			} | 			} | ||||||
| @ -19,7 +19,7 @@ templ UserLogin (title string, data CommonData, form forms.UserLoginForm) { | |||||||
| 				if exists { | 				if exists { | ||||||
| 					<label class="error">{ error }</label> | 					<label class="error">{ error }</label> | ||||||
| 				} | 				} | ||||||
|                 <input type="email" name="email" value={form.Email}> | 				<input type="email" name="email" value={ form.Email }/> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div> | 			<div> | ||||||
| 				<label>Password: </label> | 				<label>Password: </label> | ||||||
| @ -27,27 +27,27 @@ templ UserLogin (title string, data CommonData, form forms.UserLoginForm) { | |||||||
| 				if exists { | 				if exists { | ||||||
| 					<label class="error">{ error }</label> | 					<label class="error">{ error }</label> | ||||||
| 				} | 				} | ||||||
|                 <input type="password" name="password"> | 				<input type="password" name="password"/> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div> | 			<div> | ||||||
|                 <input type="submit" value="login"> | 				<input type="submit" value="login"/> | ||||||
| 			</div> | 			</div> | ||||||
| 		</form> | 		</form> | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| templ UserRegistration (title string, data CommonData, form forms.UserRegistrationForm) { | templ UserRegistration(title string, data CommonData, form forms.UserRegistrationForm) { | ||||||
| 	@base(title, data) { | 	@base(title, data) { | ||||||
| 		<h1>User Registration</h1> | 		<h1>User Registration</h1> | ||||||
| 		<form action="/users/register" method="post"> | 		<form action="/users/register" method="post"> | ||||||
|             <input type="hidden" name="csrf_token" value={ data.CSRFToken }> | 			<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||||
| 			<div> | 			<div> | ||||||
| 				{{ error, exists := form.FieldErrors["name"] }} | 				{{ error, exists := form.FieldErrors["name"] }} | ||||||
| 				<label for="username">Username: </label> | 				<label for="username">Username: </label> | ||||||
| 				if exists { | 				if exists { | ||||||
| 					<label class="error">{ error }</label> | 					<label class="error">{ error }</label> | ||||||
| 				} | 				} | ||||||
|                 <input type="text" name="username" id="username" value={form.Name} required /> | 				<input type="text" name="username" id="username" value={ form.Name } required/> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div> | 			<div> | ||||||
| 				{{ error, exists = form.FieldErrors["email"] }} | 				{{ error, exists = form.FieldErrors["email"] }} | ||||||
| @ -55,7 +55,7 @@ templ UserRegistration (title string, data CommonData, form forms.UserRegistrati | |||||||
| 				if exists { | 				if exists { | ||||||
| 					<label class="error">{ error }</label> | 					<label class="error">{ error }</label> | ||||||
| 				} | 				} | ||||||
|                 <input type="text" name="email" id="email" value={form.Email} required /> | 				<input type="text" name="email" id="email" value={ form.Email } required/> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div> | 			<div> | ||||||
| 				{{ error, exists = form.FieldErrors["password"] }} | 				{{ error, exists = form.FieldErrors["password"] }} | ||||||
| @ -63,27 +63,41 @@ templ UserRegistration (title string, data CommonData, form forms.UserRegistrati | |||||||
| 				if exists { | 				if exists { | ||||||
| 					<label class="error">{ error }</label> | 					<label class="error">{ error }</label> | ||||||
| 				} | 				} | ||||||
|                 <input type="password" name="password" id="password" /> | 				<input type="password" name="password" id="password"/> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div> | 			<div> | ||||||
|                 <input type="submit" value="Register" /> | 				<input type="submit" value="Register"/> | ||||||
| 			</div> | 			</div> | ||||||
| 		</form> | 		</form> | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| templ UserProfile (title string, data CommonData, user models.User) { | templ UserProfile(title string, data CommonData, user models.User) { | ||||||
| 	@base(title, data) { | 	@base(title, data) { | ||||||
| 		<h1>{ user.Username }</h1> | 		<h1>{ user.Username }</h1> | ||||||
| 		<p>{ user.Email }</p> | 		<p>{ user.Email }</p> | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| templ UserSettings (title string, data CommonData, user models.User) { | templ UserSettingsView(data CommonData, timezones []string) { | ||||||
|     @base(title, data) { | 	{{ user := data.CurrentUser }} | ||||||
|  | 	@base("User Settings", data) { | ||||||
|  | 		<div> | ||||||
|  | 			<h1>User Settings</h1> | ||||||
| 			<form hx-put="/users/settings"> | 			<form hx-put="/users/settings"> | ||||||
|             <input type="text"> | 				<input type="hidden" name="csrf_token" value={ data.CSRFToken }/> | ||||||
|             <button type="submit">Submit</button> | 				<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> | 			</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 | 			var templ_7745c5c3_Var3 string | ||||||
| 			templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | 			templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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 | 				var templ_7745c5c3_Var4 string | ||||||
| 				templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(error) | 				templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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)) | 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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 | 				var templ_7745c5c3_Var5 string | ||||||
| 				templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(error) | 				templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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)) | 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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 | 			var templ_7745c5c3_Var6 string | ||||||
| 			templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(form.Email) | 			templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(form.Email) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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 | 				var templ_7745c5c3_Var7 string | ||||||
| 				templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(error) | 				templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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)) | 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				if templ_7745c5c3_Err != nil { | ||||||
| @ -197,7 +197,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | |||||||
| 			var templ_7745c5c3_Var10 string | 			var templ_7745c5c3_Var10 string | ||||||
| 			templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | 			templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(data.CSRFToken) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			if templ_7745c5c3_Err != nil { | ||||||
| @ -220,7 +220,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | |||||||
| 				var templ_7745c5c3_Var11 string | 				var templ_7745c5c3_Var11 string | ||||||
| 				templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(error) | 				templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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)) | 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				if templ_7745c5c3_Err != nil { | ||||||
| @ -238,7 +238,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | |||||||
| 			var templ_7745c5c3_Var12 string | 			var templ_7745c5c3_Var12 string | ||||||
| 			templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(form.Name) | 			templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(form.Name) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			if templ_7745c5c3_Err != nil { | ||||||
| @ -261,7 +261,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | |||||||
| 				var templ_7745c5c3_Var13 string | 				var templ_7745c5c3_Var13 string | ||||||
| 				templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(error) | 				templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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)) | 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				if templ_7745c5c3_Err != nil { | ||||||
| @ -279,7 +279,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | |||||||
| 			var templ_7745c5c3_Var14 string | 			var templ_7745c5c3_Var14 string | ||||||
| 			templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(form.Email) | 			templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(form.Email) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			if templ_7745c5c3_Err != nil { | ||||||
| @ -302,7 +302,7 @@ func UserRegistration(title string, data CommonData, form forms.UserRegistration | |||||||
| 				var templ_7745c5c3_Var15 string | 				var templ_7745c5c3_Var15 string | ||||||
| 				templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(error) | 				templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(error) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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)) | 				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) | ||||||
| 				if templ_7745c5c3_Err != nil { | 				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 | 			var templ_7745c5c3_Var18 string | ||||||
| 			templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(user.Username) | 			templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(user.Username) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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 | 			var templ_7745c5c3_Var19 string | ||||||
| 			templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(user.Email) | 			templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(user.Email) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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)) | 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) | ||||||
| 			if templ_7745c5c3_Err != nil { | 			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) { | 	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 | 		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||||||
| 		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { | 		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 | 			templ_7745c5c3_Var20 = templ.NopComponent | ||||||
| 		} | 		} | ||||||
| 		ctx = templ.ClearChildren(ctx) | 		ctx = templ.ClearChildren(ctx) | ||||||
|  | 		user := data.CurrentUser | ||||||
| 		templ_7745c5c3_Var21 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | 		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_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||||||
| 			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | 			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) | 			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 { | 			if templ_7745c5c3_Err != nil { | ||||||
| 				return templ_7745c5c3_Err | 				return templ_7745c5c3_Err | ||||||
| 			} | 			} | ||||||
| 			return nil | 			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 { | 		if templ_7745c5c3_Err != nil { | ||||||
| 			return templ_7745c5c3_Err | 			return templ_7745c5c3_Err | ||||||
| 		} | 		} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user