Track-form unification: the "Add Language Track" dialog in the edit modal now
clones the same #um-track-form-template partial that the create modal uses, so
future tweaks to markup/CSS/behaviour show up in both flows automatically.
Added window.cloneTrackFormTemplate() + window.initTrackFormNode() as the
shared cloner+init. updateTrackCard() writes to both um-tc-*-{id} and
edit-tc-*-{id} ids so one helper serves both modals. Dropped the dead
#edit-extra-track-tpl and the custom editHandleTrackAudio (handleTrackAudio
auto-fills title identically).
Cover slides cropper fixes (both modals):
- Second batch no longer hangs. _slidesCropLoadNext now calls
openCropperModal_* BEFORE tcPreload_*; previously preloading first measured
canvas.clientWidth=0 against a display:none overlay and left _st.ready
false so Save silently returned.
- Reorder no longer loses thumbnails. Create flow stored raw Files and
spawned a FileReader per slide per render; under memory pressure some
readers failed silently. Now stores {file, url} with URL.createObjectURL
called once per slide, and renderSlidesStrip assigns img.src = url
directly. Removal revokes the URL; clear revokes everything it drops.
- Reset .value on the slides input after processing so re-selecting the
same filename still fires change.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>