Skip to content

Commit

Permalink
Merge pull request #874 from SkillsFundingAgency/CON-1513-update-to-u…
Browse files Browse the repository at this point in the history
…se-global-header

Con 1513 update to use global header
  • Loading branch information
narendranogothu authored Mar 17, 2020
2 parents 241a54c + 987c624 commit eae70c8
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 113 deletions.
3 changes: 2 additions & 1 deletion src/Employer/Employer.Web/Employer.Web.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
<UserSecretsId>recruit-employer-web</UserSecretsId>
<RootNamespace>Esfa.Recruit.Employer.Web</RootNamespace>
</PropertyGroup>
Expand All @@ -18,6 +18,7 @@
<PackageReference Include="NWebsec.AspNetCore.Middleware" Version="2.0.0" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" />
<PackageReference Include="NWebsec.AspNetCore.Mvc.TagHelpers" Version="2.0.0" />
<PackageReference Include="SFA.DAS.MA.Shared.UI" Version="1.1.19" />
<PackageReference Include="SFA.DAS.NLog.Targets.Redis" Version="1.2.1" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.8.2" />
</ItemGroup>
Expand Down
65 changes: 65 additions & 0 deletions src/Employer/Employer.Web/Extensions/HtmlHelperExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
using System;
using Esfa.Recruit.Employer.Web.Configuration;
using Esfa.Recruit.Employer.Web.Configuration.Routing;
using Esfa.Recruit.Shared.Web.Extensions;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.Extensions.Options;
using SFA.DAS.MA.Shared.UI.Configuration;
using SFA.DAS.MA.Shared.UI.Models;

namespace Esfa.Recruit.Employer.Web.Extensions
{
public static class HtmlHelperExtensions
{
public static IHeaderViewModel GetHeaderViewModel(this IHtmlHelper html, bool hideMenu = false)
{
var externalLinks = (html.ViewContext.HttpContext.RequestServices.GetService(typeof(IOptions<ExternalLinksConfiguration>)) as IOptions<ExternalLinksConfiguration>).Value;
var authConfig = (html.ViewContext.HttpContext.RequestServices.GetService(typeof(IOptions<AuthenticationConfiguration>)) as IOptions<AuthenticationConfiguration>).Value;
var requestRoot = html.ViewContext.HttpContext.Request.GetRequestUrlRoot();
var requestPath = html.ViewContext.HttpContext.Request.Path;
var commitmentsSiteUrl = new Uri(externalLinks.CommitmentsSiteUrl);

var headerModel = new HeaderViewModel(new HeaderConfiguration
{
EmployerCommitmentsBaseUrl = $"{commitmentsSiteUrl.Scheme}://{commitmentsSiteUrl.Host}/commitments",
EmployerFinanceBaseUrl = externalLinks.ManageApprenticeshipSiteUrl,
ManageApprenticeshipsBaseUrl = externalLinks.ManageApprenticeshipSiteUrl,
AuthenticationAuthorityUrl = authConfig.Authority,
ClientId = authConfig.ClientId,
EmployerRecruitBaseUrl = requestRoot,
SignOutUrl = new Uri($"{requestRoot}/services/logout/"),
ChangeEmailReturnUrl = new Uri($"{requestRoot}{requestPath}"),
ChangePasswordReturnUrl = new Uri($"{requestRoot}{requestPath}")
},
new UserContext
{
User = html.ViewContext.HttpContext.User,
HashedAccountId = html.ViewContext.RouteData.Values["employerAccountId"]?.ToString()
});

headerModel.SelectMenu("recruitment");

if ((html.ViewBag.IsErrorPage is bool && html.ViewBag.IsErrorPage) || (html.ViewBag.ShowNav is bool && !html.ViewBag.ShowNav))
{
headerModel.HideMenu();
}

return headerModel;
}

public static IFooterViewModel GetFooterViewModel(this IHtmlHelper html)
{
var externalLinks = (html.ViewContext.HttpContext.RequestServices.GetService(typeof(IOptions<ExternalLinksConfiguration>)) as IOptions<ExternalLinksConfiguration>).Value;

return new FooterViewModel(new FooterConfiguration
{
ManageApprenticeshipsBaseUrl = externalLinks.ManageApprenticeshipSiteUrl
},
new UserContext
{
User = html.ViewContext.HttpContext.User,
HashedAccountId = html.ViewContext.RouteData.Values["employerAccountId"]?.ToString()
});
}
}
}
114 changes: 3 additions & 111 deletions src/Employer/Employer.Web/Views/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
<script src="@Url.Content("/lib/jquery-are-you-sure/jquery.are-you-sure.js")"></script>
<environment exclude="@EnvironmentNames.GetTestEnvironmentNamesCommaDelimited()">
<partial name="@PartialNames.GoogleAnalyticsInfo" />
<partial name="@PartialNames.GoogleTagManagerHead"/>
<partial name="@PartialNames.GoogleTagManagerHead" />
</environment>
<script nws-csp-add-nonce="true">
window.EsfaRecruit = {};
Expand All @@ -78,88 +78,15 @@
</environment>
<script nws-csp-add-nonce="true">document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
<a href="#main-content" class="govuk-skip-link">Skip to main content</a>

