added user change passphrase page and some general adjustments
This commit is contained in:
parent
5c056cf5a0
commit
3692608d8f
@ -1,12 +1,11 @@
|
|||||||
package org.ros.chatto.controller;
|
package org.ros.chatto.controller;
|
||||||
|
|
||||||
import java.security.Principal;
|
|
||||||
|
|
||||||
import org.ros.chatto.service.UserService;
|
import org.ros.chatto.service.UserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/admin")
|
@RequestMapping("/admin")
|
||||||
@ -15,11 +14,25 @@ public class AdminController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
@RequestMapping
|
// @RequestMapping
|
||||||
public ModelAndView viewManageUsers(Principal principal) {
|
// public ModelAndView viewManageUsers(Principal principal) {
|
||||||
ModelAndView modelAndView = new ModelAndView("/admin/home");
|
// ModelAndView modelAndView = new ModelAndView("/admin/home");
|
||||||
modelAndView.addObject("user", new String());
|
// modelAndView.addObject("user", new String());
|
||||||
modelAndView.addObject("userNames", userService.getAllRegularUsers());
|
// modelAndView.addObject("userNames", userService.getAllRegularUsers());
|
||||||
return modelAndView;
|
// return modelAndView;
|
||||||
|
// }
|
||||||
|
|
||||||
|
@GetMapping()
|
||||||
|
public String home()
|
||||||
|
{
|
||||||
|
// model.addAttribute("user", new String());
|
||||||
|
// model.addAttribute("userNames", userService.getAllRegularUsers());
|
||||||
|
return "admin/home";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/change-passphrase")
|
||||||
|
public String changePassphrase(Model model) {
|
||||||
|
model.addAttribute("userNames", userService.getAllRegularUsers());
|
||||||
|
return "admin/change-passphrase";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,12 +32,12 @@
|
|||||||
|
|
||||||
.sidebar .nav-item .collapse .collapse-inner .collapse-item:hover,
|
.sidebar .nav-item .collapse .collapse-inner .collapse-item:hover,
|
||||||
.sidebar .nav-item .collapsing .collapse-inner .collapse-item:hover {
|
.sidebar .nav-item .collapsing .collapse-inner .collapse-item:hover {
|
||||||
background-color: #f17261;
|
background-color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
/* .sidebar {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
}
|
} */
|
||||||
|
|
||||||
.text-info {
|
.text-info {
|
||||||
color: #5bd6e8 !important;
|
color: #5bd6e8 !important;
|
||||||
@ -49,4 +49,13 @@
|
|||||||
|
|
||||||
.sidebar-dark hr.sidebar-divider {
|
.sidebar-dark hr.sidebar-divider {
|
||||||
border-top: 1px solid rgba(255, 255, 255, 0.5);
|
border-top: 1px solid rgba(255, 255, 255, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: #333;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper #content-wrapper {
|
||||||
|
background-color: #333;
|
||||||
}
|
}
|
11332
chatto/src/main/resources/static/css/sb-admin-2-old.css
Normal file
11332
chatto/src/main/resources/static/css/sb-admin-2-old.css
Normal file
File diff suppressed because it is too large
Load Diff
@ -46,7 +46,7 @@
|
|||||||
*::after {
|
*::after {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
line-height: 1.15;
|
line-height: 1.15;
|
||||||
@ -66,9 +66,7 @@ body {
|
|||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
color: #858796;
|
color: #858796;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
/* background-color: #fff; */
|
background-color: #fff;
|
||||||
background: #333;
|
|
||||||
/* color: #ffffff; */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[tabindex="-1"]:focus {
|
[tabindex="-1"]:focus {
|
||||||
@ -6291,6 +6289,9 @@ button.bg-dark:focus {
|
|||||||
background-color: #42444e !important;
|
background-color: #42444e !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-white {
|
||||||
|
background-color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
.bg-transparent {
|
.bg-transparent {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
@ -9767,39 +9768,39 @@ a:focus {
|
|||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white100 {
|
.text-gray-100 {
|
||||||
color: #f8f9fc !important;
|
color: #f8f9fc !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white200 {
|
.text-gray-200 {
|
||||||
color: #eaecf4 !important;
|
color: #eaecf4 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white300 {
|
.text-gray-300 {
|
||||||
color: #dddfeb !important;
|
color: #dddfeb !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white400 {
|
.text-gray-400 {
|
||||||
color: #d1d3e2 !important;
|
color: #d1d3e2 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white500 {
|
.text-gray-500 {
|
||||||
color: #b7b9cc !important;
|
color: #b7b9cc !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white600 {
|
.text-gray-600 {
|
||||||
color: #858796 !important;
|
color: #858796 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white700 {
|
.text-gray-700 {
|
||||||
color: #6e707e !important;
|
color: #6e707e !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white800 {
|
.text-gray-800 {
|
||||||
color: #5a5c69 !important;
|
color: #5a5c69 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-white900 {
|
.text-gray-900 {
|
||||||
color: #3a3b45 !important;
|
color: #3a3b45 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11000,4 +11001,4 @@ footer.sticky-footer .copyright {
|
|||||||
|
|
||||||
body.sidebar-toggled footer.sticky-footer {
|
body.sidebar-toggled footer.sticky-footer {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ var myLineChart = new Chart(ctx, {
|
|||||||
label: "Earnings",
|
label: "Earnings",
|
||||||
lineTension: 0.3,
|
lineTension: 0.3,
|
||||||
backgroundColor: "rgba(78, 115, 223, 0.05)",
|
backgroundColor: "rgba(78, 115, 223, 0.05)",
|
||||||
|
// backgroundColor: "#fff",
|
||||||
borderColor: "rgba(78, 115, 223, 1)",
|
borderColor: "rgba(78, 115, 223, 1)",
|
||||||
pointRadius: 3,
|
pointRadius: 3,
|
||||||
pointBackgroundColor: "rgba(78, 115, 223, 1)",
|
pointBackgroundColor: "rgba(78, 115, 223, 1)",
|
||||||
@ -69,11 +70,13 @@ var myLineChart = new Chart(ctx, {
|
|||||||
drawBorder: false
|
drawBorder: false
|
||||||
},
|
},
|
||||||
ticks: {
|
ticks: {
|
||||||
|
fontColor: "white",
|
||||||
maxTicksLimit: 7
|
maxTicksLimit: 7
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
yAxes: [{
|
yAxes: [{
|
||||||
ticks: {
|
ticks: {
|
||||||
|
fontColor: "white",
|
||||||
maxTicksLimit: 5,
|
maxTicksLimit: 5,
|
||||||
padding: 10,
|
padding: 10,
|
||||||
// Include a dollar sign in the ticks
|
// Include a dollar sign in the ticks
|
||||||
@ -91,7 +94,10 @@ var myLineChart = new Chart(ctx, {
|
|||||||
}],
|
}],
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
display: false
|
display: false,
|
||||||
|
// labels: {
|
||||||
|
// fontColor: "white"
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
tooltips: {
|
tooltips: {
|
||||||
backgroundColor: "rgb(255,255,255)",
|
backgroundColor: "rgb(255,255,255)",
|
||||||
|
116
chatto/src/main/resources/templates/admin/change-passphrase.html
Normal file
116
chatto/src/main/resources/templates/admin/change-passphrase.html
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<div th:replace="fragments/head :: headFragment">
|
||||||
|
<title id="pageTitle">Change Passphrase</title>
|
||||||
|
</div>
|
||||||
|
<script src="https://code.jquery.com/jquery-2.1.4.min.js" th:if="false"></script>
|
||||||
|
<script src="http://blackpeppersoftware.github.io/thymeleaf-fragment.js/thymeleaf-fragment.js" data-template-prefix="../" defer="defer" th:if="false"></script>
|
||||||
|
<script th:src="@{/js/admin.js}" src="../../static/js/admin.js" defer="defer"></script>
|
||||||
|
<script th:src="@{/js/sb-admin-2.js}" src="../../static/js/sb-admin-2.js" defer="defer"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.js"></script>
|
||||||
|
|
||||||
|
<link th:href="@{/css/sb-admin-2.css}" href="../../static/css/sb-admin-2.css" rel="stylesheet">
|
||||||
|
<link th:href="@{/css/admin-custom.css}" href="../../static/css/admin-custom.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<!-- TODO
|
||||||
|
Make user admin / remove user from admin
|
||||||
|
Change E2E passphrase
|
||||||
|
Delete Messages
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- <div th:include="fragments/admin :: admin-sidebar"></div> -->
|
||||||
|
|
||||||
|
<body id="page-top">
|
||||||
|
|
||||||
|
<!-- Page Wrapper -->
|
||||||
|
<div id="wrapper">
|
||||||
|
|
||||||
|
|
||||||
|
<div th:include="fragments/admin :: sidebar-fragment"></div>
|
||||||
|
|
||||||
|
<!-- Content Wrapper -->
|
||||||
|
<div id="content-wrapper" class="d-flex flex-column" style="background-color: #333;">
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<div th:include="fragments/admin :: topbar-fragment"></div>
|
||||||
|
|
||||||
|
<!-- Begin Page Content -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<!-- Page Heading -->
|
||||||
|
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||||
|
<h1 class="h3 mb-0 text-light">Dashboard</h1>
|
||||||
|
<a href="#" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-download fa-sm text-white-50"></i> Generate Report</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Content Row -->
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-lg-4 mb-4 offset-lg-4">
|
||||||
|
|
||||||
|
<!-- Approach -->
|
||||||
|
<div class="card bg-dark border border-dark text-white shadow mb-4">
|
||||||
|
<div class="card-header bg-secondary border border-secondary py-3">
|
||||||
|
<h6 class="m-0 font-weight-bold text-white">Development Approach</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<h4>Change passphrases</h4>
|
||||||
|
<form id="changePassphraseForm">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="changePassphraseDropDown">Select User:</label>
|
||||||
|
<select class="form-control" id="changePassphraseDropDown">
|
||||||
|
|
||||||
|
<option th:each="userName : ${userNames}"
|
||||||
|
th:value="${userName}"
|
||||||
|
th:text="#{${userName}}">
|
||||||
|
Wireframe
|
||||||
|
</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="passphraseOld">Passphrase Old</label>
|
||||||
|
<input type="password" id="passphraseOld" class="form-control">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="passphraseNew">Passphrase New</label>
|
||||||
|
<input type="password" id="passphraseNew" class="form-control">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button class="btn btn-danger form-control">Change Passphrase</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
|
<div th:include="fragments/admin :: footer"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Content Wrapper -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
|
<th:block th:include="fragments/admin :: modal"></th:block>
|
||||||
|
<div th:if="false">
|
||||||
|
<th:block th:include="admin :: modal"></th:block>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -29,7 +29,7 @@
|
|||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
|
||||||
|
|
||||||
<div th:include="fragments/admin :: sidebar-fragment"></div>
|
<th:block th:include="fragments/admin :: sidebar-fragment"></th:block>
|
||||||
|
|
||||||
<!-- Content Wrapper -->
|
<!-- Content Wrapper -->
|
||||||
<div id="content-wrapper" class="d-flex flex-column" style="background-color: #333;">
|
<div id="content-wrapper" class="d-flex flex-column" style="background-color: #333;">
|
||||||
@ -94,7 +94,7 @@
|
|||||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">Tasks</div>
|
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">Tasks</div>
|
||||||
<div class="row no-gutters align-items-center">
|
<div class="row no-gutters align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<div class="h5 mb-0 mr-3 font-weight-bold text-gray-800">50%</div>
|
<div class="h5 mb-0 mr-3 font-weight-bold text-white">50%</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="progress progress-sm mr-2">
|
<div class="progress progress-sm mr-2">
|
||||||
@ -118,7 +118,7 @@
|
|||||||
<div class="row no-gutters align-items-center">
|
<div class="row no-gutters align-items-center">
|
||||||
<div class="col mr-2">
|
<div class="col mr-2">
|
||||||
<div class="text-xs font-weight-bold text-warning text-uppercase mb-1">Pending Requests</div>
|
<div class="text-xs font-weight-bold text-warning text-uppercase mb-1">Pending Requests</div>
|
||||||
<div class="h5 mb-0 font-weight-bold text-gray-800">18</div>
|
<div class="h5 mb-0 font-weight-bold text-white">18</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<i class="fas fa-comments fa-2x text-gray-300"></i>
|
<i class="fas fa-comments fa-2x text-gray-300"></i>
|
||||||
@ -187,7 +187,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mt-4 text-center small">
|
<div class="mt-4 text-center small">
|
||||||
<span class="mr-2">
|
<span class="mr-2">
|
||||||
<i class="fas fa-circle text-white"></i> Direct
|
<i class="fas fa-circle text-primary"></i> Direct
|
||||||
</span>
|
</span>
|
||||||
<span class="mr-2">
|
<span class="mr-2">
|
||||||
<i class="fas fa-circle text-success"></i> Social
|
<i class="fas fa-circle text-success"></i> Social
|
||||||
@ -327,15 +327,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- End of Main Content -->
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
<!-- Footer -->
|
<div th:include="fragments/admin :: footer"></div>
|
||||||
<footer class="sticky-footer bg-dark">
|
|
||||||
<div class="container my-auto">
|
|
||||||
<div class="copyright text-center my-auto">
|
|
||||||
<span class="text-white">Copyright © Your Website 2019</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<!-- End of Footer -->
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- End of Content Wrapper -->
|
<!-- End of Content Wrapper -->
|
||||||
@ -343,29 +335,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- End of Page Wrapper -->
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
<!-- Scroll to Top Button-->
|
<th:block th:include="fragments/admin :: modal"></th:block>
|
||||||
<a class="scroll-to-top rounded" href="#page-top">
|
<div th:if="false"><th:block th:include="admin :: modal"></th:block></div>
|
||||||
<i class="fas fa-angle-up"></i>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- Logout Modal-->
|
|
||||||
<div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog" role="document">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
|
|
||||||
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
|
|
||||||
<span aria-hidden="true">×</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
|
|
||||||
<a class="btn btn-primary" href="login.html">Logout</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Page level custom scripts -->
|
<!-- Page level custom scripts -->
|
||||||
<script th:src="@{/js/demo/chart-area-demo.js}" src="../../static/js/demo/chart-area-demo.js"></script>
|
<script th:src="@{/js/demo/chart-area-demo.js}" src="../../static/js/demo/chart-area-demo.js"></script>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title id="pageTitle">Navbar Fragment</title>
|
<title id="pageTitle">Navbar Fragment</title>
|
||||||
</div> -->
|
</div> -->
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" th:if="false" ></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" th:if="false"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.js" th:if="false" ></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.js" th:if="false"></script>
|
||||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css" th:if="false" rel="stylesheet" type="text/css">
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css" th:if="false" rel="stylesheet" type="text/css">
|
||||||
<script src="https://code.jquery.com/jquery-2.1.4.min.js" th:if="false"></script>
|
<script src="https://code.jquery.com/jquery-2.1.4.min.js" th:if="false"></script>
|
||||||
<script src="http://blackpeppersoftware.github.io/thymeleaf-fragment.js/thymeleaf-fragment.js" defer="defer" th:if="false"></script>
|
<script src="http://blackpeppersoftware.github.io/thymeleaf-fragment.js/thymeleaf-fragment.js" defer="defer" th:if="false"></script>
|
||||||
@ -17,326 +17,401 @@
|
|||||||
<link href="../../static/css/admin-custom.css" rel="stylesheet" th:if="false">
|
<link href="../../static/css/admin-custom.css" rel="stylesheet" th:if="false">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
|
||||||
<th:block th:fragment="sidebar-fragment">
|
|
||||||
<!-- Sidebar -->
|
|
||||||
<ul class="navbar-nav bg-gradient-danger sidebar sidebar-dark accordion" id="accordionSidebar">
|
|
||||||
|
|
||||||
<!-- Sidebar - Brand -->
|
<body id="page-top">
|
||||||
<a class="sidebar-brand d-flex align-items-center justify-content-center" th:href="@{/admin}" href="../admin/home.html">
|
<!-- Page Wrapper -->
|
||||||
<div class="sidebar-brand-icon rotate-n-15">
|
<div id="wrapper">
|
||||||
<i class="fas fa-laugh-wink"></i>
|
|
||||||
</div>
|
|
||||||
<div class="sidebar-brand-text mx-3">SB Admin <sup>2</sup></div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
<th:block th:fragment="sidebar-fragment">
|
||||||
<hr class="sidebar-divider my-0">
|
<!-- Sidebar -->
|
||||||
|
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
|
||||||
|
|
||||||
<!-- Nav Item - Dashboard -->
|
<!-- Sidebar - Brand -->
|
||||||
<li class="nav-item active">
|
<a class="sidebar-brand d-flex align-items-center justify-content-center" th:href="@{/admin}" href="../admin/home.html">
|
||||||
<a class="nav-link" th:href="@{/admin}" href="../admin/home.html">
|
<div class="sidebar-brand-icon rotate-n-15">
|
||||||
<i class="fas fa-fw fa-tachometer-alt"></i>
|
<i class="fas fa-laugh-wink"></i>
|
||||||
<span>Dashboard</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Administration
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseTwo">
|
|
||||||
<i class="fas fa-fw fa-cog"></i>
|
|
||||||
<span>Users</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapseOne" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-dark py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Custom Components:</h6>
|
|
||||||
<a class="collapse-item" th:href="@{/admin/users.html}" href="../admin/users.html">Buttons</a>
|
|
||||||
<a class="collapse-item" href="cards.html">Cards</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="sidebar-brand-text mx-3">SB Admin <sup>2</sup></div>
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Interface
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
|
|
||||||
<i class="fas fa-fw fa-cog"></i>
|
|
||||||
<span>Components</span>
|
|
||||||
</a>
|
</a>
|
||||||
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-dark py-2 collapse-inner rounded">
|
<!-- Divider -->
|
||||||
<h6 class="collapse-header">Custom Components:</h6>
|
<hr class="sidebar-divider my-0">
|
||||||
<a class="collapse-item" href="buttons.html"> <span class="text-white"> Buttons </span></a>
|
|
||||||
<a class="collapse-item" href="cards.html"> <span class="text-white"> Cards </span></a>
|
<!-- Nav Item - Dashboard -->
|
||||||
</div>
|
<li class="nav-item active">
|
||||||
|
<a class="nav-link" th:href="@{/admin}" href="../admin/home.html">
|
||||||
|
<i class="fas fa-fw fa-tachometer-alt"></i>
|
||||||
|
<span>Dashboard</span></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<div class="sidebar-heading">
|
||||||
|
Administration
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Utilities Collapse Menu -->
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUtilities" aria-expanded="true" aria-controls="collapseUtilities">
|
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseTwo">
|
||||||
<i class="fas fa-fw fa-wrench"></i>
|
<i class="fas fa-fw fa-cog"></i>
|
||||||
<span>Utilities</span>
|
<span>Users</span>
|
||||||
</a>
|
</a>
|
||||||
<div id="collapseUtilities" class="collapse" aria-labelledby="headingUtilities" data-parent="#accordionSidebar">
|
<div id="collapseOne" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
|
||||||
<div class="bg-dark py-2 collapse-inner rounded">
|
<div class="bg-dark py-2 collapse-inner rounded">
|
||||||
<h6 class="collapse-header">Custom Utilities:</h6>
|
<h6 class="collapse-header">Settings:</h6>
|
||||||
<a class="collapse-item" href="utilities-color.html">Colors</a>
|
<a class="collapse-item" th:href="@{/admin/change-passphrase}" href="../admin/change-passphrase.html">Change Passphrase</a>
|
||||||
<a class="collapse-item" href="utilities-border.html">Borders</a>
|
<a class="collapse-item" href="cards.html">Cards</a>
|
||||||
<a class="collapse-item" href="utilities-animation.html">Animations</a>
|
|
||||||
<a class="collapse-item" href="utilities-other.html">Other</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Addons
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePages" aria-expanded="true" aria-controls="collapsePages">
|
|
||||||
<i class="fas fa-fw fa-folder"></i>
|
|
||||||
<span>Pages</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapsePages" class="collapse" aria-labelledby="headingPages" data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-dark py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Login Screens:</h6>
|
|
||||||
<a class="collapse-item" href="login.html">Login</a>
|
|
||||||
<a class="collapse-item" href="register.html">Register</a>
|
|
||||||
<a class="collapse-item" href="forgot-password.html">Forgot Password</a>
|
|
||||||
<div class="collapse-divider"></div>
|
|
||||||
<h6 class="collapse-header">Other Pages:</h6>
|
|
||||||
<a class="collapse-item" href="404.html">404 Page</a>
|
|
||||||
<a class="collapse-item" href="blank.html">Blank Page</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Charts -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="charts.html">
|
|
||||||
<i class="fas fa-fw fa-chart-area"></i>
|
|
||||||
<span>Charts</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Tables -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="tables.html">
|
|
||||||
<i class="fas fa-fw fa-table"></i>
|
|
||||||
<span>Tables</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider d-none d-md-block">
|
|
||||||
|
|
||||||
<!-- Sidebar Toggler (Sidebar) -->
|
|
||||||
<div class="text-center d-none d-md-inline">
|
|
||||||
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
<!-- End of Sidebar -->
|
|
||||||
</th:block>
|
|
||||||
<th:block th:fragment="topbar-fragment">
|
|
||||||
<!-- Topbar -->
|
|
||||||
<nav class="navbar navbar-expand navbar-dark bg-dark topbar mb-4 static-top shadow">
|
|
||||||
|
|
||||||
<!-- Sidebar Toggle (Topbar) -->
|
|
||||||
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
|
|
||||||
<i class="fa fa-bars"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<!-- Topbar Search -->
|
|
||||||
<form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
|
|
||||||
<div class="input-group">
|
|
||||||
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
|
|
||||||
<div class="input-group-append">
|
|
||||||
<button class="btn btn-primary" type="button">
|
|
||||||
<i class="fas fa-search fa-sm"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
|
</li>
|
||||||
<!-- Topbar Navbar -->
|
|
||||||
<ul class="navbar-nav ml-auto">
|
|
||||||
|
|
||||||
<!-- Nav Item - Search Dropdown (Visible Only XS) -->
|
|
||||||
<li class="nav-item dropdown no-arrow d-sm-none">
|
<!-- Divider -->
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<hr class="sidebar-divider">
|
||||||
<i class="fas fa-search fa-fw"></i>
|
|
||||||
</a>
|
<!-- Heading -->
|
||||||
<!-- Dropdown - Messages -->
|
<div class="sidebar-heading">
|
||||||
<div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in" aria-labelledby="searchDropdown">
|
Interface
|
||||||
<form class="form-inline mr-auto w-100 navbar-search">
|
</div>
|
||||||
<div class="input-group">
|
|
||||||
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
<div class="input-group-append">
|
<li class="nav-item">
|
||||||
<button class="btn btn-primary" type="button">
|
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
|
||||||
<i class="fas fa-search fa-sm"></i>
|
<i class="fas fa-fw fa-cog"></i>
|
||||||
</button>
|
<span>Components</span>
|
||||||
</div>
|
</a>
|
||||||
</div>
|
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
|
||||||
</form>
|
<div class="bg-dark py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Custom Components:</h6>
|
||||||
|
<a class="collapse-item" href="buttons.html"> <span class="text-white"> Buttons </span></a>
|
||||||
|
<a class="collapse-item" href="cards.html"> <span class="text-white"> Cards </span></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Utilities Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUtilities" aria-expanded="true" aria-controls="collapseUtilities">
|
||||||
|
<i class="fas fa-fw fa-wrench"></i>
|
||||||
|
<span>Utilities</span>
|
||||||
|
</a>
|
||||||
|
<div id="collapseUtilities" class="collapse" aria-labelledby="headingUtilities" data-parent="#accordionSidebar">
|
||||||
|
<div class="bg-dark py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Custom Utilities:</h6>
|
||||||
|
<a class="collapse-item" href="utilities-color.html">Colors</a>
|
||||||
|
<a class="collapse-item" href="utilities-border.html">Borders</a>
|
||||||
|
<a class="collapse-item" href="utilities-animation.html">Animations</a>
|
||||||
|
<a class="collapse-item" href="utilities-other.html">Other</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<div class="sidebar-heading">
|
||||||
|
Addons
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePages" aria-expanded="true" aria-controls="collapsePages">
|
||||||
|
<i class="fas fa-fw fa-folder"></i>
|
||||||
|
<span>Pages</span>
|
||||||
|
</a>
|
||||||
|
<div id="collapsePages" class="collapse" aria-labelledby="headingPages" data-parent="#accordionSidebar">
|
||||||
|
<div class="bg-dark py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Login Screens:</h6>
|
||||||
|
<a class="collapse-item" href="login.html">Login</a>
|
||||||
|
<a class="collapse-item" href="register.html">Register</a>
|
||||||
|
<a class="collapse-item" href="forgot-password.html">Forgot Password</a>
|
||||||
|
<div class="collapse-divider"></div>
|
||||||
|
<h6 class="collapse-header">Other Pages:</h6>
|
||||||
|
<a class="collapse-item" href="404.html">404 Page</a>
|
||||||
|
<a class="collapse-item" href="blank.html">Blank Page</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Charts -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="charts.html">
|
||||||
|
<i class="fas fa-fw fa-chart-area"></i>
|
||||||
|
<span>Charts</span></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Tables -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="tables.html">
|
||||||
|
<i class="fas fa-fw fa-table"></i>
|
||||||
|
<span>Tables</span></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider d-none d-md-block">
|
||||||
|
|
||||||
|
<!-- Sidebar Toggler (Sidebar) -->
|
||||||
|
<div class="text-center d-none d-md-inline">
|
||||||
|
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<!-- End of Sidebar -->
|
||||||
|
</th:block>
|
||||||
|
|
||||||
|
<!-- Content Wrapper -->
|
||||||
|
<div id="content-wrapper" class="d-flex flex-column">
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<th:block th:fragment="topbar-fragment">
|
||||||
|
<!-- Topbar -->
|
||||||
|
<nav class="navbar navbar-expand navbar-dark bg-dark topbar mb-4 static-top shadow">
|
||||||
|
|
||||||
|
<!-- Sidebar Toggle (Topbar) -->
|
||||||
|
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
|
||||||
|
<i class="fa fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Topbar Search -->
|
||||||
|
<form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-primary" type="button">
|
||||||
|
<i class="fas fa-search fa-sm"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</form>
|
||||||
|
|
||||||
<!-- Nav Item - Alerts -->
|
<!-- <div th:include="fragments/navbar :: navbarContent"></div> -->
|
||||||
<li class="nav-item dropdown no-arrow mx-1">
|
<!-- Topbar Navbar -->
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<ul class="navbar-nav ml-auto">
|
||||||
<i class="fas fa-bell fa-fw"></i>
|
|
||||||
<!-- Counter - Alerts -->
|
<!-- Nav Item - Search Dropdown (Visible Only XS) -->
|
||||||
<span class="badge badge-danger badge-counter">3+</span>
|
<li class="nav-item dropdown no-arrow d-sm-none">
|
||||||
</a>
|
<a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<!-- Dropdown - Alerts -->
|
<i class="fas fa-search fa-fw"></i>
|
||||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="alertsDropdown">
|
</a>
|
||||||
<h6 class="dropdown-header">
|
<!-- Dropdown - Messages -->
|
||||||
Alerts Center
|
<div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in" aria-labelledby="searchDropdown">
|
||||||
</h6>
|
<form class="form-inline mr-auto w-100 navbar-search">
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
<div class="input-group">
|
||||||
<div class="mr-3">
|
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
|
||||||
<div class="icon-circle bg-primary">
|
<div class="input-group-append">
|
||||||
<i class="fas fa-file-alt text-white"></i>
|
<button class="btn btn-primary" type="button">
|
||||||
|
<i class="fas fa-search fa-sm"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div>
|
</div>
|
||||||
<div class="small text-gray-500">December 12, 2019</div>
|
</li>
|
||||||
<span class="font-weight-bold">A new monthly report is ready to download!</span>
|
|
||||||
</div>
|
<div class="d-none d-lg-block" th:include="fragments/navbar :: navbarContent"></div>
|
||||||
|
<th:block th:if="false">
|
||||||
|
<th:block th:include="navbar :: navbarContent" class="d-none d-lg-block"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<!-- <th:block th:include="fragments/navbar :: navbarFragment"></th:block> -->
|
||||||
|
|
||||||
|
<!-- Nav Item - Alerts -->
|
||||||
|
<li class="nav-item dropdown no-arrow mx-1">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<i class="fas fa-bell fa-fw"></i>
|
||||||
|
<!-- Counter - Alerts -->
|
||||||
|
<span class="badge badge-danger badge-counter">3+</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
<!-- Dropdown - Alerts -->
|
||||||
<div class="mr-3">
|
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="alertsDropdown">
|
||||||
<div class="icon-circle bg-success">
|
<h6 class="dropdown-header">
|
||||||
<i class="fas fa-donate text-white"></i>
|
Alerts Center
|
||||||
|
</h6>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-primary">
|
||||||
|
<i class="fas fa-file-alt text-white"></i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div>
|
||||||
<div>
|
<div class="small text-gray-500">December 12, 2019</div>
|
||||||
<div class="small text-gray-500">December 7, 2019</div>
|
<span class="font-weight-bold">A new monthly report is ready to download!</span>
|
||||||
$290.29 has been deposited into your account!
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-warning">
|
|
||||||
<i class="fas fa-exclamation-triangle text-white"></i>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
<div>
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
<div class="small text-gray-500">December 2, 2019</div>
|
<div class="mr-3">
|
||||||
Spending Alert: We've noticed unusually high spending for your account.
|
<div class="icon-circle bg-success">
|
||||||
</div>
|
<i class="fas fa-donate text-white"></i>
|
||||||
</a>
|
</div>
|
||||||
<a class="dropdown-item text-center small text-gray-500" href="#">Show All Alerts</a>
|
</div>
|
||||||
</div>
|
<div>
|
||||||
</li>
|
<div class="small text-gray-500">December 7, 2019</div>
|
||||||
|
$290.29 has been deposited into your account!
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-warning">
|
||||||
|
<i class="fas fa-exclamation-triangle text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 2, 2019</div>
|
||||||
|
Spending Alert: We've noticed unusually high spending for your account.
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item text-center small text-gray-500" href="#">Show All Alerts</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<!-- Nav Item - Messages -->
|
<!-- Nav Item - Messages -->
|
||||||
<li class="nav-item dropdown no-arrow mx-1">
|
<li class="nav-item dropdown no-arrow mx-1">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="messagesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link dropdown-toggle" href="#" id="messagesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<i class="fas fa-envelope fa-fw"></i>
|
<i class="fas fa-envelope fa-fw"></i>
|
||||||
<!-- Counter - Messages -->
|
<!-- Counter - Messages -->
|
||||||
<span class="badge badge-danger badge-counter">7</span>
|
<span class="badge badge-danger badge-counter">7</span>
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Messages -->
|
|
||||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="messagesDropdown">
|
|
||||||
<h6 class="dropdown-header">
|
|
||||||
Message Center
|
|
||||||
</h6>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="https://source.unsplash.com/fn_BT9fwg_E/60x60" alt="">
|
|
||||||
<div class="status-indicator bg-success"></div>
|
|
||||||
</div>
|
|
||||||
<div class="font-weight-bold">
|
|
||||||
<div class="text-truncate">Hi there! I am wondering if you can help me with a problem I've been having.</div>
|
|
||||||
<div class="small text-gray-500">Emily Fowler · 58m</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
</a>
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
<!-- Dropdown - Messages -->
|
||||||
<div class="dropdown-list-image mr-3">
|
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="messagesDropdown">
|
||||||
<img class="rounded-circle" src="https://source.unsplash.com/AU4VPcFN4LE/60x60" alt="">
|
<h6 class="dropdown-header">
|
||||||
<div class="status-indicator"></div>
|
Message Center
|
||||||
</div>
|
</h6>
|
||||||
<div>
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
<div class="text-truncate">I have the photos that you ordered last month, how would you like them sent to you?</div>
|
<div class="dropdown-list-image mr-3">
|
||||||
<div class="small text-gray-500">Jae Chun · 1d</div>
|
<img class="rounded-circle" src="https://source.unsplash.com/fn_BT9fwg_E/60x60" alt="">
|
||||||
</div>
|
<div class="status-indicator bg-success"></div>
|
||||||
</a>
|
</div>
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
<div class="font-weight-bold">
|
||||||
<div class="dropdown-list-image mr-3">
|
<div class="text-truncate">Hi there! I am wondering if you can help me with a problem I've been having.</div>
|
||||||
<img class="rounded-circle" src="https://source.unsplash.com/CS2uCrpNzJY/60x60" alt="">
|
<div class="small text-gray-500">Emily Fowler · 58m</div>
|
||||||
<div class="status-indicator bg-warning"></div>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
<div>
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
<div class="text-truncate">Last month's report looks great, I am very happy with the progress so far, keep up the good work!</div>
|
<div class="dropdown-list-image mr-3">
|
||||||
<div class="small text-gray-500">Morgan Alvarez · 2d</div>
|
<img class="rounded-circle" src="https://source.unsplash.com/AU4VPcFN4LE/60x60" alt="">
|
||||||
</div>
|
<div class="status-indicator"></div>
|
||||||
</a>
|
</div>
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
<div>
|
||||||
<div class="dropdown-list-image mr-3">
|
<div class="text-truncate">I have the photos that you ordered last month, how would you like them sent to you?</div>
|
||||||
<img class="rounded-circle" src="https://source.unsplash.com/Mv9hjnEUHR4/60x60" alt="">
|
<div class="small text-gray-500">Jae Chun · 1d</div>
|
||||||
<div class="status-indicator bg-success"></div>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
<div>
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
<div class="text-truncate">Am I a good boy? The reason I ask is because someone told me that people say this to all dogs, even if they aren't good...</div>
|
<div class="dropdown-list-image mr-3">
|
||||||
<div class="small text-gray-500">Chicken the Dog · 2w</div>
|
<img class="rounded-circle" src="https://source.unsplash.com/CS2uCrpNzJY/60x60" alt="">
|
||||||
</div>
|
<div class="status-indicator bg-warning"></div>
|
||||||
</a>
|
</div>
|
||||||
<a class="dropdown-item text-center small text-gray-500" href="#">Read More Messages</a>
|
<div>
|
||||||
</div>
|
<div class="text-truncate">Last month's report looks great, I am very happy with the progress so far, keep up the good work!</div>
|
||||||
</li>
|
<div class="small text-gray-500">Morgan Alvarez · 2d</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img class="rounded-circle" src="https://source.unsplash.com/Mv9hjnEUHR4/60x60" alt="">
|
||||||
|
<div class="status-indicator bg-success"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">Am I a good boy? The reason I ask is because someone told me that people say this to all dogs, even if they aren't good...</div>
|
||||||
|
<div class="small text-gray-500">Chicken the Dog · 2w</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item text-center small text-gray-500" href="#">Read More Messages</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div class="topbar-divider d-none d-sm-block"></div>
|
<div class="topbar-divider d-none d-sm-block"></div>
|
||||||
|
|
||||||
<!-- Nav Item - User Information -->
|
<!-- Nav Item - User Information -->
|
||||||
<li class="nav-item dropdown no-arrow">
|
<li class="nav-item dropdown no-arrow">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-2 d-none d-lg-inline text-white small">Valerie Luna</span>
|
<span class="mr-2 d-none d-lg-inline text-white small">Valerie Luna</span>
|
||||||
<img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60">
|
<img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60">
|
||||||
</a>
|
|
||||||
<!-- Dropdown - User Information -->
|
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i> Profile
|
|
||||||
</a>
|
</a>
|
||||||
<a class="dropdown-item" href="#">
|
<!-- Dropdown - User Information -->
|
||||||
<i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i> Settings
|
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
|
||||||
</a>
|
<a class="dropdown-item" href="#">
|
||||||
<a class="dropdown-item" href="#">
|
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i> Profile
|
||||||
<i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i> Activity Log
|
</a>
|
||||||
</a>
|
<a class="dropdown-item" href="#">
|
||||||
<div class="dropdown-divider"></div>
|
<i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i> Settings
|
||||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
|
</a>
|
||||||
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i> Logout
|
<a class="dropdown-item" href="#">
|
||||||
</a>
|
<i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i> Activity Log
|
||||||
</div>
|
</a>
|
||||||
</li>
|
<div class="dropdown-divider"></div>
|
||||||
|
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
|
||||||
|
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i> Logout
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</nav>
|
</nav>
|
||||||
<!-- End of Topbar -->
|
<!-- End of Topbar -->
|
||||||
|
</th:block>
|
||||||
|
|
||||||
|
<!-- Begin Page Content -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<!-- Page Heading -->
|
||||||
|
<h1 class="h3 mb-4 text-gray-800">Blank Page</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
|
<th:block th:fragment="footer">
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="sticky-footer bg-dark">
|
||||||
|
<div class="container my-auto">
|
||||||
|
<div class="copyright text-center my-auto">
|
||||||
|
<span class="text-white">Copyright © Your Website 2019</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- End of Footer -->
|
||||||
|
</th:block>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Content Wrapper -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
|
<th:block th:fragment="modal">
|
||||||
|
<!-- Scroll to Top Button-->
|
||||||
|
<a class="scroll-to-top rounded" href="#page-top">
|
||||||
|
<i class="fas fa-angle-up"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Logout Modal-->
|
||||||
|
<div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content bg-primary">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
|
||||||
|
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
|
||||||
|
<a class="btn btn-danger" href="login.html">Logout</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<head>
|
<head>
|
||||||
<th:block th:fragment="headFragment">
|
<th:block th:fragment="headFragment">
|
||||||
<script th:src="@{js/scljs.js}" type="text/javascript"></script>
|
<script th:src="@{/js/scljs.js}" type="text/javascript"></script>
|
||||||
<!--<script th:src="@{js/my_Crypto.js}" type="text/javascript"></script>-->
|
<!--<script th:src="@{js/my_Crypto.js}" type="text/javascript"></script>-->
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/sprintf/1.1.2/sprintf.min.js" type="text/javascript"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/sprintf/1.1.2/sprintf.min.js" type="text/javascript"></script>
|
||||||
|
@ -18,12 +18,8 @@
|
|||||||
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
|
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a href="home.html" th:href="@{/}" class="navbar-brand">Chatto</a>
|
<a href="home.html" th:href="@{/}" class="navbar-brand">Chatto</a>
|
||||||
<div class="navbar-header">
|
<!-- <div class="navbar-header">
|
||||||
<button class="navbar-toggler" data-toggle="collapse" data-target="#navbarCollapse">
|
<button class="navbar-toggler" data-toggle="collapse" data-target="#navbarCollapse">
|
||||||
<!-- <span class="navbar-toggle-icon">Menu</span> -->
|
|
||||||
<!-- Menu -->
|
|
||||||
<!-- <i class="fas fa-angle-double-up"></i> -->
|
|
||||||
<!-- <i class="glyphicon glyphicon-align-left"></i> -->
|
|
||||||
<i class="fas fa-chevron-down"></i>
|
<i class="fas fa-chevron-down"></i>
|
||||||
|
|
||||||
</button>
|
</button>
|
||||||
@ -62,11 +58,56 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div> -->
|
||||||
|
<th:block th:include="fragments/navbar :: navbarContent"></th:block>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
||||||
|
<th:block th:fragment="navbarContent">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button class="navbar-toggler" data-toggle="collapse" data-target="#navbarCollapse">
|
||||||
|
<i class="fas fa-chevron-down"></i>
|
||||||
|
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav ml-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="home.html" th:href="@{/}" class="nav-link">Home</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="user/home.html" sec:authorize="isFullyAuthenticated()" th:href="@{/user}" class="nav-link">User Area</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a th:href="chat" href="chat.html" class="nav-link">Chat</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a th:href="login" sec:authorize="!isFullyAuthenticated()" href="login.html" class="nav-link">Login</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a th:href="registration" sec:authorize="!isFullyAuthenticated()" href="registration.html" class="nav-link">Register</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#" class="nav-link">About</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#" class="nav-link">Contact</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#" sec:authorize="isFullyAuthenticated()" th:href="@{/admin}" class="nav-link">
|
||||||
|
Admin Area
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#" sec:authorize="isFullyAuthenticated()" th:text="${#authentication.name}" class="nav-link text-white font-weight-bold">
|
||||||
|
nova
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
@ -38,9 +38,9 @@
|
|||||||
<header>
|
<header>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class=" col-lg-5 offset-lg-3 py-5">
|
<div class=" col-lg-6 offset-lg-3 py-5">
|
||||||
<!-- <h4 class="display-4 text-center py-2">Chat</h4> -->
|
<!-- <h4 class="display-4 text-center py-2">Chat</h4> -->
|
||||||
<div class="card text-white bg-primary mb-3 text-center card-form rounded mx-auto" id="login-card">
|
<div class="card text-white bg-primary text-center card-form rounded p-5" id="login-card">
|
||||||
|
|
||||||
<div class="card-body rounded">
|
<div class="card-body rounded">
|
||||||
<!-- <h4 class="card-title">Chat</h4> -->
|
<!-- <h4 class="card-title">Chat</h4> -->
|
||||||
@ -53,7 +53,7 @@
|
|||||||
<form action="#" th:action="@{/perform_login}" method="POST" id="loginForm">
|
<form action="#" th:action="@{/perform_login}" method="POST" id="loginForm">
|
||||||
<!-- <fieldset>
|
<!-- <fieldset>
|
||||||
<legend>Please Sign In</legend> -->
|
<legend>Please Sign In</legend> -->
|
||||||
<h2 class="card-title">Please Sign In</h2>
|
<h2 class="card-title mb-4">Please Sign In</h2>
|
||||||
<div th:if="${param.error}" class="alert alert-danger">
|
<div th:if="${param.error}" class="alert alert-danger">
|
||||||
Error signing in. Please check your username and password.
|
Error signing in. Please check your username and password.
|
||||||
</div>
|
</div>
|
||||||
@ -61,13 +61,13 @@
|
|||||||
You have been logged out.
|
You have been logged out.
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username">Enter user name: </label>
|
<!-- <label for="username">Enter user name: </label> -->
|
||||||
<input class="form-control" type="text" name="username" id="username">
|
<input class="form-control" type="text" name="username" id="username" placeholder="Username">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password">Enter password: </label>
|
<!-- <label for="password">Enter password: </label> -->
|
||||||
<input class="form-control" type="password" name="password" id="password">
|
<input class="form-control" type="password" name="password" id="password" placeholder="Password">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
<header>
|
<header>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-5 offset-lg-3 py-5">
|
<div class="col-lg-6 offset-lg-3 py-5">
|
||||||
<!-- <h4 class="display-4 text-center py-2">Chat</h4> -->
|
<!-- <h4 class="display-4 text-center py-2">Chat</h4> -->
|
||||||
<div class="card text-white bg-primary mb-3 card-form rounded mx-auto" id="registration-card">
|
<div class="card text-white bg-primary card-form rounded mx-auto p-5" id="registration-card">
|
||||||
|
|
||||||
<div class="card-body rounded">
|
<div class="card-body rounded">
|
||||||
<!-- <h4 class="card-title">Chat</h4> -->
|
<!-- <h4 class="card-title">Chat</h4> -->
|
||||||
@ -36,7 +36,7 @@
|
|||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<div class="card-text">
|
<div class="card-text">
|
||||||
<h2 class="card-title text-center">Register</h2>
|
<h2 class="card-title text-center mb-3">Register</h2>
|
||||||
<form action="#" th:action="@{/perform_registration}" th:object=${userRegistrationDTO} method="POST">
|
<form action="#" th:action="@{/perform_registration}" th:object=${userRegistrationDTO} method="POST">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Enter username: </label>
|
<label>Enter username: </label>
|
||||||
|
Loading…
Reference in New Issue
Block a user