next step - added control.html and functions
This commit is contained in:
@@ -47,35 +47,69 @@ def index():
|
||||
return render_template('index.html', configs=configs)
|
||||
|
||||
|
||||
current_config = None
|
||||
current_filename = None
|
||||
|
||||
@app.route('/load_config/<filename>')
|
||||
def load_config(filename):
|
||||
# Später: Config in Session speichern oder global (für Entwicklung erstmal redirect)
|
||||
# Hier nur redirect zur Steuerseite – echte Logik kommt später
|
||||
global current_config, current_filename
|
||||
path = os.path.join(app.config['CONFIG_DIR'], filename)
|
||||
if not os.path.exists(path):
|
||||
return "Konfigurationsdatei nicht gefunden", 404
|
||||
|
||||
# Für den Moment nur redirect – später speichern wir current_config
|
||||
return redirect(url_for('control_page', filename=filename))
|
||||
try:
|
||||
with open(path, 'r', encoding='utf-8') as f:
|
||||
current_config = json.load(f)
|
||||
current_config['filename'] = filename
|
||||
current_filename = filename
|
||||
logger.info(f"Konfiguration geladen: {filename}")
|
||||
return redirect(url_for('control_page'))
|
||||
except Exception as e:
|
||||
logger.error(f"Fehler beim Laden der Config {filename}: {e}")
|
||||
return "Fehler beim Laden der Konfiguration", 500
|
||||
|
||||
|
||||
@app.route('/control/<filename>')
|
||||
def control_page(filename):
|
||||
# Später: Config laden und übergeben
|
||||
# Aktuell nur Dummy-Template
|
||||
return render_template('control.html', filename=filename)
|
||||
@app.route('/control')
|
||||
def control_page():
|
||||
if current_config is None:
|
||||
return redirect(url_for('index'))
|
||||
|
||||
return render_template('control.html', config=current_config)
|
||||
|
||||
|
||||
@app.route('/configs/<path:filename>')
|
||||
def serve_config_file(filename):
|
||||
"""Bilder und andere Dateien aus configs/ ausliefern"""
|
||||
return send_from_directory(app.config['CONFIG_DIR'], filename)
|
||||
# Neue API-Route (Platzhalter – später echte Bluetooth-Steuerung)
|
||||
@app.route('/api/connect', methods=['POST'])
|
||||
def api_connect():
|
||||
# Hier kommt später der echte Code mit MouldKing
|
||||
# Aktuell nur simuliert
|
||||
if current_config is None:
|
||||
return jsonify({"success": False, "message": "Keine Konfiguration geladen"}), 400
|
||||
|
||||
logger.info(f"Simulierter Connect zu Hub {current_config.get('hub_id')}")
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"message": "Verbunden (Simulation)",
|
||||
"hub_id": current_config.get('hub_id')
|
||||
})
|
||||
|
||||
|
||||
@app.route('/api/control', methods=['POST'])
|
||||
def api_control():
|
||||
# Platzhalter für spätere echte Steuerung
|
||||
data = request.get_json()
|
||||
logger.info(f"Steuerbefehl empfangen: {data}")
|
||||
return jsonify({"success": True, "message": "Befehl gesendet (Simulation)"})
|
||||
|
||||
|
||||
@app.route('/api/stop_all', methods=['POST'])
|
||||
def api_stop_all():
|
||||
logger.info("Alle stoppen (Simulation)")
|
||||
return jsonify({"success": True, "message": "Alle Kanäle gestoppt"})
|
||||
|
||||
@app.route('/admin')
|
||||
def admin():
|
||||
return render_template('admin.html')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0', port=5050, debug=True)
|
||||
app.run(host='0.0.0.0', port=5055, debug=True)
|
||||
|
||||
Reference in New Issue
Block a user