183 lines
7.6 KiB
Plaintext
183 lines
7.6 KiB
Plaintext
<!DOCTYPE html >
|
|
<html xmlns="http://www.w3.org/1999/html" lang="@ViewBag.Language">
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
<title>@ViewBag.Title | IW4MAdmin</title>
|
|
<meta property="og:title" content="@ViewBag.Title | IW4MAdmin">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:image" content="@ViewBag.Url/images/icon.png">
|
|
<meta property="og:description" content="@ViewBag.Description">
|
|
<meta property="og:url" content="@ViewBag.Url">
|
|
<meta name="description" content="@ViewBag.Description">
|
|
<meta name="keywords" content="@ViewBag.Keywords">
|
|
<link rel="icon" type="image/png" href="~/images/icon.png">
|
|
<environment include="Development">
|
|
<link rel="stylesheet" href="~/lib/halfmoon/css/halfmoon-variables.css"/>
|
|
<link rel="stylesheet" href="/css/src/main.css"/>
|
|
<link rel="stylesheet" href="/css/open-iconic.css"/>
|
|
</environment>
|
|
<environment include="Production">
|
|
<link rel="stylesheet" href="~/css/global.min.css?version=@ViewBag.Version"/>
|
|
</environment>
|
|
@if (ViewBag.Configuration.WebfrontPrimaryColor is not null)
|
|
{
|
|
<style>
|
|
:root {
|
|
--blue-color: @ViewBag.Configuration.WebfrontPrimaryColor;
|
|
}
|
|
</style>
|
|
}
|
|
@if (ViewBag.Configuration.WebfrontSecondaryColor is not null)
|
|
{
|
|
<style>
|
|
:root {
|
|
--yellow-color: @ViewBag.Configuration.WebfrontSecondaryColor;
|
|
}
|
|
</style>
|
|
}
|
|
@await RenderSectionAsync("styles", false)
|
|
</head>
|
|
<body class="dark-mode with-custom-webkit-scrollbars with-custom-css-scrollbars" data-set-preferred-mode-onload="true">
|
|
|
|
<!-- action modal -->
|
|
<div class="modal" id="actionModal" tabindex="-1" role="dialog" style="z-index: 1000">
|
|
<div class="modal-dialog" role="document">
|
|
<div id="modalLoadingBar" class="modal-loading-bar progress-bar position-absolute flex-fill position-fixed z-30" style="display:none">
|
|
<div class="progress-bar-value"></div>
|
|
</div>
|
|
<div class="modal-content p-10">
|
|
<div class="modal-content">
|
|
<a href="#" onclick="halfmoon.toggleModal('actionModal')" class="btn close" role="button" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</a>
|
|
<div id="actionModalContent">
|
|
<h4 class="mt-20">No content available yet...</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- context modal -->
|
|
<div class="modal" id="contextModal" tabindex="-1" role="dialog">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-loading-bar progress-bar position-absolute flex-fill position-fixed z-30" style="display:none">
|
|
<div class="progress-bar-value"></div>
|
|
</div>
|
|
<div class="modal-content">
|
|
<div class="modal-content p-10">
|
|
<a href="#" onclick="halfmoon.toggleModal('contextModal')" class="btn close" role="button" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</a>
|
|
<div id="contextModalContent">
|
|
<div class="modal-title"></div>
|
|
<hr/>
|
|
<div class="modal-body font-size-12"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page-wrapper with-navbar with-sidebar" data-sidebar-type="overlayed-sm-and-down">
|
|
<!-- toast notifications -->
|
|
<div class="sticky-alerts" style="z-index: 1001"></div>
|
|
<!-- top menu bar -->
|
|
<nav class="navbar">
|
|
<button id="toggle-sidebar-btn" class="btn btn-action" type="button" onclick="halfmoon.toggleSidebar()">
|
|
<i class="oi oi-menu" aria-hidden="true"></i>
|
|
</button>
|
|
|
|
<!-- branding -->
|
|
<a asp-controller="Home" asp-action="Index" class="navbar-brand mr-20 mr-md-0">
|
|
<div>@ViewBag.CustomBranding</div>
|
|
</a>
|
|
|
|
<!-- client badges -->
|
|
<div class="d-none d-md-block">
|
|
<div class="badge-group ml-20" role="group" aria-label="...">
|
|
<span class="badge badge-primary">@(ViewBag.ClientCount ?? "-")</span>
|
|
<span class="badge bg-dark-dm bg-light-lm">Clients</span>
|
|
</div>
|
|
|
|
<has-permission entity="PrivilegedClientsPage" required-permission="Read">
|
|
<div class="badge-group ml-10" role="group" aria-label="...">
|
|
<span class="badge badge-success">@(ViewBag.AdminCount ?? "-")</span>
|
|
<span class="badge bg-dark-dm bg-light-lm">Admins</span>
|
|
</div>
|
|
</has-permission>
|
|
|
|
<has-permission entity="AdminMenu" required-permission="Read">
|
|
<a href="#actionModal" class="profile-action no-decoration" data-action="RecentReports" data-toggle="tooltip" data-title="View recent reports" data-placement="bottom">
|
|
<div class="badge-group ml-10" role="group">
|
|
<span class="badge badge-danger">@(ViewBag.ReportCount ?? "-")</span>
|
|
<span class="badge bg-dark-dm bg-light-lm">Reports</span>
|
|
</div>
|
|
</a>
|
|
</has-permission>
|
|
</div>
|
|
|
|
<div class="d-flex ml-auto">
|
|
<div class="btn btn-action mr-10 ml-10" onclick="halfmoon.toggleDarkMode()" data-toggle="tooltip" data-title="Toggle display mode" data-placement="bottom">
|
|
<i class="oi oi-moon"></i>
|
|
</div>
|
|
<div class="d-none d-md-block ">
|
|
|
|
<partial name="_SearchResourceForm"/>
|
|
</div>
|
|
<div class="d-flex d-lg-none">
|
|
<a href="#" onclick="halfmoon.toggleModal('contextMenuModal')">
|
|
<button class="btn" type="button">
|
|
<i class="oi oi-ellipses"></i>
|
|
</button>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
<partial name="_LeftNavBar"/>
|
|
|
|
<div id="target_id">
|
|
@await RenderSectionAsync("targetid", required: false)
|
|
</div>
|
|
|
|
<div class="container-fluid content-wrapper">
|
|
<div id="mainLoadingBar" class="progress-bar position-absolute flex-fill position-fixed z-30" style="display: none">
|
|
<div class="progress-bar-value"></div>
|
|
</div>
|
|
|
|
@RenderBody()
|
|
|
|
<div class="content">
|
|
<div class="badge text-muted">threadsafe.pw</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<environment include="Development">
|
|
<script type="text/javascript" src="~/lib/jquery/dist/jquery.js"></script>
|
|
<script type="text/javascript" src="~/lib/moment.js/moment.js"></script>
|
|
<script type="text/javascript" src="~/lib/moment-timezone/moment-timezone.js"></script>
|
|
<script type="text/javascript" src="~/lib/chart.js/dist/Chart.bundle.min.js"></script>
|
|
<script type="text/javascript" src="~/lib/halfmoon/js/halfmoon.js"></script>
|
|
<script type="text/javascript" src="~/js/action.js"></script>
|
|
<script type="text/javascript" src="~/js/loader.js"></script>
|
|
<script type="text/javascript" src="~/js/search.js"></script>
|
|
</environment>
|
|
<environment include="Production">
|
|
<script type="text/javascript" src="~/js/global.min.js?version=@ViewBag.Version"></script>
|
|
</environment>
|
|
<script>
|
|
let _localizationTmp = @Html.Raw(Json.Serialize(ViewBag.Localization));
|
|
const _localization = [];
|
|
$.each(_localizationTmp.set, function (key, value) {
|
|
_localization[key] = value;
|
|
});
|
|
</script>
|
|
@await RenderSectionAsync("scripts", required: false)
|
|
@Html.Raw(ViewBag.ScriptInjection)
|
|
</body>
|
|
</html>
|