mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-23 01:20:11 +00:00
475 lines
29 KiB
HTML
475 lines
29 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="light-theme">
|
|
<head>
|
|
<link rel="stylesheet" type="text/css" href="css/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>
|
|
<span class="dropdown" tabindex="0" id="lang-dropdown">
|
|
<span class="button ~urge dropdown-button">
|
|
<i class="ri-global-line"></i>
|
|
<span class="ml-1 chev"></span>
|
|
</span>
|
|
<div class="dropdown-display">
|
|
<div class="card ~neutral !low" id="lang-list">
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<div class="page-container" id="page-container">
|
|
<div class="card ~neutral !low mb-1">
|
|
<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">{{ .lang.StartPage.pressStart }}</p>
|
|
</div>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="support">{{ .lang.StartPage.httpsNotice }}</span>
|
|
<span class="button ~urge !normal next">{{ .lang.StartPage.start }}</span>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.Language.title }}</span>
|
|
<p class="content" id="language-description"></p>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Language.defaultAdminLang }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<select id="ui-language-admin">
|
|
</select>
|
|
</div>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Language.defaultFormLang }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<select id="ui-language-form">
|
|
</select>
|
|
</div>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Language.defaultEmailLang }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<select id="email-language">
|
|
</select>
|
|
</div>
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.General.title }}</span>
|
|
<div class="row">
|
|
<div class="col">
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.General.listenAddress }}</span>
|
|
<input type="url" class="input ~neutral !normal mt-half mb-1" id="ui-host" value="0.0.0.0">
|
|
</label>
|
|
<label class="row switch">
|
|
<input type="checkbox" id="advanced-tls"><span>{{ .lang.General.useHTTPS }}</span>
|
|
</label>
|
|
<p class="support mb-1">{{ .lang.General.useHTTPSNotice }}</p>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.General.pathToCertificate }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="advanced-tls_cert">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.General.pathToKeyFile }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="advanced-tls_key">
|
|
</label>
|
|
<span class="heading">{{ .lang.Updates.title }}</span>
|
|
<p class="content" id="updates-description"></p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="updates-enabled" checked><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<label class="label">
|
|
<span>{{ .lang.Updates.updateChannel }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<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-half">{{ .lang.Strings.port }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="ui-port" value="8056">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.General.httpsPort }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="advanced-tls_port" value="8057">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.General.urlBase }} ({{ .lang.Strings.optional }})</span>
|
|
<input type="url" class="input ~neutral !normal mt-half" id="ui-url_base">
|
|
<p class="support mb-1">{{ .lang.General.urlBaseNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span>{{ .lang.Strings.theme }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<select id="ui-theme">
|
|
<option value="Jellyfin (Dark)">{{ .lang.General.darkTheme }}</option>
|
|
<option value="Default (Light)">{{ .lang.General.lightTheme }}</option>
|
|
</select>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.Login.title }}</span>
|
|
<p class="content">{{ .lang.Login.description }}</p>
|
|
<div class="pl-1">
|
|
<label class="row switch pb-1">
|
|
<input type="radio" name="ui-jellyfin_login" value="true" checked><span>{{ .lang.Login.authorizeWithJellyfin }}</span>
|
|
</label>
|
|
<label class="row switch pl-1 pb-1">
|
|
<input type="checkbox" id="ui-admin_only"><span>{{ .lang.Login.adminOnly }}</span>
|
|
</label>
|
|
<label class="row switch pb-1">
|
|
<input type="radio" name="ui-jellyfin_login" value="false"><span>{{ .lang.Login.authorizeManual }}</span>
|
|
</label>
|
|
</div>
|
|
<div id="login-manual">
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.username }}</span>
|
|
<input type="text" id="ui-username" class="input ~neutral !normal mt-half mb-1" placeholder="{{ .lang.Strings.username }}">
|
|
</label>
|
|
<label class="label">
|
|
<span>{{ .lang.Strings.password }}</span>
|
|
<input type="password" id="ui-password" class="input ~neutral !normal mt-half mb-1" 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 !normal mt-half" placeholder="email@address">
|
|
<span class="support mb-1">{{ .lang.Login.emailNotice }}</span>
|
|
</label>
|
|
</div>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.JellyfinEmby.title }}</span>
|
|
<p class="content">{{ .lang.JellyfinEmby.description }}</p>
|
|
<div class="row">
|
|
<div class="col">
|
|
<label class="label">
|
|
<span>{{ .lang.Strings.serverType }}</span>
|
|
<div class="select ~neutral !normal mt-half">
|
|
<select id="jellyfin-type">
|
|
<option value="jellyfin">Jellyfin</option>
|
|
<option value="emby">Emby</option>
|
|
</select>
|
|
</div>
|
|
<p class="support mb-1">{{ .lang.JellyfinEmby.embyNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.JellyfinEmby.replaceJellyfin }} ({{ .lang.Strings.optional }})</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="jellyfin-substitute_jellyfin_strings">
|
|
<p class="support mb-1">{{ .lang.JellyfinEmby.replaceJellyfinNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.username }}</span>
|
|
<input type="text" id="jellyfin-username" class="input ~neutral !normal mt-half mb-1" placeholder="{{ .lang.Strings.username }}">
|
|
</label>
|
|
<label class="label">
|
|
<span>{{ .lang.Strings.password }}</span>
|
|
<input type="password" id="jellyfin-password" class="input ~neutral !normal mt-half mb-1" placeholder="{{ .lang.Strings.password }}">
|
|
</label>
|
|
</div>
|
|
<div class="col">
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.serverAddress }} ({{ .lang.JellyfinEmby.internal }})</span>
|
|
<input type="url" class="input ~neutral !normal mt-half mb-1" id="jellyfin-server" placeholder="http://jellyf.in:80">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.serverAddress }} ({{ .lang.JellyfinEmby.external }})</span>
|
|
<input type="url" class="input ~neutral !normal mt-half" id="jellyfin-public_server" placeholder="https://jellyf.in">
|
|
<p class="support mb-1">{{ .lang.JellyfinEmby.addressExternalNotice }}</p>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal" id="jellyfin-test-connection">{{ .lang.JellyfinEmby.testConnection }}</span>
|
|
<span class="button ~urge !normal next" disabled>{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.Ombi.title }}</span>
|
|
<p class="content">{{ .lang.Ombi.description }}</p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="ombi-enabled"><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.serverAddress }}</span>
|
|
<input type="url" class="input ~neutral !normal mt-half mb-1" id="ombi-server" placeholder="ombi.jellyf.in">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.apiKey }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="ombi-api_key">
|
|
<p class="support mb-1">{{ .lang.Ombi.apiKeyNotice }}</p>
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.Email.title }}</span>
|
|
<p class="content" id="email-description"></p>
|
|
<div class="row">
|
|
<div class="col">
|
|
<label class="label">
|
|
<span>{{ .lang.Email.method }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<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" id="email-no_username"><span>{{ .lang.Email.useEmailAsUsername }}</span>
|
|
<p class="support mb-1">{{ .lang.Email.useEmailAsUsernameNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Email.fromAddress }}</span>
|
|
<input type="email" class="input ~neutral !normal mt-half mb-1" id="email-address" placeholder="mail@jellyf.in">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Email.senderName }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="email-from" value="Jellyfin">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Email.dateFormat }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="email-date_format" value="%d/%m/%y">
|
|
<p class="support mb-1" id="email-dateformat-notice"></p>
|
|
</label>
|
|
<div>
|
|
<label class="row switch pb-1">
|
|
<input type="radio" name="email-24h" value="true" checked><span>{{ .lang.Strings.time24h }}</span>
|
|
</label>
|
|
<label class="row switch pb-1">
|
|
<input type="radio" name="email-24h" value="false"><span>{{ .lang.Strings.time12h }}</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="col">
|
|
<div id="email-smtp">
|
|
<p class="subheading">SMTP</p>
|
|
<label class="label">
|
|
<span>{{ .lang.Email.encryption }}</span>
|
|
<div class="select ~neutral !normal mt-half mb-1">
|
|
<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-half">{{ .lang.Strings.serverAddress }}</span>
|
|
<input type="url" class="input ~neutral !normal mt-half mb-1" id="smtp-server" placeholder="smtp.jellyf.in">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.port }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="smtp-port" placeholder="587">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.username }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="smtp-username">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.password }}</span>
|
|
<input type="password" class="input ~neutral !normal mt-half mb-1" id="smtp-password">
|
|
</label>
|
|
</div>
|
|
<div id="email-mailgun">
|
|
<p class="subheading">Mailgun</p>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Email.mailgunApiURL }}</span>
|
|
<input type="url" class="input ~neutral !normal mt-half mb-1" id="mailgun-api_url" placeholder="https://api.eu.mailgun.net/v3/mail.jellyf.in/messages">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.apiKey }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="mailgun-api_key">
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused related-to-email">
|
|
<span class="heading">{{ .lang.Notifications.title }}</span>
|
|
<p class="content">{{ .lang.Notifications.description }}</p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="notifications-enabled"><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<span class="heading">{{ .lang.WelcomeEmails.title }}</span>
|
|
<p class="content">{{ .lang.WelcomeEmails.description }}</p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="welcome_email-enabled"><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.emailSubject }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="welcome_email-subject" placeholder="{{ .emailLang.WelcomeEmail.title }}">
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused related-to-email">
|
|
<span class="heading">{{ .lang.InviteEmails.title }}</span>
|
|
<p class="content">{{ .lang.InviteEmails.description }}</p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="invite_emails-enabled"><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.URL }}</span>
|
|
<input type="url" class="input ~neutral !normal mt-half mb-1" id="invite_emails-url_base" placeholder="https://accounts.jellyf.in/invite">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.emailSubject }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="invite_emails-subject" placeholder="{{ .emailLang.InviteEmail.title }}">
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div id="password-resets" class="card ~neutral !low mb-1 unfocused related-to-email">
|
|
<span class="heading">{{ .lang.PasswordResets.title }}</span>
|
|
<p class="content">{{ .lang.PasswordResets.description }}</p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="password_resets-enabled"><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.PasswordResets.pathToJellyfin }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="password_resets-watch_directory" placeholder="/config/jellyfin">
|
|
<p class="support mb-1">{{ .lang.PasswordResets.pathToJellyfinNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.Strings.emailSubject }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half mb-1" id="password_resets-subject" placeholder="{{ .emailLang.PasswordReset.title }}">
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.PasswordValidation.title }}</span>
|
|
<p class="content">{{ .lang.PasswordValidation.description }}</p>
|
|
<label class="row switch pb-1">
|
|
<input type="checkbox" id="password_validation-enabled" checked><span>{{ .lang.Strings.enabled }}</span>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.PasswordValidation.length }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="password_validation-min_length" value="8">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.PasswordValidation.uppercase }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="password_validation-upper" value="1">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.PasswordValidation.lowercase }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="password_validation-lower" value="0">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.PasswordValidation.numbers }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="password_validation-number" value="0">
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.PasswordValidation.special }}</span>
|
|
<input type="number" class="input ~neutral !normal mt-half mb-1" id="password_validation-special" value="0">
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<span class="heading">{{ .lang.HelpMessages.title }}</span>
|
|
<p class="content">{{ .lang.HelpMessages.description }}</p>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.HelpMessages.contactMessage }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="ui-contact_message">
|
|
<p class="support mb-1">{{ .lang.HelpMessages.contactMessageNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.HelpMessages.helpMessage }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="ui-help_message">
|
|
<p class="support mb-1">{{ .lang.HelpMessages.helpMessageNotice }}</p>
|
|
</label>
|
|
<label class="label">
|
|
<span class="mt-half">{{ .lang.HelpMessages.successMessage }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="ui-success_message">
|
|
<p class="support mb-1">{{ .lang.HelpMessages.successMessageNotice }}</p>
|
|
</label>
|
|
<label class="label related-to-email">
|
|
<span class="mt-half">{{ .lang.HelpMessages.emailMessage }}</span>
|
|
<input type="text" class="input ~neutral !normal mt-half" id="email-message">
|
|
<p class="support mb-1">{{ .lang.HelpMessages.emailMessageNotice }}</p>
|
|
</label>
|
|
<section class="section ~neutral banner footer flex-expand middle">
|
|
<span class="button ~neutral !normal back">{{ .lang.Strings.back }}</span>
|
|
<div>
|
|
<span class="button ~urge !normal next">{{ .lang.Strings.next }}</span>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="card ~neutral !low mb-1 unfocused">
|
|
<div class="row col flex center">
|
|
<span class="heading">{{ .lang.EndPage.finished }}</span>
|
|
</div>
|
|
<div class="row col flex center">
|
|
<p class="content">{{ .lang.EndPage.restartMessage }}</p>
|
|
</div>
|
|
<div class="row col flex center">
|
|
<span class="button ~neutral !normal back mr-1">{{ .lang.Strings.back }}</span>
|
|
<span class="button ~urge !normal" id="restart">{{ .lang.Strings.submit }}</span>
|
|
<span class="button ~urge !normal 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>
|
|
|