Add drag-and-drop reordering of sibling elements in the tree panel

Elements can now be reordered within the same container by dragging a row above or below another in the left-hand element tree.
This commit is contained in:
william
2026-08-24 08:43:36 +02:00
parent 17fa4cf087
commit 4b05301e2e
6 changed files with 160 additions and 1 deletions
+1
View File
@@ -2,6 +2,7 @@ from . import (
element_add,
element_add_child,
element_geometry,
element_reorder,
element_save,
element_delete,
element_duplicate,
+22
View File
@@ -0,0 +1,22 @@
from flask import request, jsonify, abort
import screens
from core.flask_app import app
@app.route("/game/<slug>/elements/<int:element_id>/reorder", methods=["POST"])
def element_reorder(slug, element_id):
"""Appelé en AJAX quand on glisse un élément au-dessus/en dessous d'un
autre DANS LA MÊME ARBORESCENCE (panneau de gauche) pour changer l'ordre
des éléments d'un même conteneur — voir reorder_element."""
element = screens.get_element(slug, element_id)
if not element:
abort(404)
data = request.get_json(force=True)
target_id = int(data["target_id"])
position = data.get("position")
if position not in ("before", "after"):
abort(400)
screens.reorder_element(slug, element["screen_id"], element_id, target_id, position)
return jsonify({"ok": True})