<!DOCTYPE html>
< html lang = "en" class = "light" >
< head >
< link rel = "stylesheet" type = "text/css" href = "css/{{ .cssVersion }}bundle.css" >
{{ template "header.html" . }}
< title > {{ .lang.Strings.pageTitle }}< / title >
< / head >
< body class = "max-w-full overflow-x-hidden section" >
< div id = "notification-box" > < / div >
< div class = "top-2 left-2 absolute" >
< span class = "dropdown" tabindex = "0" id = "lang-dropdown" >
< span class = "button ~urge dropdown-button" >
< i class = "ri-global-line" > < / i >
< span class = "ml-2 chev" > < / span >
< / span >
< div class = "dropdown-display" >
< div class = "card ~neutral @low" id = "lang-list" >
< / div >
< / div >
< / span >
< / div >
< div class = "page-container m-2 lg:my-20 lg:mx-64" id = "page-container" >
< div class = "card ~neutral @low mb-2" >
< div class = "row" >
< img class = "banner header" src = "banner.svg" alt = "jfa-go" / >
< / div >
< div class = "row col flex center" >
< span class = "heading welcome" > {{ .lang.StartPage.welcome }}< / span >
< / div >
< div class = "row col flex center" >
< p class = "content my-2" > {{ .lang.StartPage.pressStart }}< / p >
< / div >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "support" > {{ .lang.StartPage.httpsNotice }}< / span >
< span class = "button ~urge @low next" > {{ .lang.StartPage.start }}< / span >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.Language.title }}< / span >
< p class = "content my-2" id = "language-description" > < / p >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Language.defaultAdminLang }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "ui-language-admin" >
< / select >
< / div >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Language.defaultFormLang }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "ui-language-form" >
< / select >
< / div >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Language.defaultEmailLang }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "email-language" >
< / select >
< / div >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.General.title }}< / span >
< div class = "row" >
< div class = "col" >
< label class = "label" >
< span class = "mt-4" > {{ .lang.General.listenAddress }}< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "ui-host" value = "0.0.0.0" >
< / label >
< label class = "row switch" >
< input type = "checkbox" class = "mr-2" id = "advanced-tls" > < span > {{ .lang.General.useHTTPS }}< / span >
< / label >
< p class = "support mb-2 mt-1" > {{ .lang.General.useHTTPSNotice }}< / p >
< label class = "label" >
< span class = "mt-4" > {{ .lang.General.pathToCertificate }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "advanced-tls_cert" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.General.pathToKeyFile }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "advanced-tls_key" >
< / label >
< span class = "heading" > {{ .lang.Updates.title }}< / span >
< p class = "content my-2" id = "updates-description" > < / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "updates-enabled" checked > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span > {{ .lang.Updates.updateChannel }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "updates-channel" >
< option value = "stable" > {{ .lang.Updates.stable }}< / option >
< option value = "unstable" > {{ .lang.Updates.unstable }}< / option >
< / select >
< / div >
< / label >
< / div >
< div class = "col" >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.port }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "ui-port" value = "8056" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.General.httpsPort }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "advanced-tls_port" value = "8057" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.General.urlBase }} ({{ .lang.Strings.optional }})< / span >
< input type = "url" class = "input ~neutral @low mt-4" id = "ui-url_base" >
< p class = "support mb-2 mt-1" > {{ .lang.General.urlBaseNotice }}< / p >
< / label >
< label class = "label" >
< span > {{ .lang.Strings.theme }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "ui-theme" >
< option value = "Jellyfin (Dark)" > {{ .lang.General.darkTheme }}< / option >
< option value = "Default (Light)" > {{ .lang.General.lightTheme }}< / option >
< / select >
< / div >
< / label >
< span class = "heading" > {{ .lang.Proxy.title }}< / span >
< p class = "content my-2" id = "proxy-description" > {{ .lang.Proxy.description }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "advanced-proxy" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span > {{ .lang.Proxy.protocol }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "advanced-proxy_protocol" >
< option value = "http" > HTTP< / option >
< option value = "socks" > SOCKS5< / option >
< / select >
< / div >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Proxy.address }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "advanced-proxy_address" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.username }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "advanced-proxy_user" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.password }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "advanced-proxy_password" >
< / label >
< / div >
< / div >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.Login.title }}< / span >
< p class = "content my-2" > {{ .lang.Login.description }}< / p >
< div class = "pl-4" >
< label class = "row switch pb-4" >
< input type = "radio" class = "mr-2" name = "ui-jellyfin_login" value = "true" checked > < span > {{ .lang.Login.authorizeWithJellyfin }}< / span >
< / label >
< label class = "row switch pl-4 pb-4" >
< input type = "checkbox" class = "mr-2" id = "ui-admin_only" checked > < span > {{ .lang.Login.adminOnly }}< / span >
< / label >
< label class = "row switch pl-4 pb-2" >
< input type = "checkbox" class = "mr-2" id = "ui-allow_all" > < span > {{ .lang.Login.allowAll }}< / span >
< / label >
< p class = "support pb-4 pl-4 mt-1" id = "description-ui-allow_all" > {{ .lang.Login.allowAllDescription }}< / p >
< label class = "row switch pb-4" >
< input type = "radio" class = "mr-2" name = "ui-jellyfin_login" value = "false" > < span > {{ .lang.Login.authorizeManual }}< / span >
< / label >
< p class = "support pb-4 pl-4 mt-1" > {{ .lang.Login.authorizeManualUserPageNotice }}< / p >
< / div >
< div id = "login-manual" >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.username }}< / span >
< input type = "text" id = "ui-username" class = "input ~neutral @low mt-4 mb-2" placeholder = "{{ .lang.Strings.username }}" >
< / label >
< label class = "label" >
< span > {{ .lang.Strings.password }}< / span >
< input type = "password" id = "ui-password" class = "input ~neutral @low mt-4 mb-2" placeholder = "{{ .lang.Strings.password }}" >
< / label >
< label class = "label" >
< span > {{ .lang.Strings.emailAddress }} ({{ .lang.Strings.optional }})< / span >
< input type = "email" id = "ui-email" class = "input ~neutral @low mt-4" placeholder = "email@address" >
< span class = "support mb-2 mt-1" > {{ .lang.Login.emailNotice }}< / span >
< / label >
< / div >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.JellyfinEmby.title }}< / span >
< p class = "content my-2" > {{ .lang.JellyfinEmby.description }}< / p >
< div class = "row" >
< div class = "col" >
< label class = "label" >
< span > {{ .lang.Strings.serverType }}< / span >
< div class = "select ~neutral @low mt-4" >
< select id = "jellyfin-type" >
< option value = "jellyfin" > Jellyfin< / option >
< option value = "emby" > Emby< / option >
< / select >
< / div >
< p class = "support mb-2 mt-1" > {{ .lang.JellyfinEmby.embyNotice }}< / p >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.JellyfinEmby.replaceJellyfin }} ({{ .lang.Strings.optional }})< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "jellyfin-substitute_jellyfin_strings" >
< p class = "support mb-2 mt-1" > {{ .lang.JellyfinEmby.replaceJellyfinNotice }}< / p >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.username }}< / span >
< input type = "text" id = "jellyfin-username" class = "input ~neutral @low mt-4 mb-2" placeholder = "{{ .lang.Strings.username }}" >
< / label >
< label class = "label" >
< span > {{ .lang.Strings.password }}< / span >
< input type = "password" id = "jellyfin-password" class = "input ~neutral @low mt-4 mb-2" placeholder = "{{ .lang.Strings.password }}" >
< / label >
< / div >
< div class = "col" >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.serverAddress }} ({{ .lang.JellyfinEmby.internal }})< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "jellyfin-server" placeholder = "http://jellyf.in:80" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.serverAddress }} ({{ .lang.JellyfinEmby.external }})< / span >
< input type = "url" class = "input ~neutral @low mt-4" id = "jellyfin-public_server" placeholder = "https://jellyf.in" >
< p class = "support mb-2 mt-1" > {{ .lang.JellyfinEmby.addressExternalNotice }}< / p >
< / label >
< / div >
< / div >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low" id = "jellyfin-test-connection" > {{ .lang.JellyfinEmby.testConnection }}< / span >
< span class = "button ~urge @low next" disabled > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.Ombi.title }}< / span >
< p class = "content my-2" > {{ .lang.Ombi.description }}< / p >
< aside class = "aside ~warning my-2" id = "ombi-stability-warning" > {{ .lang.Ombi.stabilityWarning }}< / aside >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "ombi-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.serverAddress }}< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "ombi-server" placeholder = "ombi.jellyf.in" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.apiKey }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "ombi-api_key" >
< p class = "support mb-2 mt-1" > {{ .lang.Ombi.apiKeyNotice }}< / p >
< / label >
< span class = "heading" > {{ .lang.Jellyseerr.title }}< / span >
< p class = "content my-2" > {{ .lang.Jellyseerr.description }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "jellyseerr-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.serverAddress }}< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "jellyseerr-server" placeholder = "https://jellyseerr.jellyf.in:5055" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.apiKey }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "jellyseerr-api_key" >
< / label >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "jellyseerr-import_existing" > < span > {{ .lang.Jellyseerr.importExisting }}< / span >
< p class = "support mb-2 mt-1" > {{ .lang.Jellyseerr.importExistingDescription }}< / p >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.UserPage.title }}< / span >
< p class = "content my-2" > {{ .lang.UserPage.description }}< / p >
< p class = "content my-2" > {{ .lang.UserPage.customizeMessages }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "userpage-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< p class = "support mb-1 mt-1" > {{ .lang.UserPage.requiredSettings }}< / p >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.Messages.title }}< / span >
< p class = "content my-2" id = "messages-description" > < / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "messages-enabled" checked > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Email.dateFormat }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "email-date_format" value = "%d/%m/%y" >
< p class = "support mb-2 mt-1" id = "email-dateformat-notice" > < / p >
< / label >
< div >
< label class = "row switch pb-4" >
< input type = "radio" class = "mr-2" name = "email-24h" value = "true" checked > < span > {{ .lang.Strings.time24h }}< / span >
< / label >
< label class = "row switch pb-4" >
< input type = "radio" class = "mr-2" name = "email-24h" value = "false" > < span > {{ .lang.Strings.time12h }}< / span >
< / label >
< / div >
< div id = "email-sect" >
< span class = "heading" > {{ .lang.Email.title }}< / span >
< p class = "content my-2" id = "email-description" > < / p >
< div class = "row" >
< div class = "col" >
< label class = "label" >
< span > {{ .lang.Email.method }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "email-method" >
< option value = "" > {{ .lang.Strings.disabled }}< / option >
< option value = "smtp" > SMTP< / option >
< option value = "mailgun" > Mailgun< / option >
< / select >
< / div >
< / label >
< label class = "row switch" >
< input type = "checkbox" class = "mr-2" id = "email-no_username" > < span > {{ .lang.Email.useEmailAsUsername }}< / span >
< p class = "support mb-2 mt-1" > {{ .lang.Email.useEmailAsUsernameNotice }}< / p >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Email.fromAddress }}< / span >
< input type = "email" class = "input ~neutral @low mt-4 mb-2" id = "email-address" placeholder = "mail@jellyf.in" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Email.senderName }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "email-from" value = "Jellyfin" >
< / label >
< / div >
< div class = "col" >
< div id = "email-smtp" >
< p class = "text-2xl font-semibold mb-2" > SMTP< / p >
< label class = "label" >
< span > {{ .lang.Email.encryption }}< / span >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "smtp-encryption" >
< option value = "starttls" > STARTTLS ({{ .lang.Strings.port }} 587)< / option >
< option value = "ssl_tls" > SSL/TLS ({{ .lang.Strings.port }} 465)< / option >
< / select >
< / div >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.serverAddress }}< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "smtp-server" placeholder = "smtp.jellyf.in" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.port }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "smtp-port" placeholder = "587" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.username }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "smtp-username" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.password }}< / span >
< input type = "password" class = "input ~neutral @low mt-4 mb-2" id = "smtp-password" >
< / label >
< / div >
< div id = "email-mailgun" >
< p class = "text-2xl font-semibold mb-2" > Mailgun< / p >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Email.mailgunApiURL }}< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "mailgun-api_url" placeholder = "https://api.eu.mailgun.net/v3/mail.jellyf.in/messages" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.apiKey }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "mailgun-api_key" >
< / label >
< / div >
< / div >
< / div >
< / div >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused related-to-email" >
< span class = "heading" > {{ .lang.Notifications.title }}< / span >
< p class = "content my-2" > {{ .lang.Notifications.description }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "notifications-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< span class = "heading" > {{ .lang.WelcomeEmails.title }}< / span >
< p class = "content my-2" > {{ .lang.WelcomeEmails.description }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "welcome_email-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.emailSubject }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "welcome_email-subject" placeholder = "{{ .emailLang.WelcomeEmail.title }}" >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused related-to-email" >
< span class = "heading" > {{ .lang.InviteEmails.title }}< / span >
< p class = "content my-2" > {{ .lang.InviteEmails.description }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "invite_emails-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.URL }}< / span >
< input type = "url" class = "input ~neutral @low mt-4 mb-2" id = "invite_emails-url_base" placeholder = "https://accounts.jellyf.in/invite" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.Strings.emailSubject }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "invite_emails-subject" placeholder = "{{ .emailLang.InviteEmail.title }}" >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div id = "password-resets" class = "card ~neutral @low mb-2 unfocused related-to-email" >
< span class = "heading" > {{ .lang.PasswordResets.title }}< / span >
< p class = "content my-2" > {{ .lang.PasswordResets.description }}< / p >
< p class = "content my-2" id = "password_resets-more-info" > {{ .lang.PasswordResets.moreInfo }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "password_resets-enabled" > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.PasswordResets.pathToJellyfin }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "password_resets-watch_directory" placeholder = "/config/jellyfin" >
< p class = "support mb-2 mt-1" > {{ .lang.PasswordResets.pathToJellyfinNotice }}< / p >
< / label >
< label class = "switch" >
< input type = "checkbox" class = "mr-2" id = "password_resets-link_reset" > < span > {{ .lang.PasswordResets.resetLinks }}< / span >
< p class = "support mb-2 mt-1" > {{ .lang.PasswordResets.resetLinksNotice }} {{ .lang.PasswordResets.resetLinksRequiredForUserPage }}< / p >
< / label >
< label class = "switch" >
< input type = "checkbox" class = "mr-2" id = "password_resets-set_password" > < span > {{ .lang.PasswordResets.setPassword }}< / span >
< p class = "support mb-2 mt-1" > {{ .lang.PasswordResets.setPasswordNotice }}< / p >
< / label >
< label class = "label" >
< p class = "mt-4" > {{ .lang.PasswordResets.resetLinksLanguage }}< / p >
< div class = "select ~neutral @low mt-4 mb-2" >
< select id = "password_resets-language" >
< / select >
< / div >
< / label >
< label class = "row label" >
< span class = "mt-4" > {{ .lang.Strings.emailSubject }}< / span >
< input type = "text" class = "input ~neutral @low mt-4 mb-2" id = "password_resets-subject" placeholder = "{{ .emailLang.PasswordReset.title }}" >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.PasswordValidation.title }}< / span >
< p class = "content my-2" > {{ .lang.PasswordValidation.description }}< / p >
< label class = "row switch pb-4" >
< input type = "checkbox" class = "mr-2" id = "password_validation-enabled" checked > < span > {{ .lang.Strings.enabled }}< / span >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.PasswordValidation.length }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "password_validation-min_length" value = "8" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.PasswordValidation.uppercase }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "password_validation-upper" value = "1" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.PasswordValidation.lowercase }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "password_validation-lower" value = "0" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.PasswordValidation.numbers }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "password_validation-number" value = "0" >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.PasswordValidation.special }}< / span >
< input type = "number" class = "input ~neutral @low mt-4 mb-2" id = "password_validation-special" value = "0" >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< span class = "heading" > {{ .lang.HelpMessages.title }}< / span >
< p class = "content my-2" > {{ .lang.HelpMessages.description }}< / p >
< label class = "label" >
< span class = "mt-4" > {{ .lang.HelpMessages.contactMessage }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "ui-contact_message" >
< p class = "support mb-2 mt-1" > {{ .lang.HelpMessages.contactMessageNotice }}< / p >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.HelpMessages.helpMessage }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "ui-help_message" >
< p class = "support mb-2 mt-1" > {{ .lang.HelpMessages.helpMessageNotice }}< / p >
< / label >
< label class = "label" >
< span class = "mt-4" > {{ .lang.HelpMessages.successMessage }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "ui-success_message" >
< p class = "support mb-2 mt-1" > {{ .lang.HelpMessages.successMessageNotice }}< / p >
< / label >
< label class = "label related-to-email" >
< span class = "mt-4" > {{ .lang.HelpMessages.emailMessage }}< / span >
< input type = "text" class = "input ~neutral @low mt-4" id = "email-message" >
< p class = "support mb-2 mt-1" > {{ .lang.HelpMessages.emailMessageNotice }}< / p >
< / label >
< section class = "section ~neutral banner footer flex flex-row justify-between middle" >
< span class = "button ~neutral @low back" > {{ .lang.Strings.back }}< / span >
< div >
< span class = "button ~urge @low next" > {{ .lang.Strings.next }}< / span >
< / div >
< / section >
< / div >
< div class = "card ~neutral @low mb-2 unfocused" >
< div class = "row col flex center" >
< span class = "heading" > {{ .lang.EndPage.finished }}< / span >
< / div >
< div class = "row col flex center" >
< p class = "content my-2" > {{ .lang.EndPage.restartMessage }}< / p >
< / div >
< div class = "row col flex center" >
< span class = "button ~neutral @low back mr-4" > {{ .lang.Strings.back }}< / span >
< span class = "button ~urge @low" id = "restart" > {{ .lang.Strings.submit }}< / span >
< span class = "button ~urge @low unfocused" id = "refresh" > {{ .lang.EndPage.refreshPage }}< / span >
< / div >
< / div >
< / div >
< script >
window.langFile = JSON.parse({{ .language }});
window.messages = JSON.parse({{ .messages }});
< / script >
< script src = "js/setup.js" type = "module" > < / script >
< / body >
< / html >