first commit
Build and deploy / build-and-push (push) Successful in 17s
Build and deploy / deploy (push) Successful in 10s

This commit is contained in:
william
2026-08-21 16:23:49 +02:00
committed by william
commit 3f4ebc4527
248 changed files with 10180 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
from . import (
animation_clip_add,
animation_clip_update,
animation_clip_delete,
)
+19
View File
@@ -0,0 +1,19 @@
from flask import request, jsonify
import screens
from core.flask_app import app
@app.route("/game/<slug>/screens/<int:screen_id>/animations/clips/add", methods=["POST"])
def animation_clip_add(slug, screen_id):
"""Ajoute un clip d'animation (Animate.css ou personnalisé) sur la piste
d'un élément, dans le panneau timeline — appelé en AJAX, comme l'ajout
d'un nœud de logique."""
payload = request.get_json(force=True) or {}
element_id = payload.get("element_id")
if not element_id:
return jsonify({"error": "élément manquant"}), 400
fields = {k: v for k, v in payload.items() if k != "element_id"}
clip_id = screens.add_animation_clip(slug, screen_id, int(element_id), **fields)
return jsonify(screens.get_animation_clip(slug, clip_id))
@@ -0,0 +1,11 @@
from flask import jsonify
import screens
from core.flask_app import app
@app.route("/game/<slug>/animations/clips/<int:clip_id>/delete", methods=["POST"])
def animation_clip_delete(slug, clip_id):
screens.delete_animation_clip(slug, clip_id)
return jsonify({"ok": True})
@@ -0,0 +1,16 @@
from flask import request, jsonify
import screens
from core.flask_app import app
@app.route("/game/<slug>/animations/clips/<int:clip_id>/update", methods=["POST"])
def animation_clip_update(slug, clip_id):
"""Modifie un clip existant — glisser/redimensionner sur la timeline
n'envoie que start_time/duration, le formulaire d'édition peut envoyer
n'importe quel autre réglage (type, animation Animate.css, images-clés
personnalisées, délai, vitesse, répétitions)."""
payload = request.get_json(force=True) or {}
screens.update_animation_clip(slug, clip_id, **payload)
return jsonify(screens.get_animation_clip(slug, clip_id))