@@ -72,85 +72,86 @@ async function addExpense() {
7272 }
7373}
7474
75- // async function getAllExpenses() {
76- // // e.preventDefault();
77- // try {
78- // const token = localStorage.getItem("token");
79- // const res = await axios.get(
80- // "http://localhost:3000/expense/getAllExpenses/1",
81- // { headers: { Authorization: token } }
82- // );
83- // res.data.expenses.forEach((expenses) => {
84- // const id = expenses.id;
85- // const date = expenses.date;
86- // const categoryValue = expenses.category;
87- // const descriptionValue = expenses.description;
88- // const amountValue = expenses.amount;
89-
90- // let tr = document.createElement("tr");
91- // tr.className = "trStyle";
92-
93- // table.appendChild(tr);
94-
95- // let idValue = document.createElement("th");
96- // idValue.setAttribute("scope", "row");
97- // idValue.setAttribute("style", "display: none");
98-
99- // let th = document.createElement("th");
100- // th.setAttribute("scope", "row");
101-
102- // tr.appendChild(idValue);
103- // tr.appendChild(th);
104-
105- // idValue.appendChild(document.createTextNode(id));
106- // th.appendChild(document.createTextNode(date));
107-
108- // let td1 = document.createElement("td");
109- // td1.appendChild(document.createTextNode(categoryValue));
110-
111- // let td2 = document.createElement("td");
112- // td2.appendChild(document.createTextNode(descriptionValue));
113-
114- // let td3 = document.createElement("td");
115- // td3.appendChild(document.createTextNode(amountValue));
116-
117- // let td4 = document.createElement("td");
118-
119- // let deleteBtn = document.createElement("button");
120- // deleteBtn.className = "editDelete btn btn-danger delete";
121- // deleteBtn.appendChild(document.createTextNode("Delete"));
122-
123- // let editBtn = document.createElement("button");
124- // editBtn.className = "editDelete btn btn-success edit";
125- // editBtn.appendChild(document.createTextNode("Edit"));
126-
127- // td4.appendChild(deleteBtn);
128- // td4.appendChild(editBtn);
75+ // when page is load or reload
76+ document . addEventListener ( "DOMContentLoaded" , getAllExpenses ) ;
12977
130- // tr.appendChild(td1);
131- // tr.appendChild(td2);
132- // tr.appendChild(td3);
133- // tr.appendChild(td4);
134- // });
78+ async function getAllExpenses ( ) {
79+ // e.preventDefault();
80+ try {
81+ // const token = localStorage.getItem("token");
82+ const res = await axios . get (
83+ "http://localhost:9000/expense/getAllExpenses" // /1 ,
84+ // { headers: { Authorization: token } }
85+ ) ;
86+
87+ res . data . forEach ( ( expenses ) => { //.expenses
88+ const id = expenses . id ;
89+ const date = expenses . date ;
90+ const categoryValue = expenses . category ;
91+ const descriptionValue = expenses . description ;
92+ const amountValue = expenses . amount ;
93+
94+ let tr = document . createElement ( "tr" ) ;
95+ tr . className = "trStyle" ;
96+ table . appendChild ( tr ) ;
97+
98+ let idValue = document . createElement ( "th" ) ;
99+ idValue . setAttribute ( "scope" , "row" ) ;
100+ idValue . setAttribute ( "style" , "display: none" ) ; //hidden
101+ idValue . appendChild ( document . createTextNode ( id ) ) ;
102+ tr . appendChild ( idValue ) ;
103+
104+ let th = document . createElement ( "th" ) ;
105+ th . setAttribute ( "scope" , "row" ) ;
106+ th . appendChild ( document . createTextNode ( date ) ) ;
107+ tr . appendChild ( th ) ;
108+
109+ let td1 = document . createElement ( "td" ) ;
110+ td1 . appendChild ( document . createTextNode ( categoryValue ) ) ;
111+
112+ let td2 = document . createElement ( "td" ) ;
113+ td2 . appendChild ( document . createTextNode ( descriptionValue ) ) ;
114+
115+ let td3 = document . createElement ( "td" ) ;
116+ td3 . appendChild ( document . createTextNode ( amountValue ) ) ;
117+
118+ let td4 = document . createElement ( "td" ) ;
119+
120+ let deleteBtn = document . createElement ( "button" ) ;
121+ deleteBtn . className = "editDelete btn btn-danger delete" ;
122+ deleteBtn . appendChild ( document . createTextNode ( "Delete" ) ) ;
123+
124+ let editBtn = document . createElement ( "button" ) ;
125+ editBtn . className = "editDelete btn btn-success edit" ;
126+ editBtn . appendChild ( document . createTextNode ( "Edit" ) ) ;
127+
128+ td4 . appendChild ( deleteBtn ) ;
129+ td4 . appendChild ( editBtn ) ;
130+
131+ tr . appendChild ( td1 ) ;
132+ tr . appendChild ( td2 ) ;
133+ tr . appendChild ( td3 ) ;
134+ tr . appendChild ( td4 ) ;
135+ } ) ;
135136
136- // // ---------------------------------------------------------------------//
137-
138- // const ul = document.getElementById("paginationUL");
139- // for (let i = 1; i <= res.data.totalPages; i++) {
140- // const li = document.createElement("li");
141- // const a = document.createElement("a");
142- // li.setAttribute("class", "page-item");
143- // a.setAttribute("class", "page-link");
144- // a.setAttribute("href", "#");
145- // a.appendChild(document.createTextNode(i));
146- // li.appendChild(a);
147- // ul.appendChild(li);
148- // a.addEventListener("click", paginationBtn);
149- // }
150- // } catch {
151- // (err) => console.log(err);
152- // }
153- // }
137+ // ---------------------------------------------------------------------//
138+
139+ // const ul = document.getElementById("paginationUL");
140+ // for (let i = 1; i <= res.data.totalPages; i++) {
141+ // const li = document.createElement("li");
142+ // const a = document.createElement("a");
143+ // li.setAttribute("class", "page-item");
144+ // a.setAttribute("class", "page-link");
145+ // a.setAttribute("href", "#");
146+ // a.appendChild(document.createTextNode(i));
147+ // li.appendChild(a);
148+ // ul.appendChild(li);
149+ // a.addEventListener("click", paginationBtn);
150+ // }
151+ } catch {
152+ ( err ) => console . log ( err ) ;
153+ }
154+ }
154155
155156// async function paginationBtn(e) {
156157// try {
@@ -220,22 +221,29 @@ async function addExpense() {
220221// }
221222// }
222223
223- // async function deleteExpense(e) {
224- // try {
225- // const token = localStorage.getItem("token");
226- // if (e.target.classList.contains("delete")) {
227- // let tr = e.target.parentElement.parentElement;
228- // let id = tr.children[0].textContent;
229- // const res = await axios.get(
230- // `http://localhost:3000/expense/deleteExpense/${id}`,
231- // { headers: { Authorization: token } }
232- // );
233- // window.location.reload();
234- // }
235- // } catch {
236- // (err) => console.log(err);
237- // }
238- // }
224+ table . addEventListener ( "click" , ( e ) => {
225+ deleteExpense ( e ) ;
226+ } ) ;
227+
228+ async function deleteExpense ( e ) {
229+ try {
230+ // const token = localStorage.getItem("token");
231+ if ( e . target . classList . contains ( "delete" ) ) {
232+ let tr = e . target . parentElement . parentElement ; //table row
233+ let id = tr . children [ 0 ] . textContent ;
234+ const res = await axios . get (
235+ `http://localhost:9000/expense/deleteExpense/${ id } `
236+ // ,{ headers: { Authorization: token } }
237+ ) . then ( ( ) => {
238+ window . location . reload ( ) ;
239+ } ) . catch ( ( err ) => {
240+ console . log ( err ) ;
241+ } ) ;
242+ }
243+ } catch {
244+ ( err ) => console . log ( err ) ;
245+ }
246+ }
239247
240248// async function editExpense(e) {
241249// try {
@@ -345,10 +353,8 @@ async function addExpense() {
345353// buyPremiumBtn.addEventListener("click", buyPremium);
346354
347355// document.addEventListener("DOMContentLoaded", isPremiumUser);
348- // document.addEventListener("DOMContentLoaded", getAllExpenses);
349- // table.addEventListener("click", (e) => {
350- // deleteExpense(e);
351- // });
356+
357+
352358// table.addEventListener("click", (e) => {
353359// editExpense(e);
354360// });
0 commit comments