Update app.py
Browse files
app.py
CHANGED
|
@@ -100,6 +100,7 @@ warmup_state: Dict[str, Any] = {
|
|
| 100 |
"running": False,
|
| 101 |
"percent": 0,
|
| 102 |
"logs": [],
|
|
|
|
| 103 |
"done": False,
|
| 104 |
"current": None,
|
| 105 |
"total": 0,
|
|
@@ -910,6 +911,46 @@ HTML_TEMPLATE = r"""
|
|
| 910 |
<button id="launchSelectedBtn" class="btn">Lancer la préparation</button>
|
| 911 |
</div>
|
| 912 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 913 |
|
| 914 |
|
| 915 |
// >>> A2B2_BEGIN warmup_dom
|
|
|
|
| 100 |
"running": False,
|
| 101 |
"percent": 0,
|
| 102 |
"logs": [],
|
| 103 |
+
"ok_count": 0,
|
| 104 |
"done": False,
|
| 105 |
"current": None,
|
| 106 |
"total": 0,
|
|
|
|
| 911 |
<button id="launchSelectedBtn" class="btn">Lancer la préparation</button>
|
| 912 |
</div>
|
| 913 |
</div>
|
| 914 |
+
<!-- >>> A2B2_END warmup_popup -->
|
| 915 |
+
<div id="toast"></div>
|
| 916 |
+
<script>
|
| 917 |
+
const serverVid = "__VID__";
|
| 918 |
+
const serverMsg = "__MSG__";
|
| 919 |
+
document.getElementById('msg').textContent = serverMsg;
|
| 920 |
+
|
| 921 |
+
// Références DOM globales pour l’éditeur (nécessaires à tout le code en dessous)
|
| 922 |
+
const statusEl = document.getElementById('status');
|
| 923 |
+
const player = document.getElementById('player');
|
| 924 |
+
const srcEl = document.getElementById('vidsrc');
|
| 925 |
+
const canvas = document.getElementById('editCanvas');
|
| 926 |
+
const ctx = canvas.getContext('2d');
|
| 927 |
+
const modeLabel = document.getElementById('modeLabel');
|
| 928 |
+
const btnEdit = document.getElementById('btnEdit');
|
| 929 |
+
const btnBack = document.getElementById('btnBack');
|
| 930 |
+
const btnSave = document.getElementById('btnSave');
|
| 931 |
+
const btnClear = document.getElementById('btnClear');
|
| 932 |
+
const posInfo = document.getElementById('posInfo');
|
| 933 |
+
const goFrame = document.getElementById('goFrame');
|
| 934 |
+
const palette = document.getElementById('palette');
|
| 935 |
+
const fileList = document.getElementById('fileList');
|
| 936 |
+
const tlBox = document.getElementById('timeline');
|
| 937 |
+
const tlNote = document.getElementById('tlNote');
|
| 938 |
+
const playerWrap = document.getElementById('playerWrap');
|
| 939 |
+
const loadingInd = document.getElementById('loading-indicator');
|
| 940 |
+
const isolerBoucle = document.getElementById('isolerBoucle');
|
| 941 |
+
const resetFull = document.getElementById('resetFull');
|
| 942 |
+
const endPortion = document.getElementById('endPortion');
|
| 943 |
+
const popup = document.getElementById('popup');
|
| 944 |
+
const popupLogs = document.getElementById('popup-logs');
|
| 945 |
+
const tlProgressFill = document.getElementById('tl-progress-fill');
|
| 946 |
+
const popupProgressFill = document.getElementById('popup-progress-fill');
|
| 947 |
+
const btnFollow = document.getElementById('btnFollow');
|
| 948 |
+
const btnFilterMasked = document.getElementById('btnFilterMasked');
|
| 949 |
+
const zoomSlider = document.getElementById('zoomSlider');
|
| 950 |
+
const maskedCount = document.getElementById('maskedCount');
|
| 951 |
+
const hud = document.getElementById('hud');
|
| 952 |
+
const toastWrap = document.getElementById('toast');
|
| 953 |
+
const gotoInput = document.getElementById('gotoInput');
|
| 954 |
|
| 955 |
|
| 956 |
// >>> A2B2_BEGIN warmup_dom
|