+ address list for recipient

+ filter table helper
* copy address simply by clicking on it
This commit is contained in:
Taegus
2018-12-17 17:42:19 +01:00
parent 6013c6f2d7
commit 1468eba97c
11 changed files with 153 additions and 65 deletions

View File

@@ -164,6 +164,34 @@ class Blockchain {
}
}
getAddressListData(clbError, clbSuccess) {
var rendererData = {};
rendererData.addressData = [];
var wallets = ipcRenderer.sendSync('getJSONFile', 'wallets.json');
var counter = 0;
web3Local.eth.getAccounts(function(err, res) {
if (err) {
clbError(err);
} else {
for (var i = 0; i < res.length; i++) {
var walletName = vsprintf("Account %d", [i + 1]);
if (wallets) {
walletName = wallets.names[res[i]] || walletName;
}
var addressInfo = {};
addressInfo.address = res[i];
addressInfo.name = walletName;
rendererData.addressData.push(addressInfo);
}
clbSuccess(rendererData);
}
});
}
createNewAccount(password, clbError, clbSuccess) {
web3Local.eth.personal.newAccount(password, function(error, account) {
if (error) {

View File

@@ -43,11 +43,15 @@ class MainGUI {
});
}
renderTemplate(template, data) {
renderTemplate(template, data, container) {
var template = Handlebars.compile(ipcRenderer.sendSync('getTemplateContent', template));
$("#mainContent").empty();
$("#mainContent").html(template(data));
if (!container) {
container = $("#mainContent")
}
container.empty();
container.html(template(data));
}
copyToClipboard(text) {

View File

@@ -66,55 +66,40 @@ $(document).on("render_send", function() {
web3Local.eth.getBalance(this.value, function(error, balance) {
$("#sendMaxAmmount").html(parseFloat(web3Local.utils.fromWei(balance, 'ether')));
});
/*
// list all transactions for this address
if (this.value) {
$("#cardTransactionsForAddress").css("display", "block");
setTimeout(() => {
// render the transactions
$('#tableTransactionsForAddress').DataTable({
"paging": false,
"scrollY": "calc(100vh - 115px)",
"responsive": true,
"processing": true,
"order": [[ 0, "desc" ]],
"data": ipcRenderer.sendSync('getTransactions', this.value),
"columnDefs": [
{
"className": "transactionsBlockNum",
"targets": 0
},
{
"targets": 1,
"render": function ( data, type, row ) {
return moment(data).format("MMM Do YYYY");
}
},
{
"targets": 4,
"render": function ( data, type, row ) {
return parseFloat(web3Local.utils.fromWei(EthoUtils.toFixed(parseFloat(data)).toString(), 'ether')).toFixed(2);
}
}
],
"drawCallback": function( settings ) {
$("#loadingTransactionsOverlay").css("display", "none");
}
});
}, 200);
} else {
$("#cardTransactionsForAddress").css("display", "none");
}
*/
});
$("#btnSendAll").off('click').on('click', function() {
$("#sendAmmount").focus();
$("#sendAmmount").val($("#sendMaxAmmount").html());
});
$("#btnLookForToAddress").off('click').on('click', function() {
EthoBlockchain.getAddressListData(
function(error) {
EthoMainGUI.showGeneralError(error);
},
function(data) {
$("#dlgAddressList").iziModal({ width: "800px" });
EthoMainGUI.renderTemplate("addresslist.html", data, $("#dlgAddressListBody"));
$('#dlgAddressList').iziModal('open');
$(".btnSelectToAddress").off('click').on('click', function() {
$("#sendToAddress").val($(this).attr('data-wallet'));
$('#dlgAddressList').iziModal('close');
});
$('#addressListFilter').off('input').on('input',function(e){
EthoUtils.filterTable($("#addressTable"), $('#addressListFilter').val());
});
$("#btnClearSearchField").off('click').on('click', function() {
EthoUtils.filterTable($("#addressTable"), "");
$('#addressListFilter').val("")
});
}
);
});
$("#btnSendTransaction").off('click').on('click', function() {
if (EthoSend.validateSendForm()) {
EthoBlockchain.getTranasctionFee($("#sendFromAddress").val(), $("#sendToAddress").val(), $("#sendAmmount").val(),

View File

@@ -18,6 +18,27 @@ class Utils {
}
return x;
}
filterTable(table, text) {
// Declare variables
var filter, tr, td, i, txtValue;
filter = text.toUpperCase();
tr = $(table).find("tr");
// Loop through all table rows, and hide those who don't match the search query
for (i = 0; i < tr.length; i++) {
td = $(tr[i]).find("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
$(tr[i]).css("display", "");
} else {
$(tr[i]).css("display", "none");
}
}
}
}
}
EthoUtils = new Utils();

View File

@@ -62,8 +62,8 @@ renderWalletsState() {
EthoMainGUI.renderTemplate("wallets.html", data);
$(document).trigger("render_wallets");
}
);
}
);
}
}
// the event to tell us that the wallets are rendered
@@ -142,8 +142,8 @@ $(document).on("render_wallets", function() {
});
});
$(".btnCopyWalletAddress").off('click').on('click', function() {
EthoMainGUI.copyToClipboard($(this).attr('data-wallet'));
$(".textAddress").off('click').on('click', function() {
EthoMainGUI.copyToClipboard($(this).html());
iziToast.success({
title: 'Copied',