HanningChen commited on
Commit
11d6c56
·
1 Parent(s): c5d818e

Fix js error

Browse files
Files changed (1) hide show
  1. webui/static/main.js +8 -18
webui/static/main.js CHANGED
@@ -33,7 +33,6 @@ const dlSelected = $("#dlSelected");
33
  const copyMetaBtn = $("#copyMetaBtn");
34
 
35
  function setStatus(kind, text, logLine) {
36
- // kind: idle | run | ok | bad
37
  statusDot.className = `dot ${kind}`;
38
  statusText.textContent = text;
39
  if (logLine) statusLog.textContent = logLine + "\n" + statusLog.textContent;
@@ -101,10 +100,8 @@ dropzone.addEventListener("drop", (e) => {
101
  const file = e.dataTransfer.files && e.dataTransfer.files[0];
102
  if (!file) return;
103
 
104
- // Set preview
105
  setPreview(file);
106
 
107
- // Safely assign to input (works across browsers)
108
  const dt = new DataTransfer();
109
  dt.items.add(file);
110
  fileInput.files = dt.files;
@@ -142,40 +139,33 @@ form.addEventListener("submit", async (e) => {
142
 
143
  try {
144
  const resp = await fetch("/api/run", { method: "POST", body: fd });
145
- // const data = await resp.json();
146
- const text = await res.text();
 
147
  let data;
148
  try {
149
  data = JSON.parse(text);
150
- } catch (e) {
151
- // Not JSON => show raw response
152
- throw new Error(`Server returned non-JSON (${res.status}): ${text.slice(0, 300)}`);
153
  }
154
 
155
- if (!res.ok || data.ok === false) {
156
- throw new Error(data.error || `Request failed: ${res.status}`);
157
- }
158
-
159
- if (!resp.ok || !data.ok) {
160
- throw new Error(data?.error || `HTTP ${resp.status}`);
161
  }
162
 
163
  jobPill.textContent = `job: ${data.job_id}`;
164
  setStatus("ok", "Done", `Inference finished. job_id=${data.job_id}`);
165
 
166
- // Update images (cache-bust)
167
  const bust = `t=${Date.now()}`;
168
  imgInput.src = `${data.image_urls.input}?${bust}`;
169
  imgYolo.src = `${data.image_urls.yolo}?${bust}`;
170
  imgSelected.src = `${data.image_urls.selected}?${bust}`;
171
 
172
- // Open links
173
  dlInput.href = data.image_urls.input;
174
  dlYolo.href = data.image_urls.yolo;
175
  dlSelected.href = data.image_urls.selected;
176
  [dlInput, dlYolo, dlSelected].forEach(a => a.classList.remove("hidden"));
177
 
178
- // Meta
179
  meta.textContent = JSON.stringify({
180
  task_id: data.task_id,
181
  task_name: data.task_name,
@@ -188,4 +178,4 @@ if (!res.ok || data.ok === false) {
188
  } finally {
189
  setRunning(false);
190
  }
191
- });
 
33
  const copyMetaBtn = $("#copyMetaBtn");
34
 
35
  function setStatus(kind, text, logLine) {
 
36
  statusDot.className = `dot ${kind}`;
37
  statusText.textContent = text;
38
  if (logLine) statusLog.textContent = logLine + "\n" + statusLog.textContent;
 
100
  const file = e.dataTransfer.files && e.dataTransfer.files[0];
101
  if (!file) return;
102
 
 
103
  setPreview(file);
104
 
 
105
  const dt = new DataTransfer();
106
  dt.items.add(file);
107
  fileInput.files = dt.files;
 
139
 
140
  try {
141
  const resp = await fetch("/api/run", { method: "POST", body: fd });
142
+
143
+ // Read as text first so we can show raw errors if not JSON
144
+ const text = await resp.text();
145
  let data;
146
  try {
147
  data = JSON.parse(text);
148
+ } catch {
149
+ throw new Error(`Server returned non-JSON (HTTP ${resp.status}): ${text.slice(0, 300)}`);
 
150
  }
151
 
152
+ if (!resp.ok || data.ok === false) {
153
+ throw new Error(data.error || `Request failed: HTTP ${resp.status}`);
 
 
 
 
154
  }
155
 
156
  jobPill.textContent = `job: ${data.job_id}`;
157
  setStatus("ok", "Done", `Inference finished. job_id=${data.job_id}`);
158
 
 
159
  const bust = `t=${Date.now()}`;
160
  imgInput.src = `${data.image_urls.input}?${bust}`;
161
  imgYolo.src = `${data.image_urls.yolo}?${bust}`;
162
  imgSelected.src = `${data.image_urls.selected}?${bust}`;
163
 
 
164
  dlInput.href = data.image_urls.input;
165
  dlYolo.href = data.image_urls.yolo;
166
  dlSelected.href = data.image_urls.selected;
167
  [dlInput, dlYolo, dlSelected].forEach(a => a.classList.remove("hidden"));
168
 
 
169
  meta.textContent = JSON.stringify({
170
  task_id: data.task_id,
171
  task_name: data.task_name,
 
178
  } finally {
179
  setRunning(false);
180
  }
181
+ });