Elements can now be reordered within the same container by dragging a row above or below another in the left-hand element tree.
23 lines
826 B
Python
23 lines
826 B
Python
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})
|