+ transaction details with explorer redirection

+ sorting and floating header for wallets and address book
+ detect geth crash and notify the user
This commit is contained in:
Taegus
2019-03-05 18:54:29 +01:00
parent 0552dcdcba
commit 35c1eb5472
10 changed files with 366 additions and 251 deletions

View File

@@ -1,9 +1,8 @@
const {ipcRenderer} = require('electron');
const {ipcRenderer} = require("electron");
class AddressBook {
constructor() {
}
constructor() {}
setAddressName(address, name) {
var addressBook = EthoDatatabse.getAddresses();
@@ -29,12 +28,13 @@ class AddressBook {
EthoDatatabse.setAddresses(addressBook);
}
enableButtonTooltips() {
}
enableButtonTooltips() {}
renderAddressBook() {
var addressObject = EthoAddressBook.getAddressList();
var renderData = { addressData: [] };
var renderData = {
addressData: []
};
for (var key in addressObject) {
if (addressObject.hasOwnProperty(key)) {
@@ -46,102 +46,94 @@ class AddressBook {
}
// render the wallets current state
EthoMainGUI.renderTemplate("addressBook.html", renderData);
EthoMainGUI.renderTemplate("addressBook.html", renderData);
$(document).trigger("render_addressBook");
EthoAddressBook.enableButtonTooltips();
}
}
// the event to tell us that the wallets are rendered
$(document).on("render_addressBook", function() {
$("#btnNewAddress").off('click').on('click', function() {
$(document).on("render_addressBook", function () {
new Tablesort(document.getElementById("addressTable"));
$("#addressTable").floatThead();
$("#btnNewAddress").off("click").on("click", function () {
$("#dlgCreateAddressAndName").iziModal();
$("#addressName").val("");
$("#addressHash").val("");
$('#dlgCreateAddressAndName').iziModal('open');
$("#dlgCreateAddressAndName").iziModal("open");
function doCreateNewWallet() {
$('#dlgCreateAddressAndName').iziModal('close');
$("#dlgCreateAddressAndName").iziModal("close");
if (!EthoBlockchain.isAddress($("#addressHash").val())) {
EthoMainGUI.showGeneralError("Address must be a valid address!");
EthoMainGUI.showGeneralError("Address must be a valid address!");
} else {
EthoAddressBook.setAddressName($("#addressHash").val(), $("#addressName").val());
EthoAddressBook.renderAddressBook();
iziToast.success({
title: 'Created',
message: 'New address was successfully created',
position: 'topRight',
timeout: 5000
});
}
}
$("#btnCreateAddressConfirm").off('click').on('click', function() {
iziToast.success({title: "Created", message: "New address was successfully created", position: "topRight", timeout: 5000});
}
}
$("#btnCreateAddressConfirm").off("click").on("click", function () {
doCreateNewWallet();
});
$("#dlgCreateAddressAndName").off('keypress').on('keypress', function(e) {
if(e.which == 13) {
$("#dlgCreateAddressAndName").off("keypress").on("keypress", function (e) {
if (e.which == 13) {
doCreateNewWallet();
}
});
});
$(".btnChangAddressName").off('click').on('click', function() {
var walletAddress = $(this).attr('data-address');
var walletName = $(this).attr('data-name');
});
});
$(".btnChangAddressName").off("click").on("click", function () {
var walletAddress = $(this).attr("data-address");
var walletName = $(this).attr("data-name");
$("#dlgChangeAddressName").iziModal();
$("#inputAddressName").val(walletName);
$('#dlgChangeAddressName').iziModal('open');
$("#dlgChangeAddressName").iziModal("open");
function doChangeAddressName() {
EthoAddressBook.setAddressName(walletAddress, $("#inputAddressName").val());
$('#dlgChangeAddressName').iziModal('close');
$("#dlgChangeAddressName").iziModal("close");
EthoAddressBook.renderAddressBook();
}
$("#btnChangeAddressNameConfirm").off('click').on('click', function() {
$("#btnChangeAddressNameConfirm").off("click").on("click", function () {
doChangeAddressName();
});
$("#dlgChangeAddressName").off('keypress').on('keypress', function(e) {
if(e.which == 13) {
$("#dlgChangeAddressName").off("keypress").on("keypress", function (e) {
if (e.which == 13) {
doChangeAddressName();
}
});
});
$(".btnDeleteAddress").off('click').on('click', function() {
var deleteAddress = $(this).attr('data-address');
});
});
$(".btnDeleteAddress").off("click").on("click", function () {
var deleteAddress = $(this).attr("data-address");
$("#dlgDeleteAddressConfirm").iziModal();
$('#dlgDeleteAddressConfirm').iziModal('open');
$("#btnDeleteAddressCancel").off('click').on('click', function() {
$('#dlgDeleteAddressConfirm').iziModal('close');
$("#dlgDeleteAddressConfirm").iziModal("open");
$("#btnDeleteAddressCancel").off("click").on("click", function () {
$("#dlgDeleteAddressConfirm").iziModal("close");
});
$("#btnDeleteAddressConfirm").off('click').on('click', function() {
$('#dlgDeleteAddressConfirm').iziModal('close');
$("#btnDeleteAddressConfirm").off("click").on("click", function () {
$("#dlgDeleteAddressConfirm").iziModal("close");
EthoAddressBook.deleteAddress(deleteAddress);
EthoAddressBook.renderAddressBook();
});
});
});
$(".textAddress").off('click').on('click', function() {
$(".textAddress").off("click").on("click", function () {
EthoMainGUI.copyToClipboard($(this).html());
iziToast.success({
title: 'Copied',
message: 'Address was copied to clipboard',
position: 'topRight',
timeout: 2000
});
iziToast.success({title: "Copied", message: "Address was copied to clipboard", position: "topRight", timeout: 2000});
});
});
});
EthoAddressBook = new AddressBook();

View File

@@ -1,3 +1,5 @@
const {ipcRenderer} = require("electron");
class tableTransactions {
constructor() {
this.appState = "account";
@@ -57,12 +59,15 @@ class tableTransactions {
return moment(data, "YYYY-MM-DD HH:mm:ss").format("MMM Do YYYY HH:mm:ss");
}
}, {
targets: 5,
targets: 3,
visible: false
}, {
targets: 6,
render: function (data, type, row) {
return parseFloat(web3Local.utils.fromWei(EthoUtils.toFixed(parseFloat(data)).toString(), "ether")).toFixed(2);
}
}, {
targets: 6,
targets: 7,
defaultContent: "",
render: function (data, type, row) {
if (row[1]) {
@@ -77,6 +82,36 @@ class tableTransactions {
$("#loadingTransactionsOverlay").css("display", "none");
}
});
$(id + " tbody").off("click").on("click", "td", function () {
if ($(id).DataTable().cell(this).index().column == 1) {
var rowIdx = $(id).DataTable().cell(this).index().row;
var rowData = $(id).DataTable().rows(rowIdx).data()[0];
console.log(rowData[6]);
$("#dlgTransactionInfo").iziModal();
$("#txBlockHeight").html(rowData[1]);
$("#txTimestamp").html(rowData[2]);
$("#txHash").html(rowData[3]);
$("#txHash").attr("href", vsprintf("https://explorer.ether1.org/tx/%s", [rowData[3]]));
$("#txFromAddress").html(rowData[4]);
$("#txFromAddress").attr("href", vsprintf("https://explorer.ether1.org/addr/%s", [rowData[4]]));
$("#txToAddress").html(rowData[5]);
$("#txToAddress").attr("href", vsprintf("https://explorer.ether1.org/addr/%s", [rowData[5]]));
$("#txValue").html(web3Local.utils.fromWei(EthoUtils.toFixed(parseFloat(rowData[6])).toString(), "ether"));
$("#dlgTransactionInfo a").off("click").on("click", function (even) {
event.preventDefault();
ipcRenderer.send("openURL", $(this).attr("href"));
});
$("#btnTxInfoClose").off("click").on("click", function () {
$("#dlgTransactionInfo").iziModal("close");
});
$("#dlgTransactionInfo").iziModal("open");
}
});
}
}