Files
sisvietnamvn_01/sisvietnamvn_main/src/main/resources/templates/fragments/manage-layout.html
T

442 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title layout:title-pattern="$CONTENT_TITLE - $LAYOUT_TITLE">SIS Vietnam - Manage</title>
<!-- Custom fonts for this template-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" rel="stylesheet"
type="text/css">
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">
<!-- Custom styles for this template-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/startbootstrap-sb-admin-2/4.1.4/css/sb-admin-2.min.css"
rel="stylesheet">
<!-- Project-wide CSS Variables & Custom Styles -->
<link rel="stylesheet" th:href="@{/css/custom.css}">
<!-- Select2 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2-bootstrap-theme/0.1.0-beta.10/select2-bootstrap.min.css">
<!-- Admin Head Hook -->
<th:block th:utext="${hookManager.doActionAndReturn('admin_head')}"></th:block>
</head>
<body id="page-top">
<!-- Page Wrapper -->
<div id="wrapper">
<!-- Sidebar -->
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
<!-- Sidebar - Brand -->
<a class="sidebar-brand d-flex align-items-center justify-content-center" th:href="@{/manage}"
style="height: 130px;">
<div class="sidebar-brand-icon">
<img th:src="@{/images/LogoSIS_White.png}" alt="Logo" style="width: 100%;">
</div>
<!-- <div class="sidebar-brand-text mx-3">SIS Manage</div> -->
</a>
<!-- Divider -->
<hr class="sidebar-divider my-0">
<!-- Nav Item - Dashboard Collapse Menu -->
<li class="nav-item active">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseDashboard"
aria-expanded="true" aria-controls="collapseDashboard">
<i class="fas fa-fw fa-tachometer-alt"></i>
<span>Dashboard</span>
</a>
<div id="collapseDashboard" class="collapse" aria-labelledby="headingDashboard"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<a class="collapse-item" th:href="@{/manage}">Home</a>
<a class="collapse-item" th:href="@{/manage/updates}">Updates</a>
</div>
</div>
</li>
<!-- Divider -->
<hr class="sidebar-divider">
<!-- Heading -->
<div class="sidebar-heading">
Content
</div>
<!-- Nav Item - Posts Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePosts"
aria-expanded="true" aria-controls="collapsePosts">
<i class="fas fa-fw fa-newspaper"></i>
<span>Posts</span>
</a>
<div id="collapsePosts" class="collapse" aria-labelledby="headingPosts" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Post Management:</h6>
<a class="collapse-item" th:href="@{/manage/posts}">All Posts</a>
<a class="collapse-item" th:href="@{/manage/posts/new}">Add New</a>
<a class="collapse-item" th:href="@{/manage/posts/categories}">Categories</a>
<a class="collapse-item" th:href="@{/manage/posts/tags}">Tags</a>
</div>
</div>
</li>
<!-- Nav Item - Media Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseMedia"
aria-expanded="true" aria-controls="collapseMedia">
<i class="fas fa-fw fa-photo-video"></i>
<span>Media</span>
</a>
<div id="collapseMedia" class="collapse" aria-labelledby="headingMedia" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Media Management:</h6>
<a class="collapse-item" th:href="@{/manage/media}">Library</a>
<a class="collapse-item" th:href="@{/manage/media/new}">Add New</a>
</div>
</div>
</li>
<!-- 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-file-alt"></i>
<span>Pages</span>
</a>
<div id="collapsePages" class="collapse" aria-labelledby="headingPages" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Page Management:</h6>
<a class="collapse-item" th:href="@{/manage/pages}">All Pages</a>
<a class="collapse-item" th:href="@{/manage/pages/new}">Add New</a>
</div>
</div>
</li>
<!-- Nav Item - Medical Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseMedical"
aria-expanded="true" aria-controls="collapseMedical">
<i class="fas fa-fw fa-user-md"></i>
<span>Medical</span>
</a>
<div id="collapseMedical" class="collapse" aria-labelledby="headingMedical" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Medical Team:</h6>
<a class="collapse-item" th:href="@{/manage/doctors}">Doctors</a>
<a class="collapse-item" th:href="@{/manage/specialties}">Specialties</a>
</div>
</div>
</li>
<!-- Nav Item - Appearance Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseAppearance"
aria-expanded="true" aria-controls="collapseAppearance">
<i class="fas fa-fw fa-paint-brush"></i>
<span>Appearance</span>
</a>
<div id="collapseAppearance" class="collapse" aria-labelledby="headingAppearance"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Design Management:</h6>
<a class="collapse-item" th:href="@{/manage/themes}">Themes</a>
<a class="collapse-item" th:href="@{/manage/theme-editor}">Theme File Editor</a>
<a class="collapse-item" th:href="@{/manage/customize}">Customize</a>
<a class="collapse-item" th:href="@{/manage/menus}">Menus</a>
<a class="collapse-item" th:href="@{/manage/widgets}">Widgets</a>
</div>
</div>
</li>
<!-- Divider -->
<hr class="sidebar-divider">
<!-- Heading -->
<div class="sidebar-heading">
System
</div>
<!-- Nav Item - Plugins Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePlugins"
aria-expanded="true" aria-controls="collapsePlugins">
<i class="fas fa-fw fa-plug"></i>
<span>Plugins</span>
</a>
<div id="collapsePlugins" class="collapse" aria-labelledby="headingPlugins"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Plugin Management:</h6>
<a class="collapse-item" th:href="@{/manage/plugins}">Installed Plugins</a>
<a class="collapse-item" th:href="@{/manage/plugins/new}">Add New</a>
<a class="collapse-item" th:href="@{/manage/plugins/editor}">Plugin File Editor</a>
<th:block th:utext="${hookManager.applyFilters('admin_menu_plugins', '')}"></th:block>
</div>
</div>
</li>
<!-- Nav Item - Users Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUsers"
aria-expanded="true" aria-controls="collapseUsers">
<i class="fas fa-fw fa-users"></i>
<span>Users</span>
</a>
<div id="collapseUsers" class="collapse" aria-labelledby="headingUsers" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">User Management:</h6>
<a class="collapse-item" th:href="@{/manage/users}">All Users</a>
<a class="collapse-item" th:href="@{/manage/users/new}">Add New</a>
</div>
</div>
</li>
<!-- Divider -->
<hr class="sidebar-divider">
<!-- Heading -->
<div class="sidebar-heading">
Interface
</div>
<!-- Nav Item - Components 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>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Custom Components:</h6>
<a class="collapse-item" th:href="@{/manage/components}">Component Templates</a>
<a class="collapse-item" th:href="@{/manage/snippets}">HTML Snippets</a>
</div>
</div>
</li>
<!-- Nav Item - Settings Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseSettings"
aria-expanded="true" aria-controls="collapseSettings">
<i class="fas fa-fw fa-cogs"></i>
<span>Settings</span>
</a>
<div id="collapseSettings" class="collapse" aria-labelledby="headingSettings"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Configuration:</h6>
<a class="collapse-item" th:href="@{/manage/settings/general}">General</a>
<a class="collapse-item" th:href="@{/manage/settings/writing}">Writing</a>
<a class="collapse-item" th:href="@{/manage/settings/reading}">Reading</a>
<a class="collapse-item" th:href="@{/manage/settings/discussion}">Discussion</a>
<a class="collapse-item" th:href="@{/manage/settings/media}">Media</a>
<a class="collapse-item" th:href="@{/manage/settings/permalinks}">Permalinks</a>
<a class="collapse-item" th:href="@{/manage/settings/privacy}">Privacy</a>
<a class="collapse-item" th:href="@{/manage/settings/branches}">Branches</a>
</div>
</div>
</li>
<!-- Nav Item - Tools Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTools"
aria-expanded="true" aria-controls="collapseTools">
<i class="fas fa-fw fa-wrench"></i>
<span>Tools</span>
</a>
<div id="collapseTools" class="collapse" aria-labelledby="headingTools" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">System Tools:</h6>
<a class="collapse-item" th:href="@{/manage/tools/import-export}">Import / Export</a>
<a class="collapse-item" th:href="@{/manage/tools/site-health}">Site Health</a>
<a class="collapse-item" th:href="@{/manage/tools/personal-data}">Personal Data (GDPR)</a>
<a class="collapse-item" th:href="@{/manage/doctor-scheduler}">Doctor Scheduler</a>
</div>
</div>
</li>
<!-- Divider -->
<hr class="sidebar-divider d-none d-md-block">
<!-- Dynamic Extensions Heading (only if dynamic menus exist) -->
<th:block th:if="${!dynamicAdminMenus.isEmpty()}">
<div class="sidebar-heading">
Extensions
</div>
<!-- Dynamic Menus Loop -->
<li class="nav-item" th:each="menu : ${dynamicAdminMenus}">
<!-- Dropdown Trigger -->
<a class="nav-link collapsed" href="#" data-toggle="collapse"
th:data-target="'#collapse_' + ${#strings.replace(menu.menuSlug, '-', '_')}"
aria-expanded="true">
<i th:class="${menu.iconUrl}"></i>
<span th:text="${menu.menuTitle}">Menu Title</span>
</a>
<!-- Dropdown Content -->
<div th:id="'collapse_' + ${#strings.replace(menu.menuSlug, '-', '_')}" class="collapse"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<a class="collapse-item" th:each="sub : ${menu.submenus}" th:href="@{${sub.url}}"
th:text="${sub.menuTitle}">Submenu</a>
</div>
</div>
</li>
<hr class="sidebar-divider d-none d-md-block">
</th: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 -->
<!-- Content Wrapper -->
<div id="content-wrapper" class="d-flex flex-column">
<!-- Main Content -->
<div id="content">
<!-- Topbar -->
<nav class="navbar navbar-expand navbar-light bg-white 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 Navbar -->
<ul class="navbar-nav ml-auto">
<!-- Nav Item - User Information -->
<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">
<span class="mr-2 d-none d-lg-inline text-gray-600 small"
sec:authentication="name">Admin User</span>
<img class="img-profile rounded-circle"
src="https://startbootstrap.github.io/startbootstrap-sb-admin-2/img/undraw_profile.svg">
</a>
<!-- Dropdown - User Information -->
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
aria-labelledby="userDropdown">
<a class="dropdown-item" th:href="@{/manage/profile}">
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
Profile
</a>
<div class="dropdown-divider"></div>
<form method="post" th:action="@{/manage/logout}" id="logoutForm" class="d-none">
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
</form>
<a class="dropdown-item" href="#"
onclick="document.getElementById('logoutForm').submit(); return false;">
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
Logout
</a>
</div>
</li>
</ul>
</nav>
<!-- End of Topbar -->
<!-- Begin Page Content -->
<div class="container-fluid" layout:fragment="content">
<!-- Page Content goes here -->
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
<!-- Footer -->
<footer class="sticky-footer bg-white">
<div class="container my-auto">
<div class="copyright text-center my-auto">
<span>Copyright &copy; SIS Vietnam 2026</span>
</div>
</div>
</footer>
<!-- End of Footer -->
</div>
<!-- End of Content Wrapper -->
</div>
<!-- End of Page Wrapper -->
<!-- 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">
<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="#">Logout</a>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script th:inline="javascript">
$(document).ajaxError(function(event, jqXHR, settings, thrownError) {
if (jqXHR.status === 401 || jqXHR.status === 403) {
window.location.href = /*[[@{/manage/login?expired}]]*/ '/manage/login?expired';
}
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.bundle.min.js"></script>
<!-- Core plugin JavaScript-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>
<!-- Custom scripts for all pages-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/startbootstrap-sb-admin-2/4.1.4/js/sb-admin-2.min.js"></script>
<!-- Select2 JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
<!-- Page-specific scripts injected by child templates -->
<section layout:fragment="scripts"></section>
<!-- Admin Footer Hook -->
<th:block th:utext="${hookManager.doActionAndReturn('admin_footer')}"></th:block>
<!-- Admin Footer Scripts Hook -->
<th:block th:utext="${hookManager.applyFilters('admin_footer_scripts', '')}"></th:block>
</body>
</html>