From 9f47a7461a3dc88c21bc2b7b9df3050c12e76b3c Mon Sep 17 00:00:00 2001 From: sairajzero Date: Wed, 10 Apr 2019 17:36:24 +0530 Subject: [PATCH] Update v0.5 Added msg-time and Store msgs in IDB --- app.js | 52 +++++++++++++++++++++++++++++++++++++++++---------- index.html | 2 +- registerID.js | 4 ++-- styles.css | 1 + 4 files changed, 46 insertions(+), 13 deletions(-) diff --git a/app.js b/app.js index 02a1cae..1ad5196 100644 --- a/app.js +++ b/app.js @@ -36,7 +36,7 @@ function userDataStartUp(){ }).catch(function (error) { console.log(error.message); }); - +} function arrayToObject(array){ obj = {}; array.forEach(element => { @@ -140,9 +140,6 @@ function userDataStartUp(){ } -} -userDataStartUp(); - function getuserID(){ return new Promise( function(resolve,reject){ @@ -224,6 +221,26 @@ function getDatafromIDB(){ ); } + +function storeMsg(data){ + var idb = indexedDB.open("FLO_Chat",2); + idb.onerror = function(event) { + console.log("Error in opening IndexedDB!"); + }; + idb.onupgradeneeded = function(event) { + var objectStore = event.target.result.createObjectStore("messages",{ keyPath: 'time' }); + objectStore.createIndex('text', 'text', { unique: false }); + objectStore.createIndex('floID', 'floID', { unique: false }); + objectStore.createIndex('type', 'type', { unique: false }); + }; + idb.onsuccess = function(event) { + var db = event.target.result; + var obs = db.transaction("messages", "readwrite").objectStore("messages"); + obs.add(data); + db.close(); + }; +} + function displayContacts(){ console.log('displayContacts'); var listElement = document.getElementById('contact-display'); @@ -263,6 +280,7 @@ function initselfWebSocket(){ try{ var disp = document.getElementById("conversation"); var data = JSON.parse(evt.data); + var time = Date.now(); var msgdiv = document.createElement('div'); msgdiv.setAttribute("class", "row message-body"); msgdiv.innerHTML = `
@@ -271,12 +289,12 @@ function initselfWebSocket(){ ${data.from} :
${data.msg} - Time + ${getTime(time)}
- - `; + `; disp.appendChild(msgdiv); + storeMsg({time:time,floID:data.from,text:data.msg,type:"R"}); }catch(err){ if(evt.data[0]=='$') alert(evt.data); @@ -295,15 +313,28 @@ function changeReceiver(param){ document.getElementById('recipient-floID').innerHTML = receiverID; } +function getTime(time){ + var t = new Date(time); + var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] + var fn = function(n){ + if(n<10) + return '0'+n; + else + return n; + }; + var tmp = `${months[t.getMonth()]} ${fn(t.getDate())} ${t.getFullYear()} ${fn(t.getHours())}:${fn(t.getMinutes())}`; + return tmp; +} + function sendMsg(){ var msg = document.getElementById('sendMsgInput').value; console.log(msg); var ws = new WebSocket("ws://"+contacts[receiverID].onionAddr+"/ws"); ws.onopen = function(evt){ - var data = {from:senderID,msg:msg}; - data = JSON.stringify(data); + var data = JSON.stringify({from:senderID,msg:msg}); ws.send(data); console.log(`sentMsg : ${data}`); + time = Date.now(); var disp = document.getElementById("conversation"); var msgdiv = document.createElement('div'); msgdiv.setAttribute("class", "row message-body"); @@ -312,11 +343,12 @@ function sendMsg(){ ${receiverID} :
${msg}
- Time + ${getTime(time)} `; disp.appendChild(msgdiv); + storeMsg({time:time,floID:receiverID,text:msg,type:"S"}); //send_check = 1; //recursion_called = 0; //addSentChat(msg.substring(2+msgArray[0].length+msgArray[1].length),timer,msgArray[0]); diff --git a/index.html b/index.html index 165f335..316e655 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ - +
diff --git a/registerID.js b/registerID.js index 6a9b3ae..dda3289 100755 --- a/registerID.js +++ b/registerID.js @@ -1,6 +1,6 @@ -const mainnet = `https://livenet.flocha.in`; -const testnet = `https://testnet.flocha.in`; +const mainnet = `http://ranchimall.duckdns.org:8080`; +const testnet = `http://ranchimall1.duckdns.org:8080`; let server = mainnet; const sendAmt = 0.001 ; diff --git a/styles.css b/styles.css index 8055068..504d449 100644 --- a/styles.css +++ b/styles.css @@ -393,6 +393,7 @@ body { } .sender { + float: right; width: auto !important; height: auto; background: gray;