61 lines
3.2 KiB
HTML
61 lines
3.2 KiB
HTML
<!doctype html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>pve-confsync</title>
|
|
<link rel="icon" href="favicon.svg">
|
|
<link rel="stylesheet" href="style.css">
|
|
<script src="boot.js"></script>
|
|
</head>
|
|
<body class="login-page">
|
|
<div class="login-tools">
|
|
<div class="seg" role="radiogroup" id="langSwitch">
|
|
<button type="button" role="radio" data-lang="fr">FR</button>
|
|
<button type="button" role="radio" data-lang="en">EN</button>
|
|
</div>
|
|
<button id="themeBtn" class="icon-btn" type="button" data-i18n-title="theme" data-i18n-aria="theme">
|
|
<svg class="sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>
|
|
<svg class="moon" viewBox="0 0 24 24"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>
|
|
</button>
|
|
</div>
|
|
|
|
<main class="login-card">
|
|
<div class="brand">
|
|
<svg viewBox="0 0 32 32" aria-hidden="true"><rect width="32" height="32" rx="8"/><path d="M8.5 14.5a8 8 0 0 1 13.6-4.6M22.6 6v4.2h-4.2M23.5 17.5a8 8 0 0 1-13.6 4.6M9.4 26v-4.2h4.2"/></svg>
|
|
<span>pve-confsync</span>
|
|
</div>
|
|
<p class="muted" data-i18n="intro">Réplication de configuration Proxmox VE</p>
|
|
|
|
<form id="setupForm" class="setup-form" method="post" action="auth/setup" hidden>
|
|
<h2 data-i18n="setupTitle">Premier démarrage</h2>
|
|
<p data-i18n="setupIntro">La base est vide : créez le compte administrateur de pve-confsync.</p>
|
|
<label for="sUser" data-i18n="user">Utilisateur</label>
|
|
<input id="sUser" name="user" type="text" value="admin" autocomplete="username" autocapitalize="none" spellcheck="false" required>
|
|
<label for="sPass" data-i18n="pass">Mot de passe</label>
|
|
<input id="sPass" name="pass" type="password" autocomplete="new-password" minlength="12" required>
|
|
<label for="sPass2" data-i18n="pass2">Confirmation</label>
|
|
<input id="sPass2" name="pass2" type="password" autocomplete="new-password" minlength="12" required>
|
|
<p id="sErr" class="login-err" role="alert" hidden></p>
|
|
<button class="btn primary" type="submit" data-i18n="setupBtn">Créer le compte et continuer</button>
|
|
</form>
|
|
|
|
<a id="ssoBtn" class="btn primary" href="auth/oidc" hidden data-i18n="sso">Se connecter avec le SSO</a>
|
|
<div id="sep" class="login-sep" hidden data-i18n="or">ou</div>
|
|
|
|
<form id="localForm" method="post" action="auth/login" hidden>
|
|
<input type="hidden" name="r" id="ret">
|
|
<label for="user" data-i18n="user">Utilisateur</label>
|
|
<input id="user" name="user" type="text" autocomplete="username" autocapitalize="none" spellcheck="false" required autofocus>
|
|
<label for="pass" data-i18n="pass">Mot de passe</label>
|
|
<input id="pass" name="pass" type="password" autocomplete="current-password" required>
|
|
<p id="err" class="login-err" role="alert" data-i18n="error" hidden>Utilisateur ou mot de passe incorrect.</p>
|
|
<button id="submitBtn" class="btn" type="submit" data-i18n="submit">Se connecter</button>
|
|
</form>
|
|
<p id="demoHint" class="demo-hint" hidden></p>
|
|
</main>
|
|
|
|
<script src="login.js"></script>
|
|
</body>
|
|
</html>
|