client/views/user/transaction-single.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Banka | My Account</title>
<link rel="icon" type="image/x-icon" href="../../assets/img/logo.png">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="../../assets/css/main.css">
<link rel="stylesheet" type="text/css" href="../../assets/css/responsive.css">
</head>
<body>
<!-- Progress Bar -->
<span class="progress-bar"></span>
<nav id="ad-nav">
<a href="../../../index.html">
<div id="logo">
<img src="../../assets/img/logo.png" alt="logo">
</div>
</a>
<div class="ad-nav-right">
<img id="avatar"
onclick="openDropDown(true)"
class="dropbtn"
src="../../assets/img/avatar.png"
/>
<!-- Dropdown content -->
<div class="dropdown-content" id="dropdown">
<a href="#" onclick="event.preventDefault();return logout();">
<i class="fas fa-info-circle"></i>
Logout
</a>
</div>
<!-- Hamburger links -->
<a href="#" onclick="event.preventDefault();openSlideMenu(this)">
<span class="open-slide">
<i class="fas fa-align-right fa-2x"></i>
</span>
</a>
<!-- Toast -->
<div class="toast success">
<img src="../../assets/img/check-mark.gif" alt="check-mark">
</div>
<div class="toast error">
<img src="../../assets/img/cross-mark.jpg" alt="cross-mark">
</div>
<!-- Side nav -->
<div id="side-menu" class="side-nav">
<li><a href="profile.html">Dashboard</a></li>
<li><a href="transactions.html">My transactions</a></li>
<li onclick="event.preventDefault();return logout();"><a href="#">Logout</a></li>
</div>
</div>
</nav>
<div class="ad-main">
<section>
<aside>
<ul>
<a href="profile.html">
<li>
<i class="fas fa-chart-line"></i>
Dashboard
</li>
</a>
<a href="transactions.html">
<li style="background: #076969">
<i class="fas fa-history"></i>
My transactions
</li>
</a>
<a href="#">
<li onclick="event.preventDefault();return logout();">
<i class="fas fa-info-circle"></i>
Logout
</li>
</a>
</ul>
</aside>
</section>
<section class="ad-main-showcase">
<span class="back" onclick="window.history.back()">
<i class="fas fa-arrow-left fa-2x"></i>
</span>
<header><h2>Transaction details</h2></header>
<section class="single">
</section>
<hr/>
</section>
</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
withAuth();
const token = getAuthToken();
const config = {
headers: {
'Content-Type': 'application/json',
'x-access-token': token
}
};
const email = getUser();
// Get specific transaction details
(function() {
const start = new Date();
const url = new URL(env.url());
const transactionId = sessionStorage.getItem('transactionId');
if (!transactionId) throw new Error('Can not fetch transaction details.');
fetch(`${url.href}/transactions/${transactionId}/`, config)
.then(response => response.json())
.then(json => {
if (json.status < 300) {
const transaction = json.data;
const date = new Date(transaction.createdOn);
const section = document.querySelector('.single');
section.innerHTML =
`<p>Transaction ID: ${transaction.transactionId}</p>
<p>Date: ${date.toUTCString()}</p>
<p>Type: ${transaction.type}</p>
<p>Amount: ${transaction.amount}</p>
<p>New balance: ${transaction.newBalance}</p>
`;
return handleLoadingComplete(false, 1, '#fff')
} else {
showToast(false, errorResponse(json.error));
return handleLoadingComplete(true, 1)
}
}).
catch(error => {
showToast(false, 'Try again');
return handleLoadingComplete(true, new Date().getMilliseconds() - start.getMilliseconds())
});
return null;
})();
});
</script>
<script src="../../assets/js/main.js"></script>
<script src="../../assets/js/utils.js"></script>
<script src="../../assets/js/middleware.js"></script>
<script src="../../assets/js/dashboard.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.8.1/js/all.js" integrity="sha384-g5uSoOSBd7KkhAMlnQILrecXvzst9TdC09/VM+pjDTCM+1il8RHz5fKANTFFb+gQ" crossorigin="anonymous"></script>
</body>
</html>