@@ -28,10 +28,14 @@ function isServicesPage(pathname) {
2828 return pathname == "/services" || pathname == "/services/" ;
2929}
3030
31- function isTeamPage ( pathname ) {
31+ function isTeamsPage ( pathname ) {
3232 return pathname == "/teams" || pathname == "/teams/" ;
3333}
3434
35+ function isUsersPage ( pathname ) {
36+ return pathname == "/users" || pathname == "/users/" ;
37+ }
38+
3539function getHumanTimeHasPassed ( dt_end ) {
3640 var dt = dt_end . getTime ( ) ;
3741 var dt_now = new Date ( ) . getTime ( ) ;
@@ -128,14 +132,14 @@ function showLoginForm() {
128132 $ ( '#signin_password' ) . unbind ( ) ;
129133 $ ( '#signin_password' ) . keypress ( function ( e ) {
130134 if ( e . which == 13 ) {
131- doSignin ( ) ;
135+ doSignIn ( ) ;
132136 return false ; // <---- Add this line
133137 }
134138 } ) ;
135139 $ ( '#modal_signin' ) . modal ( 'show' ) ;
136140}
137141
138- function doSignin ( ) {
142+ function doSignIn ( ) {
139143 var username = $ ( '#signin_username' ) . val ( ) ;
140144 var password = $ ( '#signin_password' ) . val ( ) ;
141145 $ ( '#sign_error_info' ) . html ( '' )
@@ -355,6 +359,43 @@ function renderServicesPage() {
355359 } )
356360}
357361
362+ function renderUsersPage ( ) {
363+ $ ( '.spa-web-page' ) . css ( { "display" : "" } )
364+ $ ( '#users_page' ) . css ( { "display" : "block" } )
365+ $ ( '#users_page_error' ) . css ( { "display" : "none" } ) ;
366+ $ ( '#users_page_error' ) . html ( "" ) ;
367+ if ( window . location . pathname != "/users/" ) {
368+ window . location . href = "/users/" ;
369+ }
370+ window . ctf01d_tp_api . users_list ( ) . fail ( function ( res ) {
371+ $ ( '#users_page_error' ) . css ( {
372+ "display" : "block"
373+ } ) ;
374+ $ ( '#users_page_error' ) . html ( "Error loading users" ) ;
375+ console . error ( "users_list" , res ) ;
376+ } ) . done ( function ( res ) {
377+ var usersHtml = ""
378+ for ( var i in res ) {
379+ var user_info = res [ i ] ;
380+ console . log ( "user_info" , user_info ) ;
381+ usersHtml += '<div class="card services-card" style="width: 20rem;">' ;
382+ usersHtml += ' <img class="users-card-avatar" src="' + user_info . avatar_url + '" alt="Image of user">' ;
383+ usersHtml += ' <div class="card-body">' ;
384+ usersHtml += ' <h5 class="card-title">@' + user_info . user_name + ' - ' + escapeHtml ( user_info . display_name ) + '</h5>' ;
385+ usersHtml += ' <p class="card-text"> ' + escapeHtml ( user_info . id ) + '</p>' ;
386+ usersHtml += ' <p class="card-subtitle mb-2 text-muted"> role ' + escapeHtml ( user_info . role ) + '</p>' ;
387+ usersHtml += ' <p class="card-text"> state ' + escapeHtml ( user_info . status ) + '</p>' ;
388+ usersHtml += ' </div>' ;
389+ usersHtml += ' <div class="card-body">' ;
390+ usersHtml += ' <button class="btn btn-secondary" onclick="showProfileUser(\'' + user_info . id + '\');">Profile</button>' ;
391+ usersHtml += ' <button class="btn btn-primary" onclick="showUpdateUser(\'' + user_info . id + '\');">Update</button>' ;
392+ usersHtml += ' <button class="btn btn-danger" onclick="deleteUser(\'' + user_info . id + '\');">Delete</button>' ;
393+ usersHtml += ' </div>' ;
394+ usersHtml += '</div>' ;
395+ }
396+ $ ( '#users_page_list' ) . html ( usersHtml ) ;
397+ } )
398+ }
358399
359400function renderPage ( pathname ) {
360401 console . log ( "pathname" , pathname )
@@ -367,7 +408,9 @@ function renderPage(pathname) {
367408 renderGamesPage ( ) ;
368409 } else if ( isServicesPage ( pathname ) ) {
369410 renderServicesPage ( ) ;
370- } else if ( isTeamPage ( pathname ) ) {
411+ } else if ( isUsersPage ( pathname ) ) {
412+ renderUsersPage ( ) ;
413+ } else if ( isTeamsPage ( pathname ) ) {
371414 $ ( '#teams_page' ) . css ( { "display" : "block" } )
372415 $ ( '.spa-web-page' ) . css ( {
373416 "display" : ""
@@ -387,12 +430,12 @@ $(document).ready(function () {
387430
388431 window . ctf01d_tp_api . auth_session ( ) . fail ( function ( res ) {
389432 console . error ( res ) ;
390- $ ( '#btn_signin ' ) . css ( { "display" : "inline-block" } ) ;
391- $ ( '#btn_signout ' ) . css ( { "display" : "none" } ) ;
433+ $ ( '#btn_sign_in ' ) . css ( { "display" : "inline-block" } ) ;
434+ $ ( '#btn_sign_out ' ) . css ( { "display" : "none" } ) ;
392435 $ ( '#btn_profile' ) . css ( { "display" : "none" } ) ;
393436 } ) . done ( function ( res ) {
394- $ ( '#btn_signin ' ) . css ( { "display" : "none" } ) ;
395- $ ( '#btn_signout ' ) . css ( { "display" : "inline-block" } ) ;
437+ $ ( '#btn_sign_in ' ) . css ( { "display" : "none" } ) ;
438+ $ ( '#btn_sign_out ' ) . css ( { "display" : "inline-block" } ) ;
396439 $ ( '#btn_profile' ) . css ( { "display" : "inline-block" } ) ;
397440 $ ( '#btn_profile' ) . html ( res . name + " (" + res . role + ")" ) ;
398441 } )
0 commit comments