feat: mapping OTT par buckets drag-and-drop + sections imbriquées à l'import #187
Loading…
Reference in a new issue
No description provided.
Delete branch "testing"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
AdminStyles.jsx:
odtToTiptap.js:
templates.js:
AdminStyles.jsx: - Nouveau composant OttStyleBuckets — palette de styles à gauche, buckets par type de section à droite - Drag-and-drop HTML5 natif : les styles ODT se glissent dans la zone "headings" ou "content" de chaque type - Zone headings : ordre = profondeur de nesting (L1, L2…), flèches ↑↓ pour réordonner, × pour retirer - Zone content : style ODT + label éditable inline, × pour retirer - Le bucket n'apparaît que si des section_type_defs existent ET qu'un fichier OTT est chargé - saveTypeDefs enregistre le tableau complet (heading_styles + content_styles) via PUT /admin/styles/:id/section-type-defs odtToTiptap.js: - Étape 3 : construction de headingLookup (styleId → { typeIdx, depth }) et contentLookup depuis les typeDefs - Étape 4 : stack de profondeur (depthStack) pour nesting correct des sections lors de l'import - Chaque section retournée contient depth et parent_idx (index dans le tableau plat) - Fallback legacy : ott_mapping avec rôles section_heading_* toujours supporté templates.js: - Import ODT : UUIDs pré-alloués pour toutes les sections avant insertion - parent_idx résolu en parentId réel, positionMap par parent pour position correcte - Les sections imbriquées sont insérées dans l'ordre topologique (parent avant enfant)