fixed bug where translations were also broadcasted to other client and fixed bug where the same original and target language caused a 500 error
This commit is contained in:
parent
f4467c65fd
commit
b19a000729
|
@ -29,7 +29,8 @@ class PagesController < ApplicationController
|
||||||
translation.text.gsub!("'", "'")
|
translation.text.gsub!("'", "'")
|
||||||
ActionCable.server.broadcast "chat_room_#{params[:chat_room_id]}", {
|
ActionCable.server.broadcast "chat_room_#{params[:chat_room_id]}", {
|
||||||
translation: translation,
|
translation: translation,
|
||||||
input: params[:input]
|
input: params[:input],
|
||||||
|
userId: current_user.id
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ import ActionCable from 'actioncable'
|
||||||
|
|
||||||
// find chatroom id
|
// find chatroom id
|
||||||
const chatroomId = document.getElementById('chatroom-hook').dataset["chatroomId"]
|
const chatroomId = document.getElementById('chatroom-hook').dataset["chatroomId"]
|
||||||
|
const userId = document.getElementById('current-user').innerText
|
||||||
|
|
||||||
// create subsciptions
|
// create subsciptions
|
||||||
App['chatroom' + chatroomId] = App.cable.subscriptions.create({
|
App['chatroom' + chatroomId] = App.cable.subscriptions.create({
|
||||||
|
@ -25,14 +26,14 @@ App['chatroom' + chatroomId] = App.cable.subscriptions.create({
|
||||||
const message = document.createElement("p")
|
const message = document.createElement("p")
|
||||||
message.innerText = `${chatMessage["time_stamp"]} ${chatMessage["user_info"]["name"]}: ${chatMessage["message"]}`
|
message.innerText = `${chatMessage["time_stamp"]} ${chatMessage["user_info"]["name"]}: ${chatMessage["message"]}`
|
||||||
messagesContainer.appendChild(message)
|
messagesContainer.appendChild(message)
|
||||||
} else if (data["translation"]) {
|
} else if (data["translation"] && data["userId"] == userId) {
|
||||||
if (data["input"] == 1) {
|
if (data["input"] == 1) {
|
||||||
document.getElementById('language-2-input').value = data["translation"].text
|
document.getElementById('language-2-input').value = data["translation"].text
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('language-1-input').value = data["translation"].text
|
document.getElementById('language-1-input').value = data["translation"].text
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(data)
|
// console.log(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
const userId = document.getElementById('current-user').innerText
|
||||||
const languageForm1 = document.getElementById('lang-1')
|
const languageForm1 = document.getElementById('lang-1')
|
||||||
const languageForm2 = document.getElementById('lang-2')
|
const languageForm2 = document.getElementById('lang-2')
|
||||||
const chatroomId = document.getElementById('chatroom-hook').dataset["chatroomId"]
|
const chatroomId = document.getElementById('chatroom-hook').dataset["chatroomId"]
|
||||||
|
@ -8,16 +9,21 @@ languageForm1.addEventListener('submit', event => {
|
||||||
const target = document.getElementById('language-2').value
|
const target = document.getElementById('language-2').value
|
||||||
const text = document.getElementById('language-1-input').value
|
const text = document.getElementById('language-1-input').value
|
||||||
|
|
||||||
fetch(`/chat_rooms/${chatroomId}/translate` , {
|
if (original !== target) {
|
||||||
method: 'POST',
|
fetch(`/chat_rooms/${chatroomId}/translate` , {
|
||||||
body: JSON.stringify({
|
method: 'POST',
|
||||||
original,
|
body: JSON.stringify({
|
||||||
target,
|
original,
|
||||||
text,
|
target,
|
||||||
input: 1
|
text,
|
||||||
}),
|
input: 1,
|
||||||
headers: { "content-type": "application/json", "X-CSRF-Token": document.querySelector('meta[name=csrf-token]').content }
|
userId
|
||||||
})
|
}),
|
||||||
|
headers: { "content-type": "application/json", "X-CSRF-Token": document.querySelector('meta[name=csrf-token]').content }
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
document.getElementById('language-2-input').value = text
|
||||||
|
}
|
||||||
// post request and change form 1
|
// post request and change form 1
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -27,15 +33,19 @@ languageForm2.addEventListener('submit', event => {
|
||||||
const target = document.getElementById('language-1').value
|
const target = document.getElementById('language-1').value
|
||||||
const text = document.getElementById('language-2-input').value
|
const text = document.getElementById('language-2-input').value
|
||||||
// post request and change form 2
|
// post request and change form 2
|
||||||
|
if (original !== target) {
|
||||||
fetch(`/chat_rooms/${chatroomId}/translate` , {
|
fetch(`/chat_rooms/${chatroomId}/translate` , {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
original: original,
|
original: original,
|
||||||
target: target,
|
target: target,
|
||||||
text: text,
|
text: text,
|
||||||
input: 2
|
input: 2,
|
||||||
}),
|
userId
|
||||||
headers: { "content-type": "application/json", "X-CSRF-Token": document.querySelector('meta[name=csrf-token]').content }
|
}),
|
||||||
})
|
headers: { "content-type": "application/json", "X-CSRF-Token": document.querySelector('meta[name=csrf-token]').content }
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
document.getElementById('language-1-input').value = text
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue