ikraamkb commited on
Commit
6b4645b
·
verified ·
1 Parent(s): be9050c

Update static/appS.js

Browse files
Files changed (1) hide show
  1. static/appS.js +16 -25
static/appS.js CHANGED
@@ -11,7 +11,7 @@ document.addEventListener('DOMContentLoaded', () => {
11
  let selectedFile = null;
12
  let filePreviewBubble = null;
13
 
14
- // Mode switching handler
15
  document.querySelectorAll('.select-options input[type="radio"]').forEach(radio => {
16
  radio.addEventListener('change', (e) => {
17
  if (e.target.checked) {
@@ -41,8 +41,13 @@ document.addEventListener('DOMContentLoaded', () => {
41
  });
42
 
43
  // File upload handlers
44
- fileBtn.addEventListener('click', () => fileUpload.click());
45
- imageBtn.addEventListener('click', () => imageUpload.click());
 
 
 
 
 
46
 
47
  fileUpload.addEventListener('change', (e) => {
48
  if (e.target.files.length) {
@@ -131,27 +136,7 @@ document.addEventListener('DOMContentLoaded', () => {
131
  }
132
 
133
  const isSummarizeMode = document.querySelector('input[name="option"]:checked').value === 'Summarize';
134
- const endpoint = isSummarizeMode ? '/summarize/' : '/imagecaption/';
135
 
136
- // Validate file type based on mode
137
- if (isSummarizeMode) {
138
- const validDocTypes = ['application/pdf',
139
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
140
- 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
141
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
142
-
143
- if (!validDocTypes.includes(selectedFile.type)) {
144
- alert('Please select a valid document (PDF, DOCX, PPTX, or XLSX)');
145
- return;
146
- }
147
- } else {
148
- const validImageTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
149
- if (!validImageTypes.includes(selectedFile.type)) {
150
- alert('Please select a valid image (JPEG, PNG, GIF, or WEBP)');
151
- return;
152
- }
153
- }
154
-
155
  // User message
156
  createMessageBubble(
157
  isSummarizeMode ? "Please summarize this document" : "Please caption this image",
@@ -168,9 +153,14 @@ document.addEventListener('DOMContentLoaded', () => {
168
  const formData = new FormData();
169
  formData.append('file', selectedFile);
170
 
 
 
171
  if (isSummarizeMode) {
172
  const length = document.querySelector('input[name="optionS"]:checked').value;
173
  formData.append('length', length);
 
 
 
174
  }
175
 
176
  const response = await fetch(endpoint, {
@@ -179,10 +169,11 @@ document.addEventListener('DOMContentLoaded', () => {
179
  });
180
 
181
  if (!response.ok) {
182
- throw new Error(`HTTP error! status: ${response.status}`);
 
183
  }
184
 
185
- const result = await response.json();
186
  console.log("API Response:", result);
187
 
188
  // Replace thinking message with actual result
 
11
  let selectedFile = null;
12
  let filePreviewBubble = null;
13
 
14
+ // Initialize mode switching
15
  document.querySelectorAll('.select-options input[type="radio"]').forEach(radio => {
16
  radio.addEventListener('change', (e) => {
17
  if (e.target.checked) {
 
41
  });
42
 
43
  // File upload handlers
44
+ fileBtn.addEventListener('click', () => {
45
+ fileUpload.click();
46
+ });
47
+
48
+ imageBtn.addEventListener('click', () => {
49
+ imageUpload.click();
50
+ });
51
 
52
  fileUpload.addEventListener('change', (e) => {
53
  if (e.target.files.length) {
 
136
  }
137
 
138
  const isSummarizeMode = document.querySelector('input[name="option"]:checked').value === 'Summarize';
 
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  // User message
141
  createMessageBubble(
142
  isSummarizeMode ? "Please summarize this document" : "Please caption this image",
 
153
  const formData = new FormData();
154
  formData.append('file', selectedFile);
155
 
156
+ let endpoint, result;
157
+
158
  if (isSummarizeMode) {
159
  const length = document.querySelector('input[name="optionS"]:checked').value;
160
  formData.append('length', length);
161
+ endpoint = '/summarize/';
162
+ } else {
163
+ endpoint = '/imagecaption/';
164
  }
165
 
166
  const response = await fetch(endpoint, {
 
169
  });
170
 
171
  if (!response.ok) {
172
+ const errorData = await response.json();
173
+ throw new Error(errorData.detail || `HTTP error! status: ${response.status}`);
174
  }
175
 
176
+ result = await response.json();
177
  console.log("API Response:", result);
178
 
179
  // Replace thinking message with actual result