1
1
<!DOCTYPE html>
2
2
< html lang ="en ">
3
-
4
3
< head >
5
4
< meta charset ="UTF-8 ">
6
5
< meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
7
- < title > All Users </ title >
6
+ < title > User List </ title >
8
7
< link rel ="stylesheet " href ="./css/users.css ">
9
8
< link href ="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css " rel ="stylesheet " id ="bootstrap-css ">
10
9
< script src ="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js "> </ script >
11
10
< script src ="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js "> </ script >
12
11
< script src ="https://cdnjs.cloudflare.com/ajax/libs/axios/1.2.3/axios.min.js " integrity ="sha512-L4lHq2JI/GoKsERT8KYa72iCwfSrKYWEyaBxzJeeITM9Lub5vlTj8tufqYk056exhjo2QDEipJrg6zen/DDtoQ== " crossorigin ="anonymous " referrerpolicy ="no-referrer "> </ script >
13
12
</ head >
14
-
15
13
< body >
16
- < div style ="width: 100%; height: 60px; ">
17
- < nav class ="navbar navbar-expand-lg navbar-dark bg-dark ">
18
- < a class ="navbar-brand " href ="# "> EventM - Enjoy the Events in your City</ a >
19
- < button class ="navbar-toggler " type ="button " data-toggle ="collapse " data-target ="#navbarSupportedContent " aria-controls ="navbarSupportedContent " aria-expanded ="false " aria-label ="Toggle navigation ">
20
- < span class ="navbar-toggler-icon "> </ span >
21
- </ button >
22
-
23
- < div class ="collapse navbar-collapse " id ="navbarSupportedContent ">
24
- < ul class ="navbar-nav ml-auto mr-3 " id ="navbar-items " >
25
-
26
- </ ul >
27
- </ div >
28
- </ nav >
14
+ < div style ="width: 100%; height: 60px; ">
15
+ < nav class ="navbar navbar-expand-lg navbar-dark bg-dark ">
16
+ < a class ="navbar-brand " href ="# "> EventM - Enjoy the Events in your City</ a >
17
+ < button class ="navbar-toggler " type ="button " data-toggle ="collapse " data-target ="#navbarSupportedContent " aria-controls ="navbarSupportedContent " aria-expanded ="false " aria-label ="Toggle navigation ">
18
+ < span class ="navbar-toggler-icon "> </ span >
19
+ </ button >
20
+ < div class ="collapse navbar-collapse " id ="navbarSupportedContent ">
21
+ < ul class ="navbar-nav ml-auto mr-3 " id ="navbar-items " >
22
+ </ ul >
29
23
</ div >
24
+ </ nav >
25
+ </ div >
30
26
< div class ="container ">
31
27
< h1 > All Users</ h1 >
32
28
< table >
@@ -40,13 +36,63 @@ <h1>All Users</h1>
40
36
</ tr >
41
37
</ thead >
42
38
< tbody id ="userTableBody ">
43
-
44
39
</ tbody >
45
40
</ table >
46
41
</ div >
42
+ < script >
43
+ document . addEventListener ( "DOMContentLoaded" , function ( ) {
44
+ const userTableBody = document . getElementById ( "userTableBody" ) ;
45
+
46
+ const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2NGM2NjU4Nzg5YzVlNDU4NTg3NzdmMWUiLCJpYXQiOjE2OTA3MzgxMTksImV4cCI6MTY5MDgyNDUxOX0.IfBnFvEq9u0g1c5ko8b5hKGA22j4XDCxsTZiqvJG410" ;
47
47
48
- < script src ="./js/users.js "> </ script >
48
+ axios . get ( "http://localhost:8000/api/user/all" , {
49
+ headers : {
50
+ Authorization : `Bearer ${ token } ` ,
51
+ } ,
52
+ } )
53
+ . then ( ( response ) => {
54
+ const data = response . data ;
55
+ if ( data . users && data . users . length > 0 ) {
56
+ data . users . forEach ( ( user ) => {
57
+ const row = document . createElement ( "tr" ) ;
58
+ const nameCell = document . createElement ( "td" ) ;
59
+ nameCell . textContent = user . firstName + " " + user . lastName ;
60
+ row . appendChild ( nameCell ) ;
61
+ const emailCell = document . createElement ( "td" ) ;
62
+ emailCell . textContent = user . email ;
63
+ row . appendChild ( emailCell ) ;
64
+ const cityCell = document . createElement ( "td" ) ;
65
+ cityCell . textContent = user . city ;
66
+ row . appendChild ( cityCell ) ;
67
+ const interestsCell = document . createElement ( "td" ) ;
68
+ interestsCell . textContent = user . interests . join ( ", " ) ;
69
+ row . appendChild ( interestsCell ) ;
70
+ const eventsCell = document . createElement ( "td" ) ;
71
+ const eventNames = user . events . map ( ( event ) => event . eventName ) ;
72
+ eventsCell . textContent = eventNames . join ( ", " ) ;
73
+ row . appendChild ( eventsCell ) ;
74
+ userTableBody . appendChild ( row ) ;
75
+ } ) ;
76
+ } else {
77
+ const row = document . createElement ( "tr" ) ;
78
+ const messageCell = document . createElement ( "td" ) ;
79
+ messageCell . colSpan = 5 ;
80
+ messageCell . textContent = "No users found" ;
81
+ row . appendChild ( messageCell ) ;
82
+ userTableBody . appendChild ( row ) ;
83
+ }
84
+ } )
85
+ . catch ( ( error ) => {
86
+ console . error ( "Error fetching users:" , error ) ;
87
+ const row = document . createElement ( "tr" ) ;
88
+ const messageCell = document . createElement ( "td" ) ;
89
+ messageCell . colSpan = 5 ;
90
+ messageCell . textContent = "Error fetching users" ;
91
+ row . appendChild ( messageCell ) ;
92
+ userTableBody . appendChild ( row ) ;
93
+ } ) ;
94
+ } ) ;
95
+ </ script >
49
96
< script src ="./js/nav.js "> </ script >
50
97
</ body >
51
-
52
98
</ html >
0 commit comments