SurveyVista/Web/Areas/Admin/Views/Shared/_AdminLayout.cshtml
2024-06-06 15:24:04 +02:00

170 lines
7.7 KiB
Text

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - Web</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/Web.styles.css" asp-append-version="true" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css" />
</head>
<body>
<div class="wrapper d-flex align-items-stretch">
<nav id="sidebar" class="active">
<h1><a class="logo">OS</a></h1>
<ul class="list-unstyled components mb-5">
<li class="sidebarCollapse">
<a asp-controller="admin" asp-action="index"><span class="bi bi-speedometer"></span> Admin</a>
</li>
<li>
<a asp-controller="Page" asp-action="index"><span class="bi bi-file-earmark-fill"></span> Pages</a>
</li>
<li>
<a asp-controller="banner" asp-action="index"><span class="bi bi-card-image"></span> Banners</a>
</li>
<li>
<a asp-controller="footer" asp-action="index"><span class="bi bi-c-circle-fill"></span> Footer</a>
</li>
<li>
<a asp-controller="address" asp-action="index"><span class="bi bi-pin-map"></span> Address</a>
</li>
<li>
<a asp-controller="SocialMedia" asp-action="index"><span class="bi bi-collection-play-fill"></span> Social Media</a>
</li>
<li>
<a asp-controller="Questionnaire" asp-action="index"><span class="bi bi-question-circle"></span> Survey</a>
</li>
<li>
<a asp-controller="SurveyAnalysis" asp-action="index"><span class="bi bi-graph-up-arrow"></span> Analyzer</a>
</li>
<li>
<a asp-controller="UserResponse" asp-action="index"><span class="bi bi-clipboard-data"></span> Response</a>
</li>
<li>
<a asp-controller="UserResponseStatus" asp-action="index"><span class="bi bi-heart-pulse"></span> User status</a>
</li>
<li>
<a asp-controller="newsletters" asp-action="index"><span class="bi bi-newspaper"></span> Subscibers</a>
</li>
</ul>
</nav>
<!-- Page Content -->
<div id="content">
<nav class="navbar navbar-expand-lg navbar-light bg-brimary">
<div class="container-fluid">
<button type="button" id="sidebarCollapse" class="btn btn-primary">
<i class="bi bi-list"></i>
<span class="sr-only">Toggle Menu</span>
</button>
<button class="navbar-toggler btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-list"></i>
<span class="sr-only"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="nav navbar-nav ml-auto">
<span class="dropdown mr-2">
<button class="btn btn-info btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Notifications <span class="badge badge-danger" id="notificationCount">0</span>
</a>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">
<h6 class="dropdown-header">New Notifications</h6>
<div id="notifications">
</div>
</a>
</li>
</ul>
</span>
<span class="dropdown mr-2">
<button class="btn btn-primary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
Account
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" asp-controller="Roles" asp-action="index">Roles</a></li>
<li><a class="dropdown-item" asp-controller="Users" asp-action="index">Users</a></li>
</ul>
</span>
<li class="nav-item">
<form asp-area="Admin" asp-controller="Admin" asp-action="Logout" method="post">
<button type="submit" class="btn btn-danger btn-sm"><span class="bi bi-box-arrow-left"></span> Logout</button>
</form>
</li>
</ul>
</div>
</div>
</nav>
<main>
@RenderBody()
</main>
</div>
</div>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/5.0.11/signalr.min.js"></script>
<script type="text/javascript">
// Establish a connection to the SignalR hub
const connection = new signalR.HubConnectionBuilder()
.withUrl("/notificationHub")
.build();
// Function to add a notification to the list
function addNotification(userName, email) {
const notificationsList = document.getElementById("notifications");
const li = document.createElement("li");
li.className = "list-group-item";
li.textContent = `New submission from ${userName}`;
notificationsList.appendChild(li);
// Update the notification count
const notificationCount = document.getElementById("notificationCount");
notificationCount.textContent = parseInt(notificationCount.textContent) + 1;
}
// Receive notification from the server
connection.on("ReceiveNotification", function (userName, email) {
addNotification(userName, email);
});
// Start the connection
connection.start().catch(function (err) {
return console.error(err.toString());
});
</script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>