move user settings code
This commit is contained in:
		
							parent
							
								
									1a41a94b41
								
							
						
					
					
						commit
						260ddbe740
					
				@ -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