2024-02-12 10:35:09 +08:00
< ? php
include " ../functions.php " ;
2024-02-15 20:42:37 +08:00
2024-02-12 10:35:09 +08:00
$_SESSION [ " url " ] = $_SERVER [ 'REQUEST_URI' ];
if ( $_SESSION [ " userId " ] <> " " ) {
$_SESSION [ " isLoggedIn " ] = true ;
//$customer_data = getCustomerbyLoginId($_SESSION["userId"]);
} else {
$_SESSION [ " isLoggedIn " ] = false ;
header ( " location: login.php " );
exit ();
}
if ( $_SESSION [ " user_type " ] != " admin " ){
header ( " location: login.php?alert=Only admins allowed here! " );
}
$users = getUsers ();
?>
<! DOCTYPE html >
< html lang = " en " dir = " ltr " >
< head >
< style >
. pagination {
display : flex ;
list - style : none ;
padding : 0 ;
margin : 0 ;
justify - content : center ;
}
. pagination a {
color : #333;
text - decoration : none ;
padding : 5 px 10 px ;
border : 1 px solid #ccc;
margin : 0 5 px ;
border - radius : 4 px ;
}
. pagination a . active {
background - color : #007bff;
color : #fff;
}
</ style >
< meta charset = " utf-8 " />
< meta http - equiv = " X-UA-Compatible " content = " IE=edge " />
< meta name = " viewport " content = " width=device-width, initial-scale=1 " />
< meta name = " description " content = " Ekka - Admin Dashboard HTML Template. " >
2024-03-13 10:59:15 +08:00
<!-- < title > Ekka - Admin Dashboard HTML Template .</ title > -->
< title > oBanana B2B - Admin Dashboard </ title >
2024-02-12 10:35:09 +08:00
<!-- GOOGLE FONTS -->
< link rel = " preconnect " href = " https://fonts.googleapis.com " >
< link rel = " preconnect " href = " https://fonts.gstatic.com " crossorigin >
< link href = " https://fonts.googleapis.com/css2?family=Montserrat:wght@200;300;400;500;600;700;800&family=Poppins:wght@300;400;500;600;700;800;900&family=Roboto:wght@400;500;700;900&display=swap " rel = " stylesheet " >
< link href = " https://cdn.materialdesignicons.com/4.4.95/css/materialdesignicons.min.css " rel = " stylesheet " />
<!-- PLUGINS CSS STYLE -->
< link href = " assets/plugins/simplebar/simplebar.css " rel = " stylesheet " />
<!-- No Extra plugin used -->
<!-- ekka CSS -->
< link id = " ekka-css " rel = " stylesheet " href = " assets/css/ekka.css " />
<!-- FAVICON -->
2024-03-13 10:59:15 +08:00
<!-- < link href = " assets/img/favicon.png " rel = " shortcut icon " /> -->
< link href = " assets/img/favicon/favicon.png " rel = " shortcut icon " />
2024-02-12 10:35:09 +08:00
</ head >
< body class = " ec-header-fixed ec-sidebar-fixed ec-sidebar-dark ec-header-light " id = " body " >
<!-- WRAPPER -->
< div class = " wrapper " >
<!-- LEFT MAIN SIDEBAR -->
< ? php include 'left-main-sidebar.php' ?>
<!-- PAGE WRAPPER -->
< div class = " ec-page-wrapper " >
<!-- Header -->
< header class = " ec-main-header " id = " header " >
< nav class = " navbar navbar-static-top navbar-expand-lg " >
<!-- Sidebar toggle button -->
< button id = " sidebar-toggler " class = " sidebar-toggle " ></ button >
<!-- search form -->
< div class = " search-form d-lg-inline-block " >
< div class = " input-group " >
< input type = " text " name = " query " id = " search-input " class = " form-control " placeholder = " search.. " autofocus autocomplete = " off " />
< button type = " button " name = " search " id = " search-btn " class = " btn btn-flat " >
< i class = " mdi mdi-magnify " ></ i >
</ button >
</ div >
< div id = " search-results-container " >
< ul id = " search-results " ></ ul >
</ div >
</ div >
<!-- navbar right -->
< div class = " navbar-right " >
< ul class = " nav navbar-nav " >
<!-- User Account -->
< li class = " dropdown user-menu " >
< button class = " dropdown-toggle nav-link ec-drop " data - bs - toggle = " dropdown " aria - expanded = " false " >
< img src = " assets/img/user/user.png " class = " user-image " alt = " User Image " />
</ button >
< ul class = " dropdown-menu dropdown-menu-right ec-dropdown-menu " >
<!-- User image -->
< li class = " dropdown-header " >
< img src = " assets/img/user/user.png " class = " img-circle " alt = " User Image " />
< div class = " d-inline-block " >
John Deo < small class = " pt-1 " > john . example @ gmail . com </ small >
</ div >
</ li >
< li >
< a href = " user-profile.html " >
< i class = " mdi mdi-account " ></ i > My Profile
</ a >
</ li >
< li >
< a href = " # " >
< i class = " mdi mdi-email " ></ i > Message
</ a >
</ li >
< li >
< a href = " # " > < i class = " mdi mdi-diamond-stone " ></ i > Projects </ a >
</ li >
< li class = " right-sidebar-in " >
< a href = " javascript:0 " > < i class = " mdi mdi-settings-outline " ></ i > Setting </ a >
</ li >
< li class = " dropdown-footer " >
< a href = " index.php " > < i class = " mdi mdi-logout " ></ i > Log Out </ a >
</ li >
</ ul >
</ li >
< li class = " dropdown notifications-menu custom-dropdown " >
< button class = " dropdown-toggle notify-toggler custom-dropdown-toggler " >
< i class = " mdi mdi-bell-outline " ></ i >
</ button >
< div class = " card card-default dropdown-notify dropdown-menu-right mb-0 " >
< div class = " card-header card-header-border-bottom px-3 " >
< h2 > Notifications </ h2 >
</ div >
< div class = " card-body px-0 py-0 " >
< ul class = " nav nav-tabs nav-style-border p-0 justify-content-between " id = " myTab " role = " tablist " >
< li class = " nav-item mx-3 my-0 py-0 " >
< a href = " # " class = " nav-link active pb-3 " id = " home2-tab " data - bs - toggle = " tab " data - bs - target = " #home2 " role = " tab " aria - controls = " home2 " aria - selected = " true " > All ( 10 ) </ a >
</ li >
< li class = " nav-item mx-3 my-0 py-0 " >
< a href = " # " class = " nav-link pb-3 " id = " profile2-tab " data - bs - toggle = " tab " data - bs - target = " #profile2 " role = " tab " aria - controls = " profile2 " aria - selected = " false " > Msgs ( 5 ) </ a >
</ li >
< li class = " nav-item mx-3 my-0 py-0 " >
< a href = " # " class = " nav-link pb-3 " id = " contact2-tab " data - bs - toggle = " tab " data - bs - target = " #contact2 " role = " tab " aria - controls = " contact2 " aria - selected = " false " > Others ( 5 ) </ a >
</ li >
</ ul >
< div class = " tab-content " id = " myTabContent3 " >
< div class = " tab-pane fade show active " id = " home2 " role = " tabpanel " >
< ul class = " list-unstyled " data - simplebar style = " height: 360px " >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u2.jpg " alt = " Image " >
< span class = " status away " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Nitin </ h4 >
< p class = " last-msg " > Lorem ipsum dolor sit , amet
consectetur adipisicing elit . Nam itaque
doloremque odio , eligendi delectus vitae .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 30 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification media-active " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u1.jpg " alt = " Image " >
< span class = " status active " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Lovina </ h4 >
< p class = " last-msg " > Donec mattis augue a nisl
consequat , nec imperdiet ex rutrum . Fusce et
vehicula enim . Sed in enim eu odio vehic .</ p >
< span class = " font-size-12 font-weight-medium text-white " >
< i class = " mdi mdi-clock-outline " ></ i > Just
now ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u5.jpg " alt = " Image " >
< span class = " status away " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Crinali </ h4 >
< p class = " last-msg " > Lorem ipsum dolor sit , amet
consectetur adipisicing elit . Nam itaque
doloremque odio , eligendi delectus vitae .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification event-active " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-info text-white " >
< i class = " mdi mdi-calendar-check font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Upcomming event added </ h4 >
< p class = " last-msg font-size-14 " > 03 / Jan / 2020 ( 1 pm -
2 pm ) </ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 10 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-warning text-white " >
< i class = " mdi mdi-chart-areaspline font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Yearly Sales report </ h4 >
< p class = " last-msg font-size-14 " > Lorem ipsum dolor
sit , amet consectetur adipisicing elit . Nam
itaque doloremque odio , eligendi delectus vitae .
</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-primary text-white " >
< i class = " mdi mdi-account-multiple-check font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > New request </ h4 >
< p class = " last-msg font-size-14 " > Add Dany Jones as
your contact consequat nec imperdiet ex rutrum .
Fusce et vehicula enim . Sed in enim .</ p >
< span class = " my-1 btn btn-sm btn-success " > Accept </ span >
< span class = " my-1 btn btn-sm btn-secondary " > Delete </ span >
< span class = " font-size-12 font-weight-medium text-secondary d-block " >
< i class = " mdi mdi-clock-outline " ></ i > 5 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-danger text-white " >
< i class = " mdi mdi-server-network-off font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Server overloaded </ h4 >
< p class = " last-msg font-size-14 " > Donec mattis augue
a nisl consequat , nec imperdiet ex rutrum . Fusce
et vehicula enim . Sed in enim eu odio vehic .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 30 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-purple text-white " >
< i class = " mdi mdi-playlist-check font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Task complete </ h4 >
< p class = " last-msg font-size-14 " > Nam ut nisi erat .
Ut quis tortor varius , hendrerit arcu quis ,
congue nisl . In scelerisque , sem ut ve .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 2 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
</ ul >
</ div >
< div class = " tab-pane fade " id = " profile2 " role = " tabpanel " >
< ul class = " list-unstyled " data - simplebar style = " height: 360px " >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u6.jpg " alt = " Image " >
< span class = " status away " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Hardiko </ h4 >
< p class = " last-msg " > Donec mattis augue a nisl
consequat , nec imperdiet ex rutrum . Fusce et
vehicula enim . Sed in enim eu odio vehic .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u7.jpg " alt = " Image " >
< span class = " status away " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Browin </ h4 >
< p class = " last-msg " > Nam ut nisi erat . Ut quis tortor
varius , hendrerit arcu quis , congue nisl . In
scelerisque , sem ut ve .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification media-active " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u1.jpg " alt = " Image " >
< span class = " status active " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > jenelia </ h4 >
< p class = " last-msg " > Donec mattis augue a nisl
consequat , nec imperdiet ex rutrum . Fusce et
vehicula enim . Sed in enim eu odio vehic .</ p >
< span class = " font-size-12 font-weight-medium text-white " >
< i class = " mdi mdi-clock-outline " ></ i > Just
now ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u2.jpg " alt = " Image " >
< span class = " status away " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Bhavlio </ h4 >
< p class = " last-msg " > Lorem ipsum dolor sit , amet
consectetur adipisicing elit . Nam itaque
doloremque odio , eligendi delectus vitae .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " position-relative mr-3 " >
< img class = " rounded-circle " src = " assets/img/user/u5.jpg " alt = " Image " >
< span class = " status away " ></ span >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Browini </ h4 >
< p class = " last-msg " > Lorem ipsum dolor sit , amet
consectetur adipisicing elit . Nam itaque
doloremque odio , eligendi delectus vitae .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
</ ul >
</ div >
< div class = " tab-pane fade " id = " contact2 " role = " tabpanel " >
< ul class = " list-unstyled " data - simplebar style = " height: 360px " >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification event-active " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-info text-white " >
< i class = " mdi mdi-calendar-check font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Upcomming event added </ h4 >
< p class = " last-msg font-size-14 " > 03 / Jan / 2020 ( 1 pm -
2 pm ) </ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 10 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-warning text-white " >
< i class = " mdi mdi-chart-areaspline font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > New Sales report </ h4 >
< p class = " last-msg font-size-14 " > Lorem ipsum dolor
sit , amet consectetur adipisicing elit . Nam
itaque doloremque odio , eligendi delectus vitae .
</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 1 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-primary text-white " >
< i class = " mdi mdi-account-multiple-check font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > New Request </ h4 >
< p class = " last-msg font-size-14 " > Add Dany Jones as
your contact consequat nec imperdiet ex rutrum .
Fusce et vehicula enim . Sed in enim .</ p >
< span class = " my-1 btn btn-sm btn-success " > Accept </ span >
< span class = " my-1 btn btn-sm btn-secondary " > Delete </ span >
< span class = " font-size-12 font-weight-medium text-secondary d-block " >
< i class = " mdi mdi-clock-outline " ></ i > 5 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-danger text-white " >
< i class = " mdi mdi-server-network-off font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > Server overloaded </ h4 >
< p class = " last-msg font-size-14 " > Donec mattis augue
a nisl consequat , nec imperdiet ex rutrum . Fusce
et vehicula enim . Sed in enim eu odio vehic .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 30 min
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
< li >
< a href = " javscript:void(0) " class = " media media-message media-notification " >
< div class = " d-flex rounded-circle align-items-center justify-content-center mr-3 media-icon iconbox-45 bg-purple text-white " >
< i class = " mdi mdi-playlist-check font-size-20 " ></ i >
</ div >
< div class = " media-body d-flex justify-content-between " >
< div class = " message-contents " >
< h4 class = " title " > New Task complete </ h4 >
< p class = " last-msg font-size-14 " > Nam ut nisi erat .
Ut quis tortor varius , hendrerit arcu quis ,
congue nisl . In scelerisque , sem ut ve .</ p >
< span class = " font-size-12 font-weight-medium text-secondary " >
< i class = " mdi mdi-clock-outline " ></ i > 2 hrs
ago ...
</ span >
</ div >
</ div >
</ a >
</ li >
</ ul >
</ div >
</ div >
</ div >
</ div >
< ul class = " dropdown-menu dropdown-menu-right d-none " >
< li class = " dropdown-header " > You have 5 notifications </ li >
< li >
< a href = " # " >
< i class = " mdi mdi-account-plus " ></ i > New user registered
< span class = " font-size-12 d-inline-block float-right " >< i class = " mdi mdi-clock-outline " ></ i > 10 AM </ span >
</ a >
</ li >
< li >
< a href = " # " >
< i class = " mdi mdi-account-remove " ></ i > User deleted
< span class = " font-size-12 d-inline-block float-right " >< i class = " mdi mdi-clock-outline " ></ i > 07 AM </ span >
</ a >
</ li >
< li >
< a href = " # " >
< i class = " mdi mdi-chart-areaspline " ></ i > Sales report is ready
< span class = " font-size-12 d-inline-block float-right " >< i class = " mdi mdi-clock-outline " ></ i > 12 PM </ span >
</ a >
</ li >
< li >
< a href = " # " >
< i class = " mdi mdi-account-supervisor " ></ i > New client
< span class = " font-size-12 d-inline-block float-right " >< i class = " mdi mdi-clock-outline " ></ i > 10 AM </ span >
</ a >
</ li >
< li >
< a href = " # " >
< i class = " mdi mdi-server-network-off " ></ i > Server overloaded
< span class = " font-size-12 d-inline-block float-right " >< i class = " mdi mdi-clock-outline " ></ i > 05 AM </ span >
</ a >
</ li >
< li class = " dropdown-footer " >
< a class = " text-center " href = " # " > View All </ a >
</ li >
</ ul >
</ li >
< li class = " right-sidebar-in right-sidebar-2-menu " >
< i class = " mdi mdi-settings-outline mdi-spin " ></ i >
</ li >
</ ul >
</ div >
</ nav >
</ header >
<!-- CONTENT WRAPPER -->
< div class = " ec-content-wrapper ec-ec-content-wrapper mb-m-24px " >
< div class = " content " >
< div class = " breadcrumb-wrapper breadcrumb-contacts " >
< div >
< h1 > User Card </ h1 >
< p class = " breadcrumbs " >< span >< a href = " index.php " > Home </ a ></ span >
< span >< i class = " mdi mdi-chevron-right " ></ i ></ span > User
</ p >
</ div >
</ div >
< div class = " row " >
< ? php
$totalUsers = count ( $users );
$usersPerPage = 20 ;
$totalPages = ceil ( $totalUsers / $usersPerPage );
$currentPage = isset ( $_GET [ 'page' ]) ? $_GET [ 'page' ] : 1 ;
$start = ( $currentPage - 1 ) * $usersPerPage ;
$end = $start + $usersPerPage - 1 ;
for ( $x = $start ; $x <= $end && $x < $totalUsers ; $x ++ ) {
$user = $users [ $x ];
// $customerUser = getCustomerbyLoginId($user['_id']);
// $vendorUser = getVendorbyLoginId($user['_id']);
?>
< div class = " col-lg-6 col-xl-4 mb-24px " >
< div class = " ec-user-card card card-default p-4 " >
< a href = " javascript:0 " class = " view-detail " id = " modalTrigger-<?php echo $user['_id'] ; ?> " >< i class = " mdi mdi-eye-plus-outline " ></ i ></ a >
<!-- < a href = " javascript:0 " data - bs - toggle = " modal " data - bs - target = " #modalContact-<?php echo $user['_id'] ; ?> " class = " view-detail " >< i class = " mdi mdi-eye-plus-outline " ></ i ></ a > -->
< a href = " javascript:0 " class = " media text-secondary " >
< img src = " https://upload.wikimedia.org/wikipedia/commons/7/7e/Circle-icons-profile.svg " class = " mr-3 img-fluid " alt = " Avatar Image " >
< div class = " media-body " >
< h5 class = " mt-0 mb-2 text-dark " >< ? php echo $user [ 'username' ] ?> </h5>
< div class = " icon " >
< li class = " d-flex mb-1 " >
< i class = " mdi mdi-account-key " style = " font-size: 20px; " ></ i >
< span >< ? php echo $user [ 'user_type' ] ?> </span>
</ li >
</ div >
</ div >
</ a >
</ div >
</ div >
< div class = " modal fade modal-contact-detail " id = " modalContact-<?php echo $user['_id'] ; ?> " tabindex = " -1 " aria - hidden = " true " >
< div class = " modal-dialog modal-dialog-centered modal-lg " role = " document " >
< div class = " modal-content " >
< div class = " modal-header justify-content-end border-bottom-0 " >
< button type = " button " class = " btn-close-icon " data - bs - dismiss = " modal " aria - label = " Close " >
< i class = " mdi mdi-close " ></ i >
</ button >
</ div >
< div class = " modal-body pt-0 " >
< div class = " row no-gutters " >
< div class = " col-md-12 " >
< div class = " profile-content-left px-4 " >
< form action = " user-card-action.php " method = " post " >
< div class = " row " >
< div class = " col-md-6 " >
< div class = " form-group " >
< label class = " text-dark font-weight-medium pt-3 mb-2 " > Email </ label >
< input type = " text " name = " username " class = " form-control " value = " <?php echo $user['username'] ; ?> " readonly >
</ div >
</ div >
< div class = " col-md-6 " >
< div class = " form-group " >
< label class = " text-dark font-weight-medium pt-3 mb-2 " > User Type </ label >
< select class = " form-select " name = " user_type " >
< option value = " " > Select User Type </ option >
< option value = " admin " < ? php echo ( $user [ 'user_type' ] === 'admin' ) ? 'selected' : '' ; ?> >admin</option>
< option value = " vendor " < ? php echo ( $user [ 'user_type' ] === 'vendor' ) ? 'selected' : '' ; ?> >vendor</option>
< option value = " customer " < ? php echo ( $user [ 'user_type' ] === 'customer' ) ? 'selected' : '' ; ?> >customer</option>
</ select >
</ div >
</ div >
< div class = " col-md-6 " >
< div class = " form-group " >
< input type = " hidden " name = " _id " class = " form-control " value = " <?php echo $user['_id'] ; ?> " >
</ div >
</ div >
</ div >
< div class = " col-md-12 " >
< button type = " submit " class = " btn btn-primary " > Submit </ button >
</ div >
</ form >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< script >
document . addEventListener ( 'DOMContentLoaded' , function () {
< ? php foreach ( $users as $user ) { ?>
registerModalTrigger ( '<?php echo $user[' _id ']; ?>' );
< ? php } ?>
});
function registerModalTrigger ( userId ) {
var modalTrigger = document . getElementById ( 'modalTrigger-' + userId );
var sessionToken = '<?php echo isset($_SESSION["token"]) ? $_SESSION["token"] : ""; ?>' ;
var email = '<?php echo isset($_SESSION["email"]) ? $_SESSION["email"] : ""; ?>' ;
var password = '<?php echo isset($_SESSION["password"]) ? $_SESSION["password"] : ""; ?>' ;
if ( modalTrigger ) {
modalTrigger . addEventListener ( 'click' , function () {
// Renew the login token before showing the modal
renewToken ( sessionToken , email , password , userId );
});
}
}
function renewToken ( sessionToken , email , password , userId ) {
// Add your logic here to renew the login token
login ( email , password , sessionToken , function () {
// Callback function after renewing the token, e.g., show the modal
showTheModal ( userId );
});
}
function login ( username , password , sessionToken , callback ) {
2024-02-15 20:42:37 +08:00
fetch ( " https://<?php echo $_SESSION["data_endpoint"] ; ?>/api/v1/login " , {
2024-02-12 10:35:09 +08:00
method : " POST " ,
headers : {
" Content-Type " : " application/json " ,
" X-Api-Key " : " { { apiKey}} "
},
body : JSON . stringify ({
username : username ,
password : password
})
})
. then ( response => {
if ( response . ok ) {
return response . json ();
} else {
throw new Error ( " Unable to login " );
}
})
. then ( data => {
// Update the session token on the server side
fetch ( " update-token-session.php " , {
method : " POST " ,
headers : {
" Content-Type " : " application/json "
},
body : JSON . stringify ({
token : data . token
})
})
. then ( response => response . json ())
. then ( result => {
if ( result . status === 'success' ) {
// Update the session token in the client-side variable
sessionToken = data . token ;
console . log ( " New Token: " , sessionToken );
callback ();
} else {
throw new Error ( " Unable to update session token " );
}
});
})
. catch ( error => {
console . error ( " Error: " , error . message );
});
}
function showTheModal ( userId ) {
// Add your logic here to show the modal
// You may need to trigger it manually if using Bootstrap modal
$ ( '#modalContact-' + userId ) . modal ( 'show' );
}
</ script >
< ? php } ?>
</ div >
<!-- Pagination Links -->
< div class = " pagination " >
< ? php
for ( $page = 1 ; $page <= $totalPages ; $page ++ ) {
echo '<a href="?page=' . $page . '">' . $page . '</a>' ;
}
?>
</ div >
<!-- Contact Modal -->
<!-- Add Contact Button -->
< div class = " modal fade modal-add-contact " id = " modal-add-contact " tabindex = " -1 " role = " dialog " aria - hidden = " true " >
< div class = " modal-dialog modal-dialog-centered modal-lg " role = " document " >
< div class = " modal-content " >
< form >
< div class = " modal-header px-4 " >
< h5 class = " modal-title " id = " exampleModalCenterTitle " > Add New User </ h5 >
</ div >
< div class = " modal-body px-4 " >
< div class = " form-group row mb-6 " >
< label for = " coverImage " class = " col-sm-4 col-lg-2 col-form-label " > User
Image </ label >
< div class = " col-sm-8 col-lg-10 " >
< div class = " custom-file mb-1 " >
< input type = " file " class = " custom-file-input " id = " coverImage " required >
< label class = " custom-file-label " for = " coverImage " > Choose
file ...</ label >
< div class = " invalid-feedback " > Example invalid custom file feedback
</ div >
</ div >
</ div >
</ div >
< div class = " row mb-2 " >
< div class = " col-lg-6 " >
< div class = " form-group " >
< label for = " firstName " > First name </ label >
< input type = " text " class = " form-control " id = " firstName " value = " John " >
</ div >
</ div >
< div class = " col-lg-6 " >
< div class = " form-group " >
< label for = " lastName " > Last name </ label >
< input type = " text " class = " form-control " id = " lastName " value = " Deo " >
</ div >
</ div >
< div class = " col-lg-6 " >
< div class = " form-group mb-4 " >
< label for = " userName " > User name </ label >
< input type = " text " class = " form-control " id = " userName " value = " johndoe " >
</ div >
</ div >
< div class = " col-lg-6 " >
< div class = " form-group mb-4 " >
< label for = " email " > Email </ label >
< input type = " email " class = " form-control " id = " email " value = " johnexample@gmail.com " >
</ div >
</ div >
< div class = " col-lg-6 " >
< div class = " form-group mb-4 " >
< label for = " Birthday " > Birthday </ label >
< input type = " text " class = " form-control " id = " Birthday " value = " 10-12-1991 " >
</ div >
</ div >
< div class = " col-lg-6 " >
< div class = " form-group mb-4 " >
< label for = " event " > Address </ label >
< input type = " text " class = " form-control " id = " event " value = " Address here " >
</ div >
</ div >
</ div >
</ div >
< div class = " modal-footer px-4 " >
< button type = " button " class = " btn btn-secondary btn-pill " data - bs - dismiss = " modal " > Cancel </ button >
< button type = " button " class = " btn btn-primary btn-pill " > Save Contact </ button >
</ div >
</ form >
</ div >
</ div >
</ div >
</ div > <!-- End Content -->
</ div > <!-- End Content Wrapper -->
<!-- Footer -->
< footer class = " footer mt-auto " >
< div class = " copyright bg-white " >
< p >
Copyright & copy ; < span id = " ec-year " ></ span >< a class = " text-primary " href = " https://themeforest.net/user/ashishmaraviya " target = " _blank " > Ekka Admin
Dashboard </ a >. All Rights Reserved .
</ p >
</ div >
</ footer >
</ div > <!-- End Page Wrapper -->
</ div > <!-- End Wrapper -->
<!-- Common Javascript -->
< script src = " assets/plugins/jquery/jquery-3.5.1.min.js " ></ script >
< script src = " assets/js/bootstrap.bundle.min.js " ></ script >
< script src = " assets/plugins/simplebar/simplebar.min.js " ></ script >
< script src = " assets/plugins/jquery-zoom/jquery.zoom.min.js " ></ script >
< script src = " assets/plugins/slick/slick.min.js " ></ script >
<!-- Option Switcher -->
< script src = " assets/plugins/options-sidebar/optionswitcher.js " ></ script >
<!-- Ekka Custom -->
< script src = " assets/js/ekka.js " ></ script >
</ body >
</ html >