Docfile commited on
Commit
bcaaf1e
·
verified ·
1 Parent(s): b53d6b9

Update templates/index.html

Browse files
Files changed (1) hide show
  1. templates/index.html +31 -23
templates/index.html CHANGED
@@ -159,7 +159,7 @@
159
  </div>
160
 
161
  <script>
162
- document.getElementById('image-input').addEventListener('change', async function (e) {
163
  const file = e.target.files[0];
164
  if (file) {
165
  // Show preview
@@ -175,42 +175,50 @@
175
  document.getElementById('loading').classList.remove('hidden');
176
  document.getElementById('result-container').classList.add('hidden');
177
  document.getElementById('result').classList.add('math-hidden');
 
178
 
179
- try {
180
- const formData = new FormData();
181
- formData.append('image', file);
182
 
183
- const response = await fetch('/generate', {
184
- method: 'POST',
185
- body: formData
186
- });
187
 
188
- const data = await response.json();
189
 
 
190
  // Hide loading
191
  document.getElementById('loading').classList.add('hidden');
192
 
193
  // Show result
194
  document.getElementById('result-container').classList.remove('hidden');
195
- // Utiliser marked pour convertir le markdown en HTML
196
- document.getElementById('result').innerHTML = marked.parse(data.result);
 
 
 
 
 
 
 
 
197
 
198
  // Rendre les maths avec MathJax
199
  MathJax.typesetPromise([document.getElementById('result')])
200
- .then(() => {
201
- document.getElementById('result').classList.remove('math-hidden');
202
- })
203
- .catch((err) => {
204
- console.error('Erreur MathJax:', err);
205
- document.getElementById('result').innerHTML = "Erreur lors du rendu des mathématiques.";
206
- document.getElementById('result').classList.remove('math-hidden');
207
- });
 
208
 
209
- } catch (error) {
210
- console.error('Erreur:', error);
211
  document.getElementById('loading').classList.add('hidden');
212
- alert('Une erreur est survenue lors du traitement de l\'image.');
213
- }
 
214
  }
215
  });
216
  </script>
 
159
  </div>
160
 
161
  <script>
162
+ document.getElementById('image-input').addEventListener('change', function (e) {
163
  const file = e.target.files[0];
164
  if (file) {
165
  // Show preview
 
175
  document.getElementById('loading').classList.remove('hidden');
176
  document.getElementById('result-container').classList.add('hidden');
177
  document.getElementById('result').classList.add('math-hidden');
178
+ document.getElementById('result').innerHTML = '';
179
 
180
+ const formData = new FormData();
181
+ formData.append('image', file);
 
182
 
183
+ const eventSource = new EventSource('/generate?' + new URLSearchParams(formData));
 
 
 
184
 
185
+ let completeResponse = '';
186
 
187
+ eventSource.onmessage = function (event) {
188
  // Hide loading
189
  document.getElementById('loading').classList.add('hidden');
190
 
191
  // Show result
192
  document.getElementById('result-container').classList.remove('hidden');
193
+
194
+ if (event.data.startsWith('Error:')) {
195
+ console.error('Erreur:', event.data);
196
+ document.getElementById('result').innerHTML = event.data;
197
+ eventSource.close();
198
+ return;
199
+ }
200
+
201
+ completeResponse += event.data;
202
+ document.getElementById('result').innerHTML = marked.parse(completeResponse);
203
 
204
  // Rendre les maths avec MathJax
205
  MathJax.typesetPromise([document.getElementById('result')])
206
+ .then(() => {
207
+ document.getElementById('result').classList.remove('math-hidden');
208
+ })
209
+ .catch((err) => {
210
+ console.error('Erreur MathJax:', err);
211
+ document.getElementById('result').innerHTML = "Erreur lors du rendu des mathématiques.";
212
+ document.getElementById('result').classList.remove('math-hidden');
213
+ });
214
+ };
215
 
216
+ eventSource.onerror = function (err) {
217
+ console.error('EventSource failed:', err);
218
  document.getElementById('loading').classList.add('hidden');
219
+ document.getElementById('result').innerHTML = "Une erreur est survenue lors du traitement de l'image.";
220
+ eventSource.close();
221
+ };
222
  }
223
  });
224
  </script>