Files
recipe-importer/app/templates/settings.html
T
admin 92912c5890 fix: test connection reads form values instead of saved config
The "Kapcsolat tesztelése" button sent an empty POST to /settings/test,
which read from the (possibly empty) config file on disk. Now sends the
current form values so testing works before clicking Save.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:53:11 +01:00

58 lines
2.1 KiB
HTML

{% extends "base.html" %}
{% block title %}Beállítások — Recept Importáló{% endblock %}
{% block content %}
<div class="card">
<h2>Mealie kapcsolat</h2>
<form method="POST" action="/settings">
<label for="mealie_url">Mealie URL</label>
<input type="url" id="mealie_url" name="mealie_url"
value="{{ cfg.mealie_url }}"
placeholder="https://mealie.example.com">
<label for="mealie_api_key">API kulcs</label>
<input type="password" id="mealie_api_key" name="mealie_api_key"
value="{{ cfg.mealie_api_key }}"
placeholder="Mealie API token">
<p class="text-dim mb-2" style="font-size:0.85rem;">
Az API kulcsot a Mealie felhasználói profilod alatt hozhatod létre:
<em>Profil → API Tokenek</em>
</p>
<div class="flex">
<button type="submit" class="btn btn-primary">Mentés</button>
<button type="button" class="btn btn-secondary" id="testBtn" onclick="testConnection()">
Kapcsolat tesztelése
</button>
<span id="testResult"></span>
</div>
</form>
</div>
{% endblock %}
{% block scripts %}
<script>
async function testConnection() {
const btn = document.getElementById('testBtn');
const result = document.getElementById('testResult');
btn.disabled = true;
result.innerHTML = '<span class="spinner"></span>';
try {
const form = new FormData(document.querySelector('form'));
const resp = await fetch('/settings/test', { method: 'POST', body: form });
const data = await resp.json();
if (data.ok) {
const v = data.data.version || '?';
result.innerHTML = '<span class="text-success">✓ Kapcsolódva (Mealie v' + v + ')</span>';
} else {
result.innerHTML = '<span class="text-danger">✗ ' + data.error + '</span>';
}
} catch (e) {
result.innerHTML = '<span class="text-danger">✗ Hálózati hiba</span>';
}
btn.disabled = false;
}
</script>
{% endblock %}