code more readable, and fix chat
This commit is contained in:
parent
5bc847ad88
commit
3f63e4a571
@ -13,19 +13,19 @@ export default class extends AbstractView {
|
||||
let profiles = await client.profiles.all();
|
||||
|
||||
let search = document.getElementById("input_user");
|
||||
search.oninput = () => this.users(logged, profiles);
|
||||
search.oninput = () => this.display_users(logged, profiles);
|
||||
|
||||
let chat_input = document.getElementById("input_chat");
|
||||
//chat_input.addEventListener("keydown", this.chat_manager)
|
||||
//chat_input.addEventListener("keydown", this.display_chat_manager)
|
||||
|
||||
this.last_add_chat = undefined;
|
||||
|
||||
this.users(logged, profiles);
|
||||
this.chat(logged, profiles);
|
||||
this.display_users(logged, profiles);
|
||||
this.display_chat(logged, profiles);
|
||||
|
||||
}
|
||||
|
||||
async users(logged, profiles) {
|
||||
async display_users(logged, profiles) {
|
||||
|
||||
let search = document.getElementById("input_user").value.toLowerCase();
|
||||
|
||||
@ -50,27 +50,29 @@ export default class extends AbstractView {
|
||||
// space
|
||||
new_user.appendChild(document.createTextNode(" "));
|
||||
|
||||
// chat
|
||||
// button chat
|
||||
if (logged && client.me.id != user.id) {
|
||||
let add_chat = document.createElement("a");
|
||||
add_chat.id = "add_chat_off";
|
||||
add_chat.onclick = async () => {
|
||||
if (client.channels.channel != undefined) {
|
||||
|
||||
// Permet de savoir si c'est le même channel
|
||||
// Check to know if it's the same channel
|
||||
client.channels.channel.members_id.forEach((member_id) => {
|
||||
if (member_id == user.user_id)
|
||||
if (member_id == user.id)
|
||||
client.channels.channel = undefined;
|
||||
});
|
||||
|
||||
if (client.channels.channel == undefined) {
|
||||
add_chat.id = "add_chat_off";
|
||||
this.last_add_chat = undefined;
|
||||
return await this.hideChat();
|
||||
return await this.hide_chat();
|
||||
}
|
||||
|
||||
await client.channels.channel.disconnect();
|
||||
}
|
||||
client.channels.channel = await client.channels.createChannel([client.me.id , user.id], () => this.chat(logged, profiles));
|
||||
this.chat(logged, profiles);
|
||||
client.channels.channel = await client.channels.createChannel([client.me.id , user.id], () => this.reload_display_messages());
|
||||
this.display_chat(logged, profiles);
|
||||
if (this.last_add_chat != undefined)
|
||||
this.last_add_chat.id = "add_chat_off";
|
||||
this.last_add_chat = add_chat;
|
||||
@ -98,9 +100,9 @@ export default class extends AbstractView {
|
||||
|
||||
}
|
||||
|
||||
async chat(logged, profiles)
|
||||
async display_chat(logged, profiles)
|
||||
{
|
||||
let reloads = ["members"];
|
||||
let reloads = ["members", "messages"];
|
||||
reloads.forEach(reload => {
|
||||
if (document.getElementById(reload) != undefined)
|
||||
document.getElementById(reload).remove();
|
||||
@ -117,46 +119,11 @@ export default class extends AbstractView {
|
||||
chats.appendChild(chat);
|
||||
}
|
||||
|
||||
|
||||
// diconsole.log("CACA")v des messages
|
||||
let messages = document.getElementById("messages");
|
||||
if (messages == null) {
|
||||
messages = document.createElement("div");
|
||||
messages.id = "messages";
|
||||
if (document.getElementById("input_chat") == null)
|
||||
chat.appendChild(messages);
|
||||
else
|
||||
document.getElementById("input_chat").before(messages);
|
||||
}
|
||||
// nom des membres du channel
|
||||
let members = await this.display_members(chat, profiles);
|
||||
|
||||
// les messages, réecriture seulement du dernier
|
||||
let i = 0;
|
||||
client.channels.channel.messages.forEach((message) => {
|
||||
if (messages.children[i] == null || message.content != messages.children[i].innerText) {
|
||||
let text = document.createElement("p");
|
||||
let date = new Date(message.time);
|
||||
text.title = date.toLocaleString("fr-FR");
|
||||
text.appendChild(document.createTextNode(message.content));
|
||||
text.id = message.author_id === client.me.id ? "you" : "other";
|
||||
|
||||
messages.appendChild(text);
|
||||
}
|
||||
i++;
|
||||
});
|
||||
|
||||
// nom des membres du chat
|
||||
let members = document.createElement("h2");
|
||||
members.id = "members";
|
||||
let usernames = "";
|
||||
client.channels.channel.members_id.forEach((member_id) => {
|
||||
if (member_id != client.me.user_id) {
|
||||
if (usernames.length > 0)
|
||||
usernames += ", ";
|
||||
usernames += (profiles.filter(user => user.id == member_id)[0].username);
|
||||
}
|
||||
});
|
||||
members.appendChild(document.createTextNode(usernames));
|
||||
messages.before(members);
|
||||
// L'affiche des messages
|
||||
let messages = await this.display_messages(chat);
|
||||
|
||||
// Input pour rentrer un message
|
||||
let chat_input = document.getElementById("input_chat") || document.createElement("input");
|
||||
@ -177,8 +144,7 @@ export default class extends AbstractView {
|
||||
if (member_id != client.me.id)
|
||||
receivers_id.push(profiles.filter(user => user.id == member_id)[0].id);
|
||||
});
|
||||
await client.channels.channel.sendMessageChannel(chat_text, receivers_id)
|
||||
|
||||
await client.channels.channel.sendMessageChannel(chat_text, receivers_id);
|
||||
// Reset
|
||||
chat_input.value = "";
|
||||
}
|
||||
@ -200,7 +166,65 @@ export default class extends AbstractView {
|
||||
|
||||
}
|
||||
|
||||
async hideChat() {
|
||||
async display_messages(chat) {
|
||||
|
||||
let messages = document.createElement("div");
|
||||
|
||||
messages.id = "messages";
|
||||
chat.appendChild(messages);
|
||||
|
||||
// les messages, réecriture seulement du dernier
|
||||
client.channels.channel.messages.forEach((message) => {
|
||||
let text = document.createElement("p");
|
||||
let date = new Date(message.time);
|
||||
text.title = date.toLocaleString("fr-FR");
|
||||
text.appendChild(document.createTextNode(message.content));
|
||||
text.id = message.author_id === client.me.id ? "you" : "other";
|
||||
|
||||
messages.appendChild(text);
|
||||
});
|
||||
|
||||
return messages
|
||||
}
|
||||
|
||||
async reload_display_messages() {
|
||||
let messages = document.getElementById("messages");
|
||||
|
||||
let i = 0;
|
||||
client.channels.channel.messages.forEach((message) => {
|
||||
if (messages.children[i] == null || message.content != messages.children[i].innerText) {
|
||||
let text = document.createElement("p");
|
||||
let date = new Date(message.time);
|
||||
text.title = date.toLocaleString("fr-FR");
|
||||
text.appendChild(document.createTextNode(message.content));
|
||||
text.id = message.author_id === client.me.id ? "you" : "other";
|
||||
|
||||
messages.appendChild(text);
|
||||
}
|
||||
i++;
|
||||
});
|
||||
|
||||
messages.scrollTop = messages.scrollHeight;
|
||||
}
|
||||
|
||||
async display_members(chat, profiles) {
|
||||
let members = document.createElement("h2");
|
||||
members.id = "members";
|
||||
let usernames = "";
|
||||
client.channels.channel.members_id.forEach((member_id) => {
|
||||
if (member_id != client.me.id) {
|
||||
if (usernames.length > 0)
|
||||
usernames += ", ";
|
||||
usernames += (profiles.filter(user => user.id == member_id)[0].username);
|
||||
}
|
||||
});
|
||||
members.appendChild(document.createTextNode(usernames));
|
||||
chat.appendChild(members);
|
||||
|
||||
return members
|
||||
}
|
||||
|
||||
async hide_chat() {
|
||||
|
||||
let closes = ["chat", "invite"]
|
||||
closes.forEach(close => {
|
||||
|
Loading…
Reference in New Issue
Block a user