119 lines
4.2 KiB
Plaintext
119 lines
4.2 KiB
Plaintext
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title><%= content_for(:title) || "Baffle Hub - WAF Analytics" %></title>
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="application-name" content="Baffle Hub">
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
<%= csrf_meta_tags %>
|
|
<%= csp_meta_tag %>
|
|
|
|
<%= yield :head %>
|
|
|
|
<%# Enable PWA manifest for installable apps (make sure to enable in config/routes.rb too!) %>
|
|
<%#= tag.link rel: "manifest", href: pwa_manifest_path(format: :json) %>
|
|
|
|
<link rel="icon" href="/icon.png" type="image/png">
|
|
<link rel="icon" href="/icon.svg" type="image/svg+xml">
|
|
<link rel="apple-touch-icon" href="/icon.png">
|
|
|
|
<!-- Bootstrap CSS -->
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
<%# Includes all stylesheet files in app/assets/stylesheets %>
|
|
<%= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
|
|
<%= javascript_importmap_tags %>
|
|
|
|
<style>
|
|
.badge { font-size: 0.8em; }
|
|
code {
|
|
background-color: #f8f9fa;
|
|
padding: 0.2rem 0.4rem;
|
|
border-radius: 0.25rem;
|
|
font-size: 0.875em;
|
|
}
|
|
.navbar-brand {
|
|
font-weight: bold;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
|
<div class="container">
|
|
<%= link_to "Baffle Hub", root_path, class: "navbar-brand" %>
|
|
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav me-auto">
|
|
<li class="nav-item">
|
|
<%= link_to "Projects", projects_path, class: "nav-link" %>
|
|
</li>
|
|
<li class="nav-item">
|
|
<%= link_to "Rules", rules_path, class: "nav-link" %>
|
|
</li>
|
|
<% if user_signed_in? && current_user_admin? %>
|
|
<li class="nav-item">
|
|
<%= link_to "Users", users_path, class: "nav-link" %>
|
|
</li>
|
|
<% end %>
|
|
</ul>
|
|
|
|
<ul class="navbar-nav">
|
|
<% if user_signed_in? %>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
|
|
<%= current_user.email_address %>
|
|
<span class="badge bg-secondary ms-1"><%= current_user.role %></span>
|
|
</a>
|
|
<ul class="dropdown-menu">
|
|
<% if current_user_admin? %>
|
|
<li><%= link_to "Manage Users", users_path, class: "dropdown-item" %></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<% end %>
|
|
<li><%= link_to "Sign Out", session_path, data: { turbo_method: :delete }, class: "dropdown-item" %></li>
|
|
</ul>
|
|
</li>
|
|
<% else %>
|
|
<% if User.none? %>
|
|
<li class="nav-item">
|
|
<%= link_to "Create Admin Account", new_registration_path, class: "nav-link btn btn-success text-white" %>
|
|
</li>
|
|
<% else %>
|
|
<li class="nav-item">
|
|
<%= link_to "Sign In", new_session_path, class: "nav-link" %>
|
|
</li>
|
|
<% end %>
|
|
<% end %>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<div class="container mt-4">
|
|
<% if notice %>
|
|
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
|
<%= notice %>
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if alert %>
|
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
<%= alert %>
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
|
</div>
|
|
<% end %>
|
|
|
|
<%= yield %>
|
|
</div>
|
|
|
|
<!-- Bootstrap JS -->
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
</body>
|
|
</html>
|