fizzarif7 commited on
Commit
0bcda00
·
verified ·
1 Parent(s): 542275f

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +46 -26
script.js CHANGED
@@ -13,8 +13,8 @@ function updateHistory(userQuestion, botAnswer) {
13
 
14
  // Handle Generate button click
15
  document.getElementById("generateBtn").addEventListener("click", async () => {
16
- const questionInput = document.getElementById("question"); // Changed from questionInput
17
- const answerOutput = document.getElementById("answer"); // Changed from responseOutput
18
  const question = questionInput.value.trim();
19
 
20
  if (!question) {
@@ -56,6 +56,14 @@ function resetApp() {
56
  document.getElementById("answer").value = "";
57
  document.getElementById("topLabel").innerText = "Dictate your legal question!";
58
  document.getElementById("history").value = ""; // Clear history on reset
 
 
 
 
 
 
 
 
59
  }
60
 
61
  // Handle Read Aloud (using Web Speech API)
@@ -72,7 +80,7 @@ function readAloud() {
72
  synth.speak(utterance);
73
  }
74
 
75
- // Handle Save/Print
76
  function saveQA() {
77
  const question = document.getElementById("question").value.trim();
78
  const answer = document.getElementById("answer").value.trim();
@@ -82,14 +90,22 @@ function saveQA() {
82
  return;
83
  }
84
 
85
- const blob = new Blob([`Question:\n${question}\n\nAnswer:\n${answer}`], { type: "text/plain" });
86
- const link = document.createElement("a");
87
- link.href = URL.createObjectURL(blob);
88
- link.download = "Legal_Assistant_QnA.txt";
89
- document.body.appendChild(link);
90
- link.click();
91
- document.body.removeChild(link);
92
- URL.revokeObjectURL(link.href); // Clean up the URL object
 
 
 
 
 
 
 
 
93
  }
94
 
95
  // Handle Upload MP3
@@ -128,7 +144,7 @@ async function uploadMP3() {
128
  document.getElementById("question").value = transcription; // Put transcription in question box
129
  document.getElementById("answer").value = "Transcription complete. You can now summarize or generate an answer.";
130
 
131
- // Optional: Prompt user to summarize or generate an answer
132
  const summarizeConfirm = confirm("MP3 transcribed. Do you want to summarize it?");
133
  if (summarizeConfirm) {
134
  const summaryRes = await fetch("/summarize", {
@@ -173,8 +189,6 @@ function handleDictate() {
173
  if (recognition && (recognition.recognizing || recognition.continuous)) {
174
  recognition.stop();
175
  document.getElementById("topLabel").innerText = "Dictate your legal question!";
176
- // If you want to automatically trigger answer generation after stopping dictation:
177
- // document.getElementById("generateBtn").click();
178
  return;
179
  }
180
 
@@ -216,18 +230,24 @@ function handleDictate() {
216
  document.addEventListener("DOMContentLoaded", () => {
217
  // The existing event listener for "generateBtn" is already set up.
218
  // Ensure the button IDs in HTML match what's used in JS.
219
- // current IDs:
220
- // Dictate: handleDictate()
221
- // Generate Response: generateAnswer() -> now mapped to generateBtn click event
222
- // Read Aloud: readAloud()
223
- // Upload MP3: uploadMP3()
224
- // Save/Print: saveQA()
225
- // Reset: resetApp()
226
-
227
- // Add event listeners for other buttons if they don't have inline onclick
228
- // For example, if you replace onclick="generateAnswer()" with id="generateBtn"
229
- // then the document.getElementById("generateBtn").addEventListener("click", ...) handles it.
230
 
231
  // If your HTML buttons use onclick, make sure the function names match these JS functions.
232
- // Example: <button onclick="handleDictate()">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
  });
 
13
 
14
  // Handle Generate button click
15
  document.getElementById("generateBtn").addEventListener("click", async () => {
16
+ const questionInput = document.getElementById("question");
17
+ const answerOutput = document.getElementById("answer");
18
  const question = questionInput.value.trim();
19
 
20
  if (!question) {
 
56
  document.getElementById("answer").value = "";
57
  document.getElementById("topLabel").innerText = "Dictate your legal question!";
58
  document.getElementById("history").value = ""; // Clear history on reset
59
+
60
+ // Stop any ongoing speech or recognition
61
+ if (window.speechSynthesis && window.speechSynthesis.speaking) {
62
+ window.speechSynthesis.cancel();
63
+ }
64
+ if (window.recognition && (window.recognition.recognizing || window.recognition.continuous)) {
65
+ window.recognition.stop();
66
+ }
67
  }
68
 
69
  // Handle Read Aloud (using Web Speech API)
 
80
  synth.speak(utterance);
81
  }
82
 
83
+ // Handle Save/Print with confirmation dialog
84
  function saveQA() {
85
  const question = document.getElementById("question").value.trim();
86
  const answer = document.getElementById("answer").value.trim();
 
90
  return;
91
  }
92
 
93
+ // Ask for confirmation
94
+ const confirmSave = confirm("Are you sure you want to save this Q&A?");
95
+
96
+ if (confirmSave) {
97
+ const blob = new Blob([`Question:\n${question}\n\nAnswer:\n${answer}`], { type: "text/plain" });
98
+ const link = document.createElement("a");
99
+ link.href = URL.createObjectURL(blob);
100
+ link.download = "Legal_Assistant_QnA.txt";
101
+ document.body.appendChild(link);
102
+ link.click();
103
+ document.body.removeChild(link);
104
+ URL.revokeObjectURL(link.href); // Clean up the URL object
105
+ alert("Q&A saved successfully!");
106
+ } else {
107
+ alert("Save operation cancelled.");
108
+ }
109
  }
110
 
111
  // Handle Upload MP3
 
144
  document.getElementById("question").value = transcription; // Put transcription in question box
145
  document.getElementById("answer").value = "Transcription complete. You can now summarize or generate an answer.";
146
 
147
+ // Prompt user to summarize or generate an answer
148
  const summarizeConfirm = confirm("MP3 transcribed. Do you want to summarize it?");
149
  if (summarizeConfirm) {
150
  const summaryRes = await fetch("/summarize", {
 
189
  if (recognition && (recognition.recognizing || recognition.continuous)) {
190
  recognition.stop();
191
  document.getElementById("topLabel").innerText = "Dictate your legal question!";
 
 
192
  return;
193
  }
194
 
 
230
  document.addEventListener("DOMContentLoaded", () => {
231
  // The existing event listener for "generateBtn" is already set up.
232
  // Ensure the button IDs in HTML match what's used in JS.
 
 
 
 
 
 
 
 
 
 
 
233
 
234
  // If your HTML buttons use onclick, make sure the function names match these JS functions.
235
+ // The current index.html uses onclick for all buttons:
236
+ // <button onclick="handleDictate()">🎙 Dictate</button>
237
+ // <button onclick="generateAnswer()">🧾 Generate Response</button>
238
+ // <button onclick="readAloud()">🔊 Read Aloud</button>
239
+ // <button onclick="uploadMP3()">🎵 Upload MP3</button>
240
+ // <button onclick="saveQA()">🖨 Save/Print</button>
241
+ // <button onclick="resetApp()">🧹 Reset</button>
242
+
243
+ // Important: Your index.html currently has `onclick="generateAnswer()"`.
244
+ // For the `document.getElementById("generateBtn").addEventListener("click", ...)`
245
+ // in script.js to work, you need to change the HTML button to have an `id="generateBtn"`
246
+ // instead of `onclick="generateAnswer()"`.
247
+ // So, in index.html, change:
248
+ // <button onclick="generateAnswer()">🧾 Generate Response</button>
249
+ // TO:
250
+ // <button id="generateBtn">🧾 Generate Response</button>
251
+ // The current script.js is already set up to listen to an ID.
252
+
253
  });