diff --git a/gui/package.json b/gui/package.json index 506e939c..df00b32e 100644 --- a/gui/package.json +++ b/gui/package.json @@ -1,6 +1,6 @@ { "name": "FreeDATA", - "version": "0.1.0-alpha.2", + "version": "0.1.2-alpha", "description": "FreeDATA ", "main": "main.js", "scripts": { diff --git a/gui/preload-chat.js b/gui/preload-chat.js index 2f8a0bd3..851c43ec 100644 --- a/gui/preload-chat.js +++ b/gui/preload-chat.js @@ -58,11 +58,9 @@ db.allDocs({ // WINDOW LISTENER window.addEventListener('DOMContentLoaded', () => { - - - // SEND MSG document.getElementById("sendMessage").addEventListener("click", () => { + var dxcallsign = document.getElementById('chatModuleDxCall').value dxcallsign = dxcallsign.toUpperCase() message = document.getElementById('chatModuleMessage').value @@ -106,8 +104,12 @@ window.addEventListener('DOMContentLoaded', () => { console.log(err); }); - - + // scroll to bottom + var element = document.getElementById("message-container"); + element.scrollTo(0,element.scrollHeight); + + // clear input + document.getElementById('chatModuleMessage').value = '' @@ -121,11 +123,11 @@ window.addEventListener('DOMContentLoaded', () => { }); ipcRenderer.on('action-new-msg-received', (event, arg) => { - //console.log(arg.data) + console.log(arg.data) var new_msg = arg.data new_msg.forEach(function(item) { - //console.log(item) + console.log(item) //for (i = 0; i < arg.data.length; i++) { let obj = new Object(); @@ -178,13 +180,15 @@ ipcRenderer.on('action-new-msg-received', (event, arg) => { db.get(item.uuid).then(function (doc) { // handle doc + + // timestamp update_chat(doc) }).catch(function (err) { console.log(err); }); - - +console.log("...................................") +return @@ -238,6 +242,11 @@ update_chat = function(obj) { // create eventlistener for listening on clicking on a callsign document.getElementById('chat-' + dxcallsign + '-list').addEventListener('click', function() { document.getElementById('chatModuleDxCall').value = dxcallsign; + + // scroll to bottom + var element = document.getElementById("message-container"); + element.scrollTo(0,element.scrollHeight); + }); } @@ -250,11 +259,13 @@ update_chat = function(obj) { if(!(document.getElementById('msg-' + obj._id))){ if (obj.type == 'received'){ var new_message = ` -
-
-

${timestamp}

-

${obj.msg}

-
+
+

${timestamp}

+
+
+

${obj.msg}

+
+
`; } @@ -263,28 +274,22 @@ update_chat = function(obj) { var new_message = ` -
-
-

${timestamp}

-

${obj.msg}

-
+
+

${timestamp}

+
+
+

${obj.msg}

+
+
`; } - - - - - - var id = "chat-" + obj.dxcallsign document.getElementById(id).insertAdjacentHTML("beforeend", new_message); + var element = document.getElementById("message-container"); + element.scrollTo(0,element.scrollHeight); } - - - - - + } diff --git a/gui/preload-main.js b/gui/preload-main.js index 8ab31ec2..f45a5e33 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -22,8 +22,8 @@ var configPath = path.join(configFolder, 'config.json'); const config = require(configPath); // START INTERVALL COMMAND EXECUTION FOR STATES -setInterval(sock.getRxBuffer, 1000); -setInterval(sock.getMsgRxBuffer, 1000); +//setInterval(sock.getRxBuffer, 1000); + // WINDOW LISTENER window.addEventListener('DOMContentLoaded', () => { diff --git a/gui/sock.js b/gui/sock.js index 3b3e8fa1..534f324d 100644 --- a/gui/sock.js +++ b/gui/sock.js @@ -104,6 +104,9 @@ writeTncCommand = function(command) { //socketLog.info(command) // we use the writingCommand function to update our TCPIP state because we are calling this function a lot // if socket openend, we are able to run commands + + + if (client.readyState == 'open') { client.write(command + '\n'); @@ -216,21 +219,24 @@ client.on('data', function(socketdata) { } /* A TEST WITH STREAMING DATA .... */ - + // if we received data through network stream, we get a single data item if (data['arq'] == 'received') { dataArray = [] messageArray = [] - - if(data['data'][0]['dt'] == 'f'){ + socketLog.info(data) + // we need to encode here to do a deep check for checking if file or message + var encoded_data = atob(data['data']) + var splitted_data = encoded_data.split(split_char) + + + if(splitted_data[0] == 'f'){ dataArray.push(data) } - if(data['data'][0]['dt'] == 'm'){ + if(splitted_data[0] == 'm'){ messageArray.push(data) } - - rxBufferLengthGui = dataArray.length let Files = { @@ -242,19 +248,21 @@ client.on('data', function(socketdata) { let Messages = { data: messageArray, }; - ipcRenderer.send('request-update-rx-msg-buffer', Messages); - + + //ipcRenderer.send('request-update-rx-msg-buffer', Messages); + ipcRenderer.send('request-new-msg-received', Messages); } - + + // if we manually checking for the rx buffer we are getting an array of multiple data if (data['command'] == 'rx_buffer') { - + socketLog.info(data) // iterate through buffer list and sort it to file or message array dataArray = [] messageArray = [] - for (i = 0; i < data['data-array'].length; i++) { try{ + // we need to encode here to do a deep check for checking if file or message var encoded_data = atob(data['data-array'][i]['data']) var splitted_data = encoded_data.split(split_char) @@ -274,7 +282,6 @@ client.on('data', function(socketdata) { } } - socketLog.info(dataArray) rxBufferLengthGui = dataArray.length @@ -287,7 +294,9 @@ client.on('data', function(socketdata) { let Messages = { data: messageArray, }; - ipcRenderer.send('request-update-rx-msg-buffer', Messages); + //ipcRenderer.send('request-update-rx-msg-buffer', Messages); + ipcRenderer.send('request-new-msg-received', Messages); + } @@ -361,6 +370,8 @@ exports.sendMessage = function(dxcallsign, mode, frames, data, checksum) { //command = '{"type" : "arq", "command" : "send_message", "parameter" : [{ "dxcallsign" : "' + dxcallsign + '", "mode" : "' + mode + '", "n_frames" : "' + frames + '", "data" : "' + data + '" , "checksum" : "' + checksum + '"}]}' command = '{"type" : "arq", "command" : "send_raw", "parameter" : [{"dxcallsign" : "' + dxcallsign + '", "mode" : "' + mode + '", "n_frames" : "' + frames + '", "data" : "' + data + '"}]}' + socketLog.info(command) + socketLog.info("-------------------------------------") writeTncCommand(command) } diff --git a/gui/src/chat-module.html b/gui/src/chat-module.html index 33d988e5..9572bbcb 100644 --- a/gui/src/chat-module.html +++ b/gui/src/chat-module.html @@ -7,7 +7,9 @@ - + + + FreeDATA - CHAT @@ -18,36 +20,61 @@ -
- - - + + + +
+
+
+ + +
+
+ + +
+
+ +
+ + + + + + +
+ + + + +
+
+ + + + + + + + +
- - - - - - - - - - - - - -
TimeDXCallMessage
- + + + diff --git a/gui/src/index.html b/gui/src/index.html index 19518c64..9e8fdfa8 100644 --- a/gui/src/index.html +++ b/gui/src/index.html @@ -602,6 +602,7 @@