@use plume_models::instance::Instance; @use validator::ValidationErrors; @use crate::templates::base; @use crate::template_utils::*; @use crate::routes::user::UpdateUserForm; @use crate::routes::*; @(ctx: BaseContext, form: UpdateUserForm, errors: ValidationErrors) @:base(ctx, i18n!(ctx.1, "Edit your account"), {}, {}, { @if let Some(u) = ctx.2.clone() { <h1>@i18n!(ctx.1, "Your Profile")</h1> <p> @i18n!(ctx.1, "To change your avatar, upload it to your gallery and then select from there.") <a href="@uri!(medias::new)">@i18n!(ctx.1, "Upload an avatar")</a> </p> <form method="post" action="@uri!(user::update: name = u.username.clone())"> <!-- Rocket hack to use various HTTP methods --> <input type=hidden name="_method" value="put"> @(Input::new("display_name", i18n!(ctx.1, "Display name")) .default(&form.display_name) .error(&errors) .html(ctx.1)) @(Input::new("email", i18n!(ctx.1, "Email")) .default(&form.email) .error(&errors) .input_type("email") .html(ctx.1)) <label for="summary">@i18n!(ctx.1, "Summary")</label> <textarea id="summary" name="summary">@form.summary</textarea> @if let Ok(themes) = Instance::list_themes() { <label for="theme">@i18n!(ctx.1, "Theme")</label> <select name="theme" id="theme"> <option value="" @if form.theme.is_none() { selected }>@i18n!(ctx.1, "Default theme")</option> @for theme in themes { <option value="@theme" @if Some(theme.clone()) == form.theme { selected }>@theme</option> } </select> } else { <p class="error">@i18n!(ctx.1, "Error while loading theme selector.")</p> } <label for="hide_custom_css"> <input type="checkbox" name="hide_custom_css" id="hide_custom_css" @if form.hide_custom_css { checked }> @i18n!(ctx.1, "Never load blogs custom themes") </label> <input type="submit" value="@i18n!(ctx.1, "Update account")"/> </form> <h2>@i18n!(ctx.1, "Danger zone")</h2> <p>@i18n!(ctx.1, "Be very careful, any action taken here can't be cancelled.") @if !u.is_admin() { <form method="post" action="@uri!(user::delete: name = u.username)"> <input type="submit" class="inline-block button destructive" value="@i18n!(ctx.1, "Delete your account")"> </form> } else { <p>@i18n!(ctx.1, "Sorry, but as an admin, you can't leave your own instance.")</p> } } })