From c5393e909ae3019287bfb573a7a8df17139dfa02 Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:40:03 +0000 Subject: [PATCH 01/11] Adding print icon to assets --- .../AssetSrc/assets/icon-print.png | Bin 0 -> 287 bytes src/web/CareLeavers.Web/CareLeavers.Web.csproj | 15 +++++++++++++++ src/web/CareLeavers.Web/Gulpfile.js | 11 ++++++----- 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 src/web/CareLeavers.Web/AssetSrc/assets/icon-print.png diff --git a/src/web/CareLeavers.Web/AssetSrc/assets/icon-print.png b/src/web/CareLeavers.Web/AssetSrc/assets/icon-print.png new file mode 100644 index 0000000000000000000000000000000000000000..5a879f9b661374e5de74b5e5d085b18e6718b8c0 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yF!VDy(j;dY+QtAOdA+GD+fd`F*1N<_#9E3jBu!f{embdc4lh?Xixr%MrA) z;VY=#7gq6pw-`eqLs-XcrdI*yrM~K4aAZu#XlH2^Gtc2=Ty<5}NOYn>v(HC{M%RNq z%iGhEolFi$3;6YE9ppU3YGd}KA(gqyw|DDK$JEObXZ;`lv1e0Itdo*3epqu@R*C5c ctIr|v4-3wfvx_D30$t4D>FVdQ&MBb@0ECud5dZ)H literal 0 HcmV?d00001 diff --git a/src/web/CareLeavers.Web/CareLeavers.Web.csproj b/src/web/CareLeavers.Web/CareLeavers.Web.csproj index e39ffb9..906d5ae 100644 --- a/src/web/CareLeavers.Web/CareLeavers.Web.csproj +++ b/src/web/CareLeavers.Web/CareLeavers.Web.csproj @@ -13,6 +13,10 @@ .dockerignore + + true + PreserveNewest + @@ -27,4 +31,15 @@ + + <_ContentIncludedByDefault Remove="wwwroot\assets\images\favicon.ico" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\favicon.svg" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\govuk-crest.svg" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\govuk-icon-180.png" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\govuk-icon-192.png" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\govuk-icon-512.png" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\govuk-icon-mask.svg" /> + <_ContentIncludedByDefault Remove="wwwroot\assets\images\govuk-opengraph-image.png" /> + + diff --git a/src/web/CareLeavers.Web/Gulpfile.js b/src/web/CareLeavers.Web/Gulpfile.js index 1ab022c..313d959 100644 --- a/src/web/CareLeavers.Web/Gulpfile.js +++ b/src/web/CareLeavers.Web/Gulpfile.js @@ -24,11 +24,6 @@ gulp.task('dfe-assets', function() { .pipe(gulp.dest(paths.dist + 'assets')); }); -gulp.task('gov-assets', function() { - return gulp.src('node_modules/dfe-frontend/packages/assets/**/*', {encoding:false}) - .pipe(gulp.dest(paths.dist + 'assets')); -}); - gulp.task("sass", function () { return gulp.src(paths.src + '/scss/**/*.scss') .pipe(sass({ @@ -38,11 +33,17 @@ gulp.task("sass", function () { // .pipe(connect.reload()); }); +gulp.task("images", function() { + return gulp.src(paths.src + '/assets/**/*', {encoding:false}) + .pipe(gulp.dest(paths.dist + 'assets')); +}) + gulp.task("dev", gulp.series( "dfe-js", "dfe-css", "dfe-assets", + "images", "sass" ) ); From 5793a0ab3e398f1fd7d478e36f3fd82d7d4ab711 Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:40:35 +0000 Subject: [PATCH 02/11] Add print button functionality --- .../AssetSrc/scss/metadata.scss | 15 +++++++ .../Views/Contentful/Page.cshtml | 39 +++++++++++++++---- ..._LastUpdated.cshtml => LastUpdated.cshtml} | 14 +++++-- .../Views/Shared/ShareThis.cshtml | 1 + 4 files changed, 58 insertions(+), 11 deletions(-) rename src/web/CareLeavers.Web/Views/Shared/{_LastUpdated.cshtml => LastUpdated.cshtml} (61%) diff --git a/src/web/CareLeavers.Web/AssetSrc/scss/metadata.scss b/src/web/CareLeavers.Web/AssetSrc/scss/metadata.scss index dfc02c3..f970bdd 100644 --- a/src/web/CareLeavers.Web/AssetSrc/scss/metadata.scss +++ b/src/web/CareLeavers.Web/AssetSrc/scss/metadata.scss @@ -201,3 +201,18 @@ color: #000 !important } } + +.gem-c-print-link__button { + display: block; + border: 1px solid #505a5f; + color: #1d70b8; + cursor: pointer; + margin: 0; +} + +.gem-c-print-link__link, .gem-c-print-link__button { + background: url('/assets/icon-print.png') no-repeat 10px 50%; + background-size: 16px 18px; + padding: 10px 10px 10px 36px; + text-decoration: none; +} diff --git a/src/web/CareLeavers.Web/Views/Contentful/Page.cshtml b/src/web/CareLeavers.Web/Views/Contentful/Page.cshtml index 98a9a33..696d910 100644 --- a/src/web/CareLeavers.Web/Views/Contentful/Page.cshtml +++ b/src/web/CareLeavers.Web/Views/Contentful/Page.cshtml @@ -1,10 +1,13 @@ @using System.Globalization @using CareLeavers.Web.Configuration @using CareLeavers.Web.Models.Enums +@using Joonasw.AspNetCore.SecurityHeaders.Csp @using Microsoft.AspNetCore.Mvc.TagHelpers @model CareLeavers.Web.Models.Content.Page @inject IContentfulConfiguration ContentfulConfiguration +@inject ICspNonceService CspNonceService + @{ ViewBag.Title = Model.Title; @@ -45,26 +48,25 @@ } - @if (Model.Width == PageWidth.FullWidth) - { - - } - @if (Model.ShowLastUpdated) {
- + } + @if (Model.Width == PageWidth.TwoThirds) {
+   +
+
@if (Model.SecondaryContent != null) { +
} -
} @@ -83,3 +85,26 @@ } } + +@section Scripts +{ + @if (Model.ShowShareThis) + { + + } +} diff --git a/src/web/CareLeavers.Web/Views/Shared/_LastUpdated.cshtml b/src/web/CareLeavers.Web/Views/Shared/LastUpdated.cshtml similarity index 61% rename from src/web/CareLeavers.Web/Views/Shared/_LastUpdated.cshtml rename to src/web/CareLeavers.Web/Views/Shared/LastUpdated.cshtml index ccaa927..e894a8f 100644 --- a/src/web/CareLeavers.Web/Views/Shared/_LastUpdated.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/LastUpdated.cshtml @@ -1,10 +1,10 @@ @using System.Globalization -@model Contentful.Core.Models.SystemProperties +@model CareLeavers.Web.Models.Content.Page
diff --git a/src/web/CareLeavers.Web/Views/Shared/ShareThis.cshtml b/src/web/CareLeavers.Web/Views/Shared/ShareThis.cshtml index e9a2957..51fcb0e 100644 --- a/src/web/CareLeavers.Web/Views/Shared/ShareThis.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/ShareThis.cshtml @@ -4,6 +4,7 @@ {
+

Share this page

From 7a57fa61f67e739e0e29d23776a496ae3ed4d1ba Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:40:56 +0000 Subject: [PATCH 03/11] Support rendering standard hyperlinks using GDS styling --- .../GDSEntityLinkContentRenderer.cs | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/src/web/CareLeavers.Web/ContentfulRenderers/GDSEntityLinkContentRenderer.cs b/src/web/CareLeavers.Web/ContentfulRenderers/GDSEntityLinkContentRenderer.cs index 7e4c92c..b62a2b4 100644 --- a/src/web/CareLeavers.Web/ContentfulRenderers/GDSEntityLinkContentRenderer.cs +++ b/src/web/CareLeavers.Web/ContentfulRenderers/GDSEntityLinkContentRenderer.cs @@ -18,24 +18,53 @@ public bool SupportsContent(IContent content) }; } + if (content is Hyperlink) + { + return true; + } + return false; } public async Task RenderAsync(IContent content) { - var link = (content as EntryStructure); var tb = new TagBuilder("a"); tb.AddCssClass("govuk-hyperlink"); - switch (link?.Data.Target) + + if (content is Hyperlink) { - case Page p: - tb.Attributes["href"] = p.Slug; + var link = (content as Hyperlink); + tb.Attributes["href"] = link.Data.Uri; + if (link.Content.Any()) + { foreach (var subContent in link.Content) { var renderer = rendererCollection.GetRendererForContent(subContent); tb.InnerHtml.AppendHtml(await renderer.RenderAsync(subContent)); } - break; + } + else + { + tb.InnerHtml.Append(link.Data.Title); + } + } + else + { + + var link = (content as EntryStructure); + + switch (link?.Data.Target) + { + case Page p: + tb.Attributes["href"] = p.Slug; + foreach (var subContent in link.Content) + { + var renderer = rendererCollection.GetRendererForContent(subContent); + tb.InnerHtml.AppendHtml(await renderer.RenderAsync(subContent)); + } + + break; + } } return tb.HasInnerHtml ? tb.ToHtmlString() : string.Empty; From 6c5addffe80a94d8ec9b29632bfa95e1052cf859 Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:41:21 +0000 Subject: [PATCH 04/11] Adding current language to page --- src/web/CareLeavers.Web/Views/Shared/_Layout.cshtml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/web/CareLeavers.Web/Views/Shared/_Layout.cshtml b/src/web/CareLeavers.Web/Views/Shared/_Layout.cshtml index 6ceabdc..ad51151 100644 --- a/src/web/CareLeavers.Web/Views/Shared/_Layout.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/_Layout.cshtml @@ -1,4 +1,5 @@ -@using CareLeavers.Web.Configuration +@using System.Globalization +@using CareLeavers.Web.Configuration @using GovUk.Frontend.AspNetCore @using GovUk.Frontend.AspNetCore.TagHelpers @using Joonasw.AspNetCore.SecurityHeaders.Csp @@ -19,7 +20,7 @@ } - + @if (WebHostEnvironment.IsEnvironment("Test") && !string.IsNullOrEmpty(scriptConfig.GTM)) From 121a3fe1eea9e49c72ab136f24d1cc7979e78411 Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:41:51 +0000 Subject: [PATCH 05/11] Removing position from cards, as no longer used --- src/web/CareLeavers.Web/Models/Content/Card.cs | 1 - src/web/CareLeavers.Web/Views/Shared/Grid.cshtml | 3 --- 2 files changed, 4 deletions(-) diff --git a/src/web/CareLeavers.Web/Models/Content/Card.cs b/src/web/CareLeavers.Web/Models/Content/Card.cs index 9a2de9f..5174554 100644 --- a/src/web/CareLeavers.Web/Models/Content/Card.cs +++ b/src/web/CareLeavers.Web/Models/Content/Card.cs @@ -16,5 +16,4 @@ public class Card : ContentfulContent public List Types { get; set; } = new(); - public int Position { get; set; } = 0; } \ No newline at end of file diff --git a/src/web/CareLeavers.Web/Views/Shared/Grid.cshtml b/src/web/CareLeavers.Web/Views/Shared/Grid.cshtml index 8b7d31b..070ee5a 100644 --- a/src/web/CareLeavers.Web/Views/Shared/Grid.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/Grid.cshtml @@ -25,12 +25,9 @@
@if (Model.Content != null && Model.Content.Any()) { - var position = -1; foreach (var content in Model.Content) { - position++; var card = (Card)content; - card.Position = position; } } From 113bdb5da08495fa25455435e5926e7de71bd466 Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:42:08 +0000 Subject: [PATCH 06/11] Adding govuk-link classes to hyperlinks --- src/web/CareLeavers.Web/Views/Shared/Banner.cshtml | 2 +- .../Views/Shared/Grid/AlternatingImageAndText.cshtml | 4 ++-- src/web/CareLeavers.Web/Views/Shared/Grid/Card.cshtml | 2 +- .../CareLeavers.Web/Views/Shared/Grid/ExternalAgency.cshtml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/web/CareLeavers.Web/Views/Shared/Banner.cshtml b/src/web/CareLeavers.Web/Views/Shared/Banner.cshtml index a1c59df..e1cd191 100644 --- a/src/web/CareLeavers.Web/Views/Shared/Banner.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/Banner.cshtml @@ -24,7 +24,7 @@

