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:
@@ -2,6 +2,7 @@ from . import (
|
||||
element_add,
|
||||
element_add_child,
|
||||
element_geometry,
|
||||
element_reorder,
|
||||
element_save,
|
||||
element_delete,
|
||||
element_duplicate,
|
||||
|
||||
@@ -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})
|
||||
Reference in New Issue
Block a user