Files
recipe-importer/app/templates/settings.html
T
admin f600885b14 feat: initial recipe-importer application
Python/Flask web app that scrapes Hungarian recipe sites (mindmegette.hu)
and imports them into Mealie via its REST API. Includes dark-themed web UI
with editable preview, Dockerfile, build script, and docker-compose.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:52:46 +01:00

57 lines
2.0 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 resp = await fetch('/settings/test', { method: 'POST' });
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 %}