From baac8f763feea5d53e44a6424e409dd46a015920 Mon Sep 17 00:00:00 2001 From: varjolintu Date: Wed, 16 Oct 2019 10:51:56 +0300 Subject: [PATCH] Update hashlist when connecting databases --- keepassxc-browser/options/options.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/keepassxc-browser/options/options.js b/keepassxc-browser/options/options.js index 098b312..e2f036c 100644 --- a/keepassxc-browser/options/options.js +++ b/keepassxc-browser/options/options.js @@ -202,6 +202,7 @@ options.initConnectedDatabases = function() { delete options.keyRing[hash]; options.saveKeyRing(); + hashList = options.keyRing; if ($('#tab-connected-databases table tbody:first tr').length > 2) { $('#tab-connected-databases table tbody:first tr.empty:first').hide(); @@ -216,6 +217,7 @@ options.initConnectedDatabases = function() { trClone.removeClass('clone'); const addHashToTable = function(hash) { + $('#tab-connected-databases table tbody:first tr.empty:first').hide(); const tr = trClone.clone(true); tr.data('hash', hash); tr.attr('id', 'tr-cd-' + hash); @@ -231,7 +233,7 @@ options.initConnectedDatabases = function() { $('#tab-connected-databases table tbody:first').append(tr); } - const hashList = options.keyRing; + let hashList = options.keyRing; for (const hash in hashList) { addHashToTable(hash); } @@ -248,6 +250,14 @@ options.initConnectedDatabases = function() { if (result === AssociatedAction.NEW_ASSOCIATION) { // Update the connection list with the added hash options.keyRing = await browser.runtime.sendMessage({ action: 'load_keyring' }); + + // This one is the first hash added + if (Object.keys(options.keyRing).length === 1) { + addHashToTable(Object.keys(options.keyRing)[0]); + hashList = options.keyRing; + return; + } + for (const hash in hashList) { const newHash = Object.keys(options.keyRing).find(h => h !== hash); addHashToTable(newHash);