docbrown/app/views/layouts/admin.html.erb
Suzanne Aitchison 4d07a1ef7b
Tweaks to the admin flash messages flow (#16582)
* Focus flash message button on load

* update specs

* Update app/javascript/packs/admin/flashMessages.js

Co-authored-by: Nick Taylor <nick@iamdeveloper.com>

* Update app/javascript/packs/admin/flashMessages.js

Co-authored-by: Nick Taylor <nick@iamdeveloper.com>

Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
2022-02-16 10:07:21 +00:00

116 lines
5.3 KiB
Text

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<%# The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags %>
<meta name="description" content="">
<meta name="author" content="">
<%= csrf_meta_tags %>
<%= favicon_link_tag Images::Optimizer.call(Settings::General.favicon_url, width: 32) %>
<title><%= controller_name.titleize %></title>
<!-- StimulusJS -->
<%= javascript_packs_with_chunks_tag "admin", defer: true %>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<%= stylesheet_link_tag "admin" %>
</head>
<body class="admin default-header"
data-honeybadger-key="<%= j(ApplicationConfig["HONEYBADGER_JS_API_KEY"]) %>"
data-deployed-at="<%= j(ForemInstance.deployed_at) %>"
data-latest-commit-id="<%= j(ForemInstance.latest_commit_id) %>"
data-ga-tracking="<%= j(Settings::General.ga_tracking_id) %>"
data-controller="snackbar"
data-action="snackbar:add@document->snackbar#addItem">
<div id="body-styles">
<style>
:root {
--accent-brand-lighter-rgb: <%= Color::CompareHex.new([Settings::UserExperience.primary_brand_color_hex]).brightness(1.35, only_values: true) %>;
--accent-brand-rgb: <%= Color::CompareHex.new([Settings::UserExperience.primary_brand_color_hex]).brightness(1, only_values: true) %>;
--accent-brand-darker-rgb: <%= Color::CompareHex.new([Settings::UserExperience.primary_brand_color_hex]).brightness(0.8, only_values: true) %>;
}
</style>
</div>
<header class="crayons-header">
<span id="route-change-target" tabindex="-1"></span>
<a href="#main-content" class="skip-content-link"><%= t("views.main.header.skip") %></a>
<div class="crayons-header__container">
<%= render "layouts/logo" %>
<h1 class="pl-4 fs-base hidden s:block">
<a class="c-link c-link--branded" href="<%= admin_path %>">Admin</a>
<span class="color-base-60">&raquo;</span>
<span class="fw-medium">
<%= yield(:h1).presence || controller_name.titleize %>
</span>
</h1>
<nav aria-label="header" class="flex items-center h-100 ml-auto">
<%= link_to "Help", "https://admin.forem.com/", class: "c-link c-link--block whitespace-nowrap" %>
<%= link_to "Home page", root_path, class: "c-link c-link--block whitespace-nowrap" %>
</nav>
</div>
</header>
<div class="crayons-layout crayons-layout--2-cols">
<div class="admin__left-sidebar crayons-layout__left-sidebar" data-controller="sidebar" data-action="load@window->sidebar#disableCurrentNavItem">
<nav>
<ul>
<li>
<a class="crayons-link crayons-link--block <%= "crayons-link--current" if controller.controller_name == "overview" %>" href="<%= admin_path %>" aria-current "<%= "page" if controller.controller_name == "overview" %>">
<%= crayons_icon_tag("stack-line", class: "dropdown-icon") %>
Overview
</a>
</li>
<%= render "admin/shared/nested_sidebar", menu_items: AdminMenu.navigation_items %>
<li class="block s:hidden">
<a class="crayons-link crayons-link--block" href="/">
<%= crayons_icon_tag("external-link", class: "dropdown-icon") %>
Go to <%= community_name %> home page
</a>
</li>
</ul>
</nav>
</div>
<main id="main-content" class="crayons-layout__content min-w-0 p-2">
<%= javascript_packs_with_chunks_tag "admin/flashMessages", defer: true %>
<% flash.each_with_index do |(type, message), i| %>
<div data-testid="flash-<%= type %>" class="alert alert-<%= type == "notice" || type == "success" ? "success" : "danger" %>">
<span id="flash-<%= i %>"><%= message %></span>
<button class="close js-flash-close-btn" data-dismiss="alert" aria-label="Dismiss message" aria-describedby="flash-<%= i %>">
<%= crayons_icon_tag(:x, aria_hidden: true) %>
</button>
</div>
<% end %>
<div
data-controller="alert"
data-action="error:generate@document->alert#generateErrorAlert"
data-testid="alertzone">
<div data-alert-target="alertZone" role="alert"></div>
</div>
<% if request.path.split("/")[-3] == "admin" %>
<%= render "admin/shared/tabbed_navbar", menu_items: AdminMenu.nested_menu_items_from_request(request) %>
<% end %>
<%= yield %>
<% if @help_url %>
<%= render "shared/help_icon" %>
<% end %>
</main>
</div>
<div data-snackbar-target="snackZone"></div>
<!-- Bootstrap Dependencies -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>