<div asp-show="@ViewContext.ViewData[ViewDataKeys.CanShowOutageMessage] as bool?" id="global-outage-message" class="global-message">
<p>@ViewContext.ViewData[ViewDataKeys.PlannedOutageMessage]</p>
<form asp-route="@RouteNames.DismissOutageMessage_Post" novalidate>
<input type="hidden" id="returnUrl" name="returnUrl" value="@ViewContext.HttpContext.Request.Path" />
<button type="submit" class="govuk-button-fake-link">Dismiss</button>
</form>
</div>

@Html.Partial("_CookieBanner")

<header class="govuk-header " role="banner" data-module="header">
<div class="govuk-header__container govuk-width-container">

<div class="govuk-header__logo">
<a href="https://www.gov.uk/" title="Go to the GOV.UK homepage" class="govuk-header__link govuk-header__link--homepage">
<span class="govuk-header__logotype">

<svg role="presentation" focusable="false" class="govuk-header__logotype-crown" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 132 97" height="32" width="36">
<path fill="currentColor" fill-rule="evenodd" d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z"></path>
<image src="/lib/govuk-frontend/dist/assets/images/govuk-logotype-crown.png" class="govuk-header__logotype-crown-fallback-image"></image>
</svg>
<span class="govuk-header__logotype-text">
GOV.UK
</span>
</span>
</a>
</div>
<div class="govuk-header__content">
<a href="@ExternalLinks.MaRoot" class="govuk-header__link govuk-header__link--service-name">
Manage apprenticeships
</a>
</div>
</div>
</header>

