Skip to content

Commit 57d32a3

Browse files
committed
code full for money balace but missing some code cleaning regarding html file
1 parent 61c1593 commit 57d32a3

File tree

2 files changed

+99
-2
lines changed

2 files changed

+99
-2
lines changed

prep/dom-tutorial/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ <h2>Transaction History</h2>
9898
</div>
9999
</div>
100100

101-
<footer class="footer">
101+
<!-- <footer class="footer">
102102
<div class="footer-content">
103103
<div class="footer-left">
104104
<img class="footer-logo" src="./images/favicon.png" />
@@ -149,7 +149,7 @@ <h2>Transaction History</h2>
149149
</p>
150150
</div>
151151
</div>
152-
</footer>
152+
</footer> -->
153153

154154
<script src="./script.js"></script>
155155
</body>

prep/dom-tutorial/script.js

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
let all_transaction = [];
2+
3+
const transaction_form = document.getElementById("transactionForm");
4+
const transaction_list = document.getElementById("transactionList");
5+
6+
const total_balance = document.getElementById("totalBalance");
7+
const total_income = document.getElementById("totalIncome");
8+
const total_expense = document.getElementById("totalExpense");
9+
10+
function updateList(type, amount, date, category) {
11+
const itemEl = document.createElement("li");
12+
const iconEl = document.createElement("div");
13+
const detailsEl = document.createElement("div");
14+
const nameEl = document.createElement("div");
15+
const dateEl = document.createElement("div");
16+
const amountEl = document.createElement("div");
17+
const deleteEl = document.createElement("button");
18+
19+
itemEl.classList.add("transaction-item");
20+
iconEl.classList.add("transaction-icon");
21+
detailsEl.classList.add("transaction-details");
22+
nameEl.classList.add("transaction-name");
23+
dateEl.classList.add("transaction-date");
24+
amountEl.classList.add("transaction-amount");
25+
deleteEl.classList.add("transaction-delete");
26+
27+
iconEl.innerText = type === "Income" ? "↑" : "↓";
28+
iconEl.classList.add(type === "Income" ? "income" : "expense");
29+
30+
nameEl.innerText = category;
31+
dateEl.innerText = new Date(date).toLocaleDateString("en-US", {
32+
month: "short",
33+
day: "numeric",
34+
year: "numeric",
35+
});
36+
37+
amountEl.innerText = (type === "Income" ? "+" : "-") + "$" + amount;
38+
amountEl.classList.add(type === "Income" ? "income" : "expense");
39+
40+
deleteEl.innerText = "x";
41+
deleteEl.addEventListener("click", deleteTransaction);
42+
43+
detailsEl.appendChild(nameEl);
44+
detailsEl.appendChild(dateEl);
45+
itemEl.appendChild(iconEl);
46+
itemEl.appendChild(detailsEl);
47+
itemEl.appendChild(amountEl);
48+
itemEl.appendChild(deleteEl);
49+
50+
transaction_list.prepend(itemEl);
51+
}
52+
53+
function deleteTransaction(event) {
54+
const btn = event.currentTarget;
55+
const itemEl = btn.closest(".transaction-item");
56+
57+
const index = Array.from(transaction_list.children).indexOf(itemEl);
58+
all_transaction.splice(index, 1);
59+
updateBalance();
60+
61+
itemEl.remove();
62+
}
63+
64+
function updateBalance() {
65+
let income = 0;
66+
let expense = 0;
67+
let balance = 0;
68+
69+
all_transaction.forEach((transaction) => {
70+
if (transaction.type === "Income") {
71+
income += parseFloat(transaction.amount);
72+
balance += parseFloat(transaction.amount);
73+
} else {
74+
expense += parseFloat(transaction.amount);
75+
balance -= parseFloat(transaction.amount);
76+
}
77+
});
78+
79+
total_balance.innerText = "$" + balance;
80+
total_income.innerText = "$" + income;
81+
total_expense.innerText = "$" + expense;
82+
}
83+
84+
transaction_form.addEventListener("submit", function (event) {
85+
event.preventDefault();
86+
87+
const type = event.target.type.value;
88+
const amount = event.target.amount.value;
89+
const date = event.target.date.value;
90+
const category = event.target.category.value;
91+
92+
updateList(type, amount, date, category);
93+
all_transaction.unshift({ type, amount, date, category });
94+
updateBalance();
95+
96+
transaction_form.reset();
97+
});

0 commit comments

Comments
 (0)