Skip to content

Commit f0c7399

Browse files
authored
Update home.ejs version
1 parent 24fba91 commit f0c7399

File tree

1 file changed

+48
-4
lines changed

1 file changed

+48
-4
lines changed

views/home.ejs

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,13 @@
3131
</div>
3232
<% }) %>
3333
</div>
34-
<form action="add" method="post" id="question-form">
35-
<input type="text" placeholder="Send a message." name="inputQuestion" value="" id="input-question">
36-
<button type="submit" onclick="this.innerHTML = '<i class=\'fa fa-spinner fa-pulse\'></i>';"><i class="fa fa-paper-plane"></i></button>
37-
</form>
34+
<div class="messaging">
35+
<button onclick="onRecordButtonClick();" id="mic-btn"><i class="fa fa-microphone"></i></button>
36+
<form action="add" method="post" id="question-form">
37+
<input type="text" placeholder="Send a message." name="inputQuestion" value="" id="input-question">
38+
<button type="submit" onclick="this.innerHTML = '<i class=\'fa fa-spinner fa-pulse\'></i>';" id="question-send-btn"><i class="fa fa-paper-plane"></i></button>
39+
</form>
40+
</div>
3841
</div>
3942
<div class="settings-nav" id="settings-div">
4043
<div class="settings-nav-inside">
@@ -48,6 +51,12 @@
4851
</div>
4952
</div>
5053
<script>
54+
// Updates the chat div such that it is at the bottom always (or rather every millisecond) so that user need not scroll each time new answer.
55+
window.setInterval(function() {
56+
var elem = document.getElementById("chat");
57+
elem.scrollTop = elem.scrollHeight;
58+
}, 1);
59+
5160
5261
function speak() {
5362
var unescaped_answer = new DOMParser().parseFromString("<%= data[data.length - 1].answer%>", "text/html").documentElement.textContent;
@@ -77,6 +86,41 @@
7786
}
7887
7988
89+
function onRecordButtonClick() {
90+
var micButton = document.getElementById("mic-btn");
91+
micButton.style.backgroundColor = "red";
92+
micButton.style.color = "white";
93+
micButton.style.border = "1.5px solid red";
94+
micButton.style.borderRadius = "50%";
95+
96+
97+
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition;
98+
var recognition = new SpeechRecognition();
99+
100+
recognition.onstart = function() {
101+
102+
};
103+
104+
recognition.onspeechend = function() {
105+
recognition.stop();
106+
micButton.style.backgroundColor = "#f7f7f8";
107+
micButton.style.color = "gray";
108+
micButton.style.border = "1.5px solid #dededf";
109+
micButton.style.borderRadius = "15%";
110+
};
111+
112+
113+
recognition.onresult = function(event) {
114+
var transcript = event.results[0][0].transcript;
115+
var confidence = event.results[0][0].confidence;
116+
document.getElementById("input-question").value = transcript;
117+
document.getElementById("question-send-btn").click();
118+
};
119+
120+
recognition.start(); // start recognition
121+
}
122+
123+
80124
function openSettings() {
81125
document.getElementById("settings-div").style.visibility = "visible";
82126
}

0 commit comments

Comments
 (0)