<div id="floating-menu-holder">
<div class="account-information floating-menu" role="navigation">
<div class="js-float">
<p class="floating-head-text">Your employer account</p>
<nav id="user-nav">
<ul role="menubar">
<li><a href="@ExternalLinks.Help" class="menu-main" target="_blank">Help</a></li>
@if (Context.User.Identity.IsAuthenticated)
{
<li class="has-sub-menu">
<a href="/" role="menuitem" class="menu-main">Settings</a>
<ul role="menu" id="settings-menu" class="js-hidden">
<li><a href="@ExternalLinks.Accounts" role="menuitem" class="sub-menu-item">Your accounts</a></li>
<li asp-hide="@IsErrorPage()"><a asp-route="@RouteNames.Dashboard_AccountsRename" class="sub-menu-item">Rename account</a></li>
<li><a asp-route="@RouteNames.Dashboard_ChangePassword" asp-route-returnUrl="@Context.Request.Path" class="sub-menu-item">Change your password</a></li>
<li><a asp-route="@RouteNames.Dashboard_ChangeEmail" asp-route-returnUrl="@Context.Request.Path" class="sub-menu-item">Change your email address</a></li>
<li asp-hide="@IsErrorPage()"><a href="@ExternalLinks.Notifications" class="sub-menu-item">Notifications settings</a></li>
</ul>
</li>
<li><a asp-route="@RouteNames.Logout_Get" role="menuitem" class="menu-main" esfa-automation="sign-out">Sign out</a></li>
}
else
{
<li><a href="@ExternalLinks.MaRoot" role="menuitem">Sign in / Register</a></li>
}
</ul>
</nav>
</div>
</div>
</div> <!--/floating-menu-holder-->
@if (Context.User.Identity.IsAuthenticated)
{
<div asp-show="ParseHideNavFromViewBag()" class="header-organisation" role="navigation">
<nav class="header-inner">
<ul role="menubar" id="global-nav-links">
<li><a asp-route="@RouteNames.Dashboard_Account_Home" role="menuitem">Home</a></li>
<li><a asp-route="@RouteNames.Dashboard_AccountsFinance" role="menuitem">Finance</a></li>
<li><a asp-route="@RouteNames.Dashboard_Get" class="selected" role="menuitem">Recruitment</a></li>
<li><a asp-route="@RouteNames.Dashboard_AccountsApprentices" role="menuitem">Apprentices</a></li>
<li><a asp-route="@RouteNames.Dashboard_AccountsTeams" role="menuitem">Your team</a></li>
<li><a asp-route="@RouteNames.Dashboard_AccountsAgreements" role="menuitem">Your organisations and agreements</a></li>
<li><a asp-route="@RouteNames.Dashboard_AccountsSchemes" role="menuitem">PAYE schemes</a></li>
</ul>
</nav>
</div>
}
@Html.Partial("_Header", Html.GetHeaderViewModel())

<div class="govuk-width-container">
<div class="govuk-phase-banner">
Expand All @@ -174,43 +101,8 @@
@RenderBody()
</main>
</div>
@Html.Partial("_Footer", Html.GetFooterViewModel())

<footer class="govuk-footer " role="contentinfo">
<div class="govuk-width-container ">
<div class="govuk-footer__meta">
<div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
<h2 class="govuk-visually-hidden">Support links</h2>
<ul class="govuk-footer__inline-list">
<li class="govuk-footer__inline-list-item">
<a class="govuk-footer__link" href="@ExternalLinks.Help" target="_blank">Help</a>
</li>
<li class="govuk-footer__inline-list-item">
<a class="govuk-footer__link" href="https://www.surveymonkey.co.uk/r/2JPLQ9T" target="_blank">Feedback</a>
</li>
<li class="govuk-footer__inline-list-item">
<a class="govuk-footer__link" href="@ExternalLinks.Privacy">Privacy</a>
</li>
<li class="govuk-footer__inline-list-item">
<a class="govuk-footer__link" asp-route="@RouteNames.Dashboard_Account_CookieConsent">Cookies</a>
</li>
<li class="govuk-footer__inline-list-item">
Built by the <a href="http://gov.uk/sfa" target="_blank" class="govuk-footer__link">Education and Skills Funding Agency</a>
</li>
</ul>
<svg role="presentation" focusable="false" class="govuk-footer__licence-logo" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 483.2 195.7" height="17" width="41">
<path fill="currentColor" d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145" />
</svg>
<span class="govuk-footer__licence-description">
All content is available under the
<a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">Open Government Licence v3.0</a>, except where otherwise stated
</span>
</div>
<div class="govuk-footer__meta-item">
<a class="govuk-footer__link govuk-footer__copyright-logo" href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/">© Crown copyright</a>
</div>
</div>
</div>
</footer>
<script src="/lib/govuk-frontend/dist/govuk-frontend-2.5.0.min.js"></script>
<script src="/lib/esfa-stacker/stacker.js"></script>
<script asp-append-version="true" src="/javascripts/application.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion src/Employer/UnitTests/UnitTests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
<IsPackable>false</IsPackable>
<RootNamespace>Esfa.Recruit.Employer.UnitTests</RootNamespace>
</PropertyGroup>
Expand Down

0 comments on commit eae70c8

Please sign in to comment.