@Model?.Title

@Model?.Text

- @Model?.LinkText + @Model?.LinkText

diff --git a/src/web/CareLeavers.Web/Views/Shared/Grid/AlternatingImageAndText.cshtml b/src/web/CareLeavers.Web/Views/Shared/Grid/AlternatingImageAndText.cshtml index 879fc4b..5537175 100644 --- a/src/web/CareLeavers.Web/Views/Shared/Grid/AlternatingImageAndText.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/Grid/AlternatingImageAndText.cshtml @@ -6,7 +6,7 @@
@@ -15,7 +15,7 @@ { @Model.Types.FirstOrDefault() } -

@Model.Title

+

@Model.Title

@Model.Text

diff --git a/src/web/CareLeavers.Web/Views/Shared/Grid/Card.cshtml b/src/web/CareLeavers.Web/Views/Shared/Grid/Card.cshtml index b983b3c..842988e 100644 --- a/src/web/CareLeavers.Web/Views/Shared/Grid/Card.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/Grid/Card.cshtml @@ -5,7 +5,7 @@ }
- +
diff --git a/src/web/CareLeavers.Web/Views/Shared/Grid/ExternalAgency.cshtml b/src/web/CareLeavers.Web/Views/Shared/Grid/ExternalAgency.cshtml index 241d4b6..4721fbe 100644 --- a/src/web/CareLeavers.Web/Views/Shared/Grid/ExternalAgency.cshtml +++ b/src/web/CareLeavers.Web/Views/Shared/Grid/ExternalAgency.cshtml @@ -8,7 +8,7 @@ }
-

