diff options
author | AlisaLinUwU <alisalinuwu@gmail.com> | 2025-01-26 10:42:28 +0500 |
---|---|---|
committer | AlisaLinUwU <alisalinuwu@gmail.com> | 2025-01-26 10:42:28 +0500 |
commit | 0225bdb772d1334cc1aa7ab0fc3678df0864df6b (patch) | |
tree | 85a8c8e4fcf1d935fcbad54886b73410c8cb2e26 /src/main/resources/templates/admin-panel |
Initializemain
Diffstat (limited to 'src/main/resources/templates/admin-panel')
9 files changed, 2832 insertions, 0 deletions
diff --git a/src/main/resources/templates/admin-panel/index.html b/src/main/resources/templates/admin-panel/index.html new file mode 100644 index 0000000..4380882 --- /dev/null +++ b/src/main/resources/templates/admin-panel/index.html @@ -0,0 +1,334 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Dashboard</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Dashboard</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Dashboard</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <!-- Small boxes (Stat box) --> + <div class="row"> + <div class="col-lg-3 col-6"> + <!-- small box --> + <div class="small-box bg-info"> + <div class="inner"> + <h3 th:text="${appointments}"></h3> + + <p>Appointments</p> + </div> + <div class="icon"> + <i class="ion ion-bag"></i> + </div> + <a th:href="@{/admin-panel/tables/appointments}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a> + </div> + </div> + <!-- ./col --> + <div class="col-lg-3 col-6"> + <!-- small box --> + <div class="small-box bg-success"> + <div class="inner"> + <h3>100<sup style="font-size: 20px">%</sup></h3> + + <p>Bounce Rate</p> + </div> + <div class="icon"> + <i class="ion ion-stats-bars"></i> + </div> + <a href="#" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a> + </div> + </div> + <!-- ./col --> + <div class="col-lg-3 col-6"> + <!-- small box --> + <div class="small-box bg-warning"> + <div class="inner"> + <h3 th:text="${clients}"></h3> + + <p>Clients</p> + </div> + <div class="icon"> + <i class="ion ion-person-add"></i> + </div> + <a th:href="@{/admin-panel/tables/appointments}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a> + </div> + </div> + <!-- ./col --> + <div class="col-lg-3 col-6"> + <!-- small box --> + <div class="small-box bg-danger"> + <div class="inner"> + <h3 th:text="${views}"></h3> + + <p>Views Count</p> + </div> + <div class="icon"> + <i class="ion ion-pie-graph"></i> + </div> + <a th:href="@{/admin-panel/tables/visitors}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a> + </div> + </div> + <!-- ./col --> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/forms/add-barber.html b/src/main/resources/templates/admin-panel/pages/forms/add-barber.html new file mode 100644 index 0000000..5e4a773 --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/forms/add-barber.html @@ -0,0 +1,309 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Add barber</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Add Barber</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Add Barber</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <!-- Small boxes (Stat box) --> + <div class="row"> + <div class="col-md-12"> + <div class="card card-primary"> + <div class="card-header"> + <h3 class="card-title">Barber</h3> + </div> + + <form method="post" th:action="@{/save/barber}" enctype="multipart/form-data"> + <div class="card-body"> + <div class="form-group"> + <label for="firstName">Name</label> + <input class="form-control" id="firstName" name="firstName" type="text" placeholder="Enter name"> + </div> + <div class="form-group"> + <label for="level">Level</label> + <select class="form-control" id="level" name="level" placeholder="Choose level"> + <option th:each="level: ${levels}" th:value="${level.name}" th:text="${level.name}"></option> + </select> + </div> + <div class="form-group"> + <label for="photo">Photo</label> + <div class="input-group"> + <div class="custom-file"> + <input type="file" class="custom-file-input" id="photo" name="photo" accept="image/*"> + <label class="custom-file-label" for="photo">Choose photo</label> + </div> + </div> + </div> + </div> + + <div class="card-footer"> + <button type="submit" class="btn btn-primary">Add</button> + </div> + </form> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/forms/add-slide.html b/src/main/resources/templates/admin-panel/pages/forms/add-slide.html new file mode 100644 index 0000000..2b032c9 --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/forms/add-slide.html @@ -0,0 +1,307 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Add slide</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Add Slide</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Add Slide</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <!-- Small boxes (Stat box) --> + <div class="row"> + <div class="col-md-12"> + <div class="card card-primary"> + <div class="card-header"> + <h3 class="card-title">Slide</h3> + </div> + + <form method="post" th:action="@{/save/slide}" enctype="multipart/form-data"> + <div class="card-body"> + <div class="form-group"> + <label for="title">Title</label> + <input class="form-control" id="title" name="title" type="text" placeholder="Enter title"> + </div> + <div class="form-group"> + <label for="description">Description</label> + <input class="form-control" id="description" name="description" type="text" placeholder="Enter description"> + </div> + <div class="form-group"> + <label for="photo">Photo</label> + <div class="input-group"> + <div class="custom-file"> + <input type="file" class="custom-file-input" id="photo" name="photo" accept="image/*"> + <label class="custom-file-label" for="photo">Choose photo</label> + </div> + </div> + </div> + </div> + + <div class="card-footer"> + <button type="submit" class="btn btn-primary">Add</button> + </div> + </form> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/forms/add-testimonial.html b/src/main/resources/templates/admin-panel/pages/forms/add-testimonial.html new file mode 100644 index 0000000..7c94cde --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/forms/add-testimonial.html @@ -0,0 +1,307 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Add testimonial</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Add Testimonial</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Add Testimonial</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <!-- Small boxes (Stat box) --> + <div class="row"> + <div class="col-md-12"> + <div class="card card-primary"> + <div class="card-header"> + <h3 class="card-title">Testimonial</h3> + </div> + + <form method="post" th:action="@{/save/testimonial}" enctype="multipart/form-data"> + <div class="card-body"> + <div class="form-group"> + <label for="name">Name</label> + <input class="form-control" id="name" name="name" type="text" placeholder="Enter name"> + </div> + <div class="form-group"> + <label for="comment">Comment</label> + <input class="form-control" id="comment" name="comment" type="text" placeholder="Enter comment"> + </div> + <div class="form-group"> + <label for="photo">Photo</label> + <div class="input-group"> + <div class="custom-file"> + <input type="file" class="custom-file-input" id="photo" name="photo" accept="image/*"> + <label class="custom-file-label" for="photo">Choose photo</label> + </div> + </div> + </div> + </div> + + <div class="card-footer"> + <button type="submit" class="btn btn-primary">Add</button> + </div> + </form> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/tables/appointments.html b/src/main/resources/templates/admin-panel/pages/tables/appointments.html new file mode 100644 index 0000000..28f60f9 --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/tables/appointments.html @@ -0,0 +1,321 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Appointments</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Appointments</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Appointments</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <div class="row"> + <div class="col-12"> + <div class="card"> + <div class="card-header"> + <h3 class="card-title">Appointments</h3> + <div class="card-tools"> + <div class="input-group input-group-sm" style="width: 150px;"> + <input type="text" name="table_search" class="form-control float-right" placeholder="Search"> + <div class="input-group-append"> + <button type="submit" class="btn btn-default"> + <i class="fas fa-search"></i> + </button> + </div> + </div> + </div> + </div> + + <div class="card-body table-responsive p-0"> + <table class="table table-hover text-nowrap"> + <thead> + <tr> + <th>ID</th> + <th>Date</th> + <th>Time</th> + <th>Service</th> + <th>Barber</th> + <th>Name</th> + <th>Telephone number</th> + <th>Email</th> + </tr> + </thead> + <tbody> + <tr th:each="appointment: ${appointments}"> + <td th:text="${appointment.id}"></td> + <td th:text="${appointment.date}"></td> + <td th:text="${appointment.time}"></td> + <td th:text="${appointment.service}"></td> + <td th:text="${appointment.barber}"></td> + <td th:text="${appointment.name}"></td> + <td th:text="${appointment.telephoneNumber}"></td> + <td th:text="${appointment.email}"></td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +<!-- AdminLTE dashboard demo (This is only for demo purposes) --> +<script th:src="@{/dist/js/pages/dashboard.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/tables/barbers.html b/src/main/resources/templates/admin-panel/pages/tables/barbers.html new file mode 100644 index 0000000..5c7d235 --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/tables/barbers.html @@ -0,0 +1,315 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Barbers</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Barbers</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Barbers</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <div class="row"> + <div class="col-12"> + <div class="card"> + <div class="card-header"> + <h3 class="card-title">Barbers</h3> + <div class="card-tools"> + <div class="input-group input-group-sm" style="width: 150px;"> + <input type="text" name="table_search" class="form-control float-right" placeholder="Search"> + <div class="input-group-append"> + <button type="submit" class="btn btn-default"> + <i class="fas fa-search"></i> + </button> + </div> + </div> + </div> + </div> + + <div class="card-body table-responsive p-0"> + <table class="table table-hover text-nowrap"> + <thead> + <tr> + <th>ID</th> + <th>Name</th> + <th>Level</th> + <th>Photo</th> + </tr> + </thead> + <tbody> + <tr th:each="barber: ${barbers}"> + <td th:text="${barber.id}"></td> + <td th:text="${barber.firstName}"></td> + <td th:text="${barber.level.name}"></td> + <td> + <img width="128" height="128" alt="Photo" src="" th:src="*{'data:image/png;base64,' + barber.encodedPhoto}"> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +<!-- AdminLTE dashboard demo (This is only for demo purposes) --> +<script th:src="@{/dist/js/pages/dashboard.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/tables/slides.html b/src/main/resources/templates/admin-panel/pages/tables/slides.html new file mode 100644 index 0000000..a5ec016 --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/tables/slides.html @@ -0,0 +1,315 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Slides</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Slides</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Slides</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <div class="row"> + <div class="col-12"> + <div class="card"> + <div class="card-header"> + <h3 class="card-title">Slides</h3> + <div class="card-tools"> + <div class="input-group input-group-sm" style="width: 150px;"> + <input type="text" name="table_search" class="form-control float-right" placeholder="Search"> + <div class="input-group-append"> + <button type="submit" class="btn btn-default"> + <i class="fas fa-search"></i> + </button> + </div> + </div> + </div> + </div> + + <div class="card-body table-responsive p-0"> + <table class="table table-hover text-nowrap"> + <thead> + <tr> + <th>ID</th> + <th>Title</th> + <th>Description</th> + <th>Photo</th> + </tr> + </thead> + <tbody> + <tr th:each="slide: ${slides}"> + <td th:text="${slide.id}"></td> + <td th:text="${slide.title}"></td> + <td th:text="${slide.description}"></td> + <td> + <img width="256" height="128" alt="Photo" src="" th:src="*{'data:image/png;base64,' + slide.encodedPhoto}"> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +<!-- AdminLTE dashboard demo (This is only for demo purposes) --> +<script th:src="@{/dist/js/pages/dashboard.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/tables/testimonials.html b/src/main/resources/templates/admin-panel/pages/tables/testimonials.html new file mode 100644 index 0000000..d8eadb3 --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/tables/testimonials.html @@ -0,0 +1,315 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Testimonials</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Testimonials</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Testimonials</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <div class="row"> + <div class="col-12"> + <div class="card"> + <div class="card-header"> + <h3 class="card-title">Testimonials</h3> + <div class="card-tools"> + <div class="input-group input-group-sm" style="width: 150px;"> + <input type="text" name="table_search" class="form-control float-right" placeholder="Search"> + <div class="input-group-append"> + <button type="submit" class="btn btn-default"> + <i class="fas fa-search"></i> + </button> + </div> + </div> + </div> + </div> + + <div class="card-body table-responsive p-0"> + <table class="table table-hover text-nowrap"> + <thead> + <tr> + <th>ID</th> + <th>Name</th> + <th>Comment</th> + <th>Photo</th> + </tr> + </thead> + <tbody> + <tr th:each="testimonial: ${testimonials}"> + <td th:text="${testimonial.id}"></td> + <td th:text="${testimonial.name}"></td> + <td th:text="${testimonial.comment}"></td> + <td> + <img width="64" height="64" alt="Photo" src="" th:src="*{'data:image/png;base64,' + testimonial.encodedPhoto}"> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +<!-- AdminLTE dashboard demo (This is only for demo purposes) --> +<script th:src="@{/dist/js/pages/dashboard.js}"></script> +</body> +</html> diff --git a/src/main/resources/templates/admin-panel/pages/tables/visitors.html b/src/main/resources/templates/admin-panel/pages/tables/visitors.html new file mode 100644 index 0000000..9d6fdeb --- /dev/null +++ b/src/main/resources/templates/admin-panel/pages/tables/visitors.html @@ -0,0 +1,309 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Admin Panel | Visitors</title> + + <!-- Google Font: Source Sans Pro --> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> + <!-- Font Awesome --> + <link rel="stylesheet" th:href="@{/plugins/fontawesome-free/css/all.min.css}"> + <!-- Ionicons --> + <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css}"> + <!-- Tempusdominus Bootstrap 4 --> + <link rel="stylesheet" th:href="@{/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css}"> + <!-- iCheck --> + <link rel="stylesheet" th:href="@{/plugins/icheck-bootstrap/icheck-bootstrap.min.css}"> + <!-- JQVMap --> + <link rel="stylesheet" th:href="@{/plugins/jqvmap/jqvmap.min.css}"> + <!-- Theme style --> + <link rel="stylesheet" th:href="@{/dist/css/adminlte.min.css}"> + <!-- overlayScrollbars --> + <link rel="stylesheet" th:href="@{/plugins/overlayScrollbars/css/OverlayScrollbars.min.css}"> + <!-- Daterange picker --> + <link rel="stylesheet" th:href="@{/plugins/daterangepicker/daterangepicker.css}"> + <!-- summernote --> + <link rel="stylesheet" th:href="@{/plugins/summernote/summernote-bs4.min.css}"> +</head> +<body class="hold-transition sidebar-mini layout-fixed"> +<div class="wrapper"> + + <!-- Preloader --> + <div class="preloader flex-column justify-content-center align-items-center"> + <img class="animation__shake" th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTELogo" height="60" width="60"> + </div> + + <!-- Navbar --> + <nav class="main-header navbar navbar-expand navbar-white navbar-light"> + <!-- Left navbar links --> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> + </li> + <li class="nav-item d-none d-sm-inline-block"> + <a th:href="@{/admin-panel}" class="nav-link">Home</a> + </li> + </ul> + + <!-- Right navbar links --> + <ul class="navbar-nav ml-auto"> + <!-- Navbar Search --> + <li class="nav-item"> + <a class="nav-link" data-widget="navbar-search" href="#" role="button"> + <i class="fas fa-search"></i> + </a> + <div class="navbar-search-block"> + <form class="form-inline"> + <div class="input-group input-group-sm"> + <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-navbar" type="submit"> + <i class="fas fa-search"></i> + </button> + <button class="btn btn-navbar" type="button" data-widget="navbar-search"> + <i class="fas fa-times"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <li class="nav-item"> + <a class="nav-link" data-widget="fullscreen" href="#" role="button"> + <i class="fas fa-expand-arrows-alt"></i> + </a> + </li> + </ul> + </nav> + <!-- /.navbar --> + + <!-- Main Sidebar Container --> + <aside class="main-sidebar sidebar-dark-primary elevation-4"> + <!-- Brand Logo --> + <a th:href="@{/admin-panel}" class="brand-link"> + <img th:src="@{/dist/img/AdminLTELogo.png}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> + <span class="brand-text font-weight-light">Admin Panel</span> + </a> + + <!-- Sidebar --> + <div class="sidebar"> + <!-- Sidebar user panel (optional) --> + <div class="user-panel mt-3 pb-3 mb-3 d-flex"> + <div class="image"> + <img th:src="@{/dist/img/user2-160x160.jpg}" class="img-circle elevation-2" alt="User Image"> + </div> + <div class="info"> + <a href="#" class="d-block">Mavlon</a> + </div> + </div> + + <!-- SidebarSearch Form --> + <div class="form-inline"> + <div class="input-group" data-widget="sidebar-search"> + <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> + <div class="input-group-append"> + <button class="btn btn-sidebar"> + <i class="fas fa-search fa-fw"></i> + </button> + </div> + </div> + </div> + + <!-- Sidebar Menu --> + <nav class="mt-2"> + <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> + <!-- Add icons to the links using the .nav-icon class + with font-awesome or any other icon font library --> + <li class="nav-item"> + <a th:href="@{/admin-panel/}" class="nav-link"> + <i class="nav-icon fas fa-tachometer-alt"></i> + <p> + Dashboard + </p> + </a> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-edit"></i> + <p> + Forms + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-barber}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Barber</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-slide}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Slide</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/pages/forms/add-testimonial}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Add Testimonial</p> + </a> + </li> + </ul> + </li> + <li class="nav-item"> + <a href="#" class="nav-link"> + <i class="nav-icon fas fa-table"></i> + <p> + Tables + <i class="fas fa-angle-left right"></i> + </p> + </a> + <ul class="nav nav-treeview"> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/appointments}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Appointments</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/visitors}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Visitors</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/barbers}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Barbers</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/slides}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Slides</p> + </a> + </li> + <li class="nav-item"> + <a th:href="@{/admin-panel/tables/testimonials}" class="nav-link"> + <i class="far fa-circle nav-icon"></i> + <p>Testimonials</p> + </a> + </li> + </ul> + </li> + </ul> + </nav> + <!-- /.sidebar-menu --> + </div> + <!-- /.sidebar --> + </aside> + + <!-- Content Wrapper. Contains page content --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-6"> + <h1 class="m-0">Visitors</h1> + </div><!-- /.col --> + <div class="col-sm-6"> + <ol class="breadcrumb float-sm-right"> + <li class="breadcrumb-item"><a href="#">Home</a></li> + <li class="breadcrumb-item active">Visitors</li> + </ol> + </div><!-- /.col --> + </div><!-- /.row --> + </div><!-- /.container-fluid --> + </div> + <!-- /.content-header --> + + <!-- Main content --> + <section class="content"> + <div class="container-fluid"> + <div class="row"> + <div class="col-12"> + <div class="card"> + <div class="card-header"> + <h3 class="card-title">Visitors</h3> + <div class="card-tools"> + <div class="input-group input-group-sm" style="width: 150px;"> + <input type="text" name="table_search" class="form-control float-right" placeholder="Search"> + <div class="input-group-append"> + <button type="submit" class="btn btn-default"> + <i class="fas fa-search"></i> + </button> + </div> + </div> + </div> + </div> + + <div class="card-body table-responsive p-0"> + <table class="table table-hover text-nowrap"> + <thead> + <tr> + <th>ID</th> + <th>Date</th> + </tr> + </thead> + <tbody> + <tr th:each="visitor: ${visitors}"> + <td th:text="${visitor.id}"></td> + <td th:text="${visitor.date}"></td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </div><!-- /.container-fluid --> + </section> + <!-- /.content --> + </div> + + <!-- Control Sidebar --> + <aside class="control-sidebar control-sidebar-dark"> + <!-- Control sidebar content goes here --> + </aside> + <!-- /.control-sidebar --> +</div> +<!-- ./wrapper --> + +<!-- jQuery --> +<script th:src="@{/plugins/jquery/jquery.min.js}"></script> +<!-- jQuery UI 1.11.4 --> +<script th:src="@{/plugins/jquery-ui/jquery-ui.min.js}"></script> +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> +<script> + $.widget.bridge('uibutton', $.ui.button) +</script> +<!-- Bootstrap 4 --> +<script th:src="@{/plugins/bootstrap/js/bootstrap.bundle.min.js}"></script> +<!-- ChartJS --> +<script th:src="@{/plugins/chart.js/Chart.min.js}"></script> +<!-- Sparkline --> +<script th:src="@{/plugins/sparklines/sparkline.js}"></script> +<!-- JQVMap --> +<script th:src="@{/plugins/jqvmap/jquery.vmap.min.js}"></script> +<script th:src="@{/plugins/jqvmap/maps/jquery.vmap.usa.js}"></script> +<!-- jQuery Knob Chart --> +<script th:src="@{/plugins/jquery-knob/jquery.knob.min.js}"></script> +<!-- daterangepicker --> +<script th:src="@{/plugins/moment/moment.min.js}"></script> +<script th:src="@{/plugins/daterangepicker/daterangepicker.js}"></script> +<!-- Tempusdominus Bootstrap 4 --> +<script th:src="@{/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js}"></script> +<!-- Summernote --> +<script th:src="@{/plugins/summernote/summernote-bs4.min.js}"></script> +<!-- overlayScrollbars --> +<script th:src="@{/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js}"></script> +<!-- AdminLTE App --> +<script th:src="@{/dist/js/adminlte.js}"></script> +<!-- AdminLTE dashboard demo (This is only for demo purposes) --> +<script th:src="@{/dist/js/pages/dashboard.js}"></script> +</body> +</html> |