From 6ad56287969ae0a79869fe5f0f19764f1754a853 Mon Sep 17 00:00:00 2001 From: DJ2LS <75909252+DJ2LS@users.noreply.github.com> Date: Sat, 18 Feb 2023 19:55:13 +0100 Subject: [PATCH 1/2] first user database --- gui/preload-chat.js | 233 +++++++++++++++++++++++++++++++++------ gui/src/chat-module.html | 118 ++++++++++++++++++++ 2 files changed, 317 insertions(+), 34 deletions(-) diff --git a/gui/preload-chat.js b/gui/preload-chat.js index 22cb979e..09b097f9 100644 --- a/gui/preload-chat.js +++ b/gui/preload-chat.js @@ -44,6 +44,7 @@ var lastIsWritingBroadcast = new Date().getTime(); // ----------------------------------- var chatDB = path.join(configFolder, "chatDB"); +var userDB = path.join(configFolder, "chatDB"); // ---- MessageDB try { var PouchDB = require("pouchdb"); @@ -63,6 +64,7 @@ PouchDB.plugin(require("pouchdb-find")); //PouchDB.plugin(require('pouchdb-replication')); var db = new PouchDB(chatDB); +var users = new PouchDB(userDB); /* // REMOTE SYNC ATTEMPTS @@ -107,6 +109,7 @@ db.sync('http://172.20.10.4:5984/jojo', { */ var dxcallsigns = new Set(); +/* -------- CREATE DATABASE INDEXES */ db.createIndex({ index: { fields: [ @@ -133,6 +136,33 @@ db.createIndex({ console.log(err); }); +users + .createIndex({ + index: { + fields: [ + "timestamp", + "callsign", + "gridsquare", + "name", + "age", + "location", + "radio", + "antenna", + "email", + "website", + "comments", + "_attachments", + ], + }, + }) + .then(function (result) { + // handle result + console.log(result); + }) + .catch(function (err) { + console.log(err); + }); + db.find({ selector: { timestamp: { @@ -174,6 +204,67 @@ window.addEventListener("DOMContentLoaded", () => { document.getElementById("bootstrap_theme").href = theme_path; } + console.log(config.mycall); + users + .find({ + selector: { + callsign: config.mycall, + }, + }) + .then(function (result) { + // handle result + document.getElementById("user_info_callsign").value = + result.docs[0].callsign; + document.getElementById("user_info_gridsquare").value = + result.docs[0].gridsquare; + document.getElementById("user_info_name").value = result.docs[0].name; + document.getElementById("user_info_age").value = result.docs[0].age; + document.getElementById("user_info_location").value = + result.docs[0].location; + document.getElementById("user_info_radio").value = result.docs[0].radio; + document.getElementById("user_info_antenna").value = + result.docs[0].antenna; + document.getElementById("user_info_email").value = result.docs[0].email; + document.getElementById("user_info_website").value = + result.docs[0].website; + document.getElementById("user_info_comments").value = + result.docs[0].comments; + }) + .catch(function (err) { + console.log(err); + }); + + const userInfoFields = [ + "user_info_callsign", + "user_info_gridsquare", + "user_info_name", + "user_info_age", + "user_info_location", + "user_info_radio", + "user_info_antenna", + "user_info_email", + "user_info_website", + "user_info_comments", + ]; + + // user info bulk event listener for saving settings + userInfoFields.forEach(function (elem) { + try { + document.getElementById(elem).addEventListener("change", function () { + //config[elem] = document.getElementById(elem).value; + + let obj = new Object(); + userInfoFields.forEach(function (subelem) { + obj[subelem] = document.getElementById(subelem).value; + }); + addUserToDatabaseIfNotExists(obj); + }); + } catch (e) { + console.log(e); + console.log(elem); + } + }); + document .querySelector("emoji-picker") .addEventListener("emoji-click", (event) => { @@ -439,7 +530,7 @@ ipcRenderer.on("return-selected-files", (event, arg) => { document.getElementById("selectFilesButton").innerHTML = ` New file selected - + `; }); ipcRenderer.on("action-update-transmission-status", (event, arg) => { @@ -483,7 +574,7 @@ ipcRenderer.on("action-show-feciswriting", (event, arg) => { var new_message = `
${dxcallsign} is typing....
- +snr: ${obj.snr} - ${timestamp}
- +snr: ${obj.snr} - ${timestamp}
new chat opened - ${timestamp}
${message_html}
- ${timestamp} - + ${timestamp} +
${message_html}
${timestamp} - - + ${get_icon_for_state( @@ -849,9 +940,9 @@ update_chat = function (obj) { - +
- +${obj.percent} % - ${obj.bytesperminute} Bpm - +
- - - + + +