more modest ux

This commit is contained in:
2026-07-18 21:00:33 +02:00
parent 399f539b4f
commit 4a5ebc726e
5 changed files with 53 additions and 20 deletions
+2 -2
View File
@@ -4,8 +4,8 @@
{% block content %}
<section class="auth-layout">
<div class="intro">
<p class="eyebrow">A vase of your own</p>
<h1>Create a vault.</h1>
<p class="eyebrow">New vault</p>
<h1>Create a vault</h1>
<p>This uses the existing Flowers database structure so it remains readable by compatible installations.</p>
</div>
<form class="card form-card" action="{{ url_for('flower_vase.create') }}" method="post">
+3 -3
View File
@@ -6,9 +6,9 @@
{% block content %}
<section class="auth-layout">
<div class="intro">
<p class="eyebrow">Your private collection</p>
<h1>Credentials, kept close.</h1>
<p>Open your existing vault. Your encrypted records stay in the same database and format.</p>
<p class="eyebrow">Private vault</p>
<h1>Your credentials</h1>
<p>Sign in to open your encrypted records.</p>
</div>
<form class="card form-card" action="{{ url_for('flower_vase.application') }}" method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
+2 -2
View File
@@ -4,8 +4,8 @@
{% block content %}
<section class="auth-layout">
<div class="intro">
<p class="eyebrow">Re-encrypt your vault</p>
<h1>Change password.</h1>
<p class="eyebrow">Vault security</p>
<h1>Change password</h1>
<p>Every existing encrypted field will be rewritten with the new legacy-compatible key.</p>
</div>
<form class="card form-card" action="{{ url_for('flower_vase.update_pwd') }}" method="post">
+13 -2
View File
@@ -53,8 +53,19 @@
reveal.textContent = visible ? 'Hide' : 'Reveal';
});
copy.addEventListener('click', async () => {
await navigator.clipboard.writeText(secret.dataset.secret);
copy.textContent = 'Copied';
try {
await navigator.clipboard.writeText(secret.dataset.secret);
copy.textContent = 'Copied';
} catch (_) {
const field = document.createElement('textarea');
field.value = secret.dataset.secret;
field.style.position = 'fixed';
field.style.opacity = '0';
document.body.appendChild(field);
field.select();
copy.textContent = document.execCommand('copy') ? 'Copied' : 'Select and copy';
field.remove();
}
window.setTimeout(() => copy.textContent = 'Copy', 1400);
});
</script>