ikraamkb commited on
Commit
b3f0d65
ยท
verified ยท
1 Parent(s): 5a540b1

Update static/application.js

Browse files
Files changed (1) hide show
  1. static/application.js +25 -22
static/application.js CHANGED
@@ -115,12 +115,25 @@ async function handleSubmit() {
115
  selectedType = null;
116
  }
117
  */
 
118
  const inputField = document.querySelector(".qt input");
119
  const icons = document.querySelectorAll(".icons i");
120
  const convo = document.querySelector(".convo");
121
  const send = document.querySelector(".sendingQA");
 
 
 
 
 
 
 
 
 
 
 
 
 
122
 
123
- // Create hidden file inputs dynamically
124
  const imageInput = document.createElement("input");
125
  imageInput.type = "file";
126
  imageInput.accept = "image/*";
@@ -134,20 +147,9 @@ docInput.style.display = "none";
134
  document.body.appendChild(imageInput);
135
  document.body.appendChild(docInput);
136
 
137
- // Create audio toggle checkbox
138
- const audioToggle = document.createElement("div");
139
- audioToggle.innerHTML = `
140
- <label style="margin-left: 1rem;">
141
- ๐Ÿ”Š Play Audio Answer:
142
- <input type="checkbox" id="audioToggle" checked>
143
- </label>
144
- `;
145
- document.querySelector(".qt").appendChild(audioToggle);
146
-
147
  let selectedFile = null;
148
  let selectedType = null;
149
 
150
- // Icon click handlers
151
  icons[0].addEventListener("click", () => imageInput.click());
152
  icons[1].addEventListener("click", () => docInput.click());
153
  send.addEventListener("click", handleSubmit);
@@ -155,7 +157,7 @@ send.addEventListener("click", handleSubmit);
155
  imageInput.addEventListener("change", () => {
156
  selectedFile = imageInput.files[0];
157
  selectedType = "Image";
158
- showSelectedFile(selectedFile.name, "๐Ÿ–ผ๏ธ");
159
  });
160
 
161
  docInput.addEventListener("change", () => {
@@ -184,6 +186,7 @@ async function handleSubmit() {
184
  const formData = new FormData();
185
  formData.append("question", question);
186
  formData.append("file", selectedFile);
 
187
 
188
  const userBlock = document.createElement("div");
189
  userBlock.style.padding = "1rem";
@@ -211,7 +214,6 @@ async function handleSubmit() {
211
  });
212
 
213
  const result = await response.json();
214
-
215
  loadingBlock.remove();
216
 
217
  const answerBlock = document.createElement("div");
@@ -219,16 +221,17 @@ async function handleSubmit() {
219
  answerBlock.style.background = "#e1f7e1";
220
  answerBlock.style.borderRadius = "10px";
221
  answerBlock.style.margin = "1rem";
222
- answerBlock.innerHTML = `<strong>Answer:</strong> ${result.answer || result.error || "No response"}`;
223
- convo.appendChild(answerBlock);
224
-
225
- // Check audio toggle and play if available
226
- const playAudio = document.getElementById("audioToggle").checked;
227
- if (playAudio && result.audio_url) {
228
- const audioPlayer = new Audio(result.audio_url);
229
- audioPlayer.play();
230
  }
231
 
 
232
  } catch (error) {
233
  loadingBlock.remove();
234
 
 
115
  selectedType = null;
116
  }
117
  */
118
+ // frontend.js
119
  const inputField = document.querySelector(".qt input");
120
  const icons = document.querySelectorAll(".icons i");
121
  const convo = document.querySelector(".convo");
122
  const send = document.querySelector(".sendingQA");
123
+ const audioToggle = document.createElement("input");
124
+ audioToggle.type = "checkbox";
125
+ audioToggle.checked = true;
126
+ audioToggle.id = "audioToggle";
127
+ audioToggle.style.marginLeft = "1rem";
128
+
129
+ const audioLabel = document.createElement("label");
130
+ audioLabel.htmlFor = "audioToggle";
131
+ audioLabel.innerText = "๐Ÿ”Š Audio";
132
+ audioLabel.style.marginLeft = "0.5rem";
133
+
134
+ document.querySelector(".controls").appendChild(audioToggle);
135
+ document.querySelector(".controls").appendChild(audioLabel);
136
 
 
137
  const imageInput = document.createElement("input");
138
  imageInput.type = "file";
139
  imageInput.accept = "image/*";
 
147
  document.body.appendChild(imageInput);
148
  document.body.appendChild(docInput);
149
 
 
 
 
 
 
 
 
 
 
 
150
  let selectedFile = null;
151
  let selectedType = null;
152
 
 
153
  icons[0].addEventListener("click", () => imageInput.click());
154
  icons[1].addEventListener("click", () => docInput.click());
155
  send.addEventListener("click", handleSubmit);
 
157
  imageInput.addEventListener("change", () => {
158
  selectedFile = imageInput.files[0];
159
  selectedType = "Image";
160
+ showSelectedFile(selectedFile.name, "๐Ÿ—พ๏ธ");
161
  });
162
 
163
  docInput.addEventListener("change", () => {
 
186
  const formData = new FormData();
187
  formData.append("question", question);
188
  formData.append("file", selectedFile);
189
+ formData.append("audio", audioToggle.checked);
190
 
191
  const userBlock = document.createElement("div");
192
  userBlock.style.padding = "1rem";
 
214
  });
215
 
216
  const result = await response.json();
 
217
  loadingBlock.remove();
218
 
219
  const answerBlock = document.createElement("div");
 
221
  answerBlock.style.background = "#e1f7e1";
222
  answerBlock.style.borderRadius = "10px";
223
  answerBlock.style.margin = "1rem";
224
+ answerBlock.innerHTML = `<strong>Answer:</strong> ${result.answer}`;
225
+
226
+ if (result.audio_url) {
227
+ const audio = document.createElement("audio");
228
+ audio.controls = true;
229
+ audio.src = result.audio_url;
230
+ answerBlock.appendChild(document.createElement("br"));
231
+ answerBlock.appendChild(audio);
232
  }
233
 
234
+ convo.appendChild(answerBlock);
235
  } catch (error) {
236
  loadingBlock.remove();
237