@Model.Name (Opens in a new tab)

+

@Model.Name (Opens in a new tab)

@Model.Description

Call: @Model.Call

Opening times: @Model.OpeningTimes

From 2fbb11c144f17cc0604ce851056cf58846e517a3 Mon Sep 17 00:00:00 2001 From: Stuart Foulds-Duncan Date: Thu, 6 Mar 2025 15:45:52 +0000 Subject: [PATCH 07/11] Updated test snapshot --- .../SnapshotTests/Output/ComponentTest.html | 35 ++++++++++++++---- .../Output/HomePageWithSupport.html | 37 +++++++++++++++---- .../SnapshotTests/Output/SimpleAsset.html | 2 + .../SnapshotTests/Output/SimpleParagraph.html | 2 + 4 files changed, 61 insertions(+), 15 deletions(-) diff --git a/src/web/tests/CareLeavers.Integration.Tests/Tests/SnapshotTests/Output/ComponentTest.html b/src/web/tests/CareLeavers.Integration.Tests/Tests/SnapshotTests/Output/ComponentTest.html index 23088a8..ab1c761 100644 --- a/src/web/tests/CareLeavers.Integration.Tests/Tests/SnapshotTests/Output/ComponentTest.html +++ b/src/web/tests/CareLeavers.Integration.Tests/Tests/SnapshotTests/Output/ComponentTest.html @@ -154,7 +154,7 @@

After you leave care

- External Agency Test + External Agency Test (Opens in a new tab)

Test test

@@ -174,16 +174,11 @@

-
-
-
-
-

+
+
+

Share this page

+
+
+
@@ -245,6 +249,23 @@

Support links

+