From fb918d1fcaefc34ab985b79d63ab99d9c673ccee Mon Sep 17 00:00:00 2001 From: Matt Barton Date: Thu, 17 Oct 2024 10:27:08 +0100 Subject: [PATCH] fix: create agency resources as feature flag, page categopry, and navigation --- .../Configuration/Features/Features.cs | 1 + .../Views/Shared/_ErrorLayout.cshtml | 11 +++++++ .../Views/Shared/_Header.cshtml | 4 +++ ...-create-agency-standards-page-category.cjs | 28 ++++++++++++++++++ Contentful-Schema/migrations/manifest.txt | 3 +- .../migrations/migrations.tar.gz | Bin 5178 -> 5357 bytes 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Contentful-Schema/migrations/0011-create-agency-standards-page-category.cjs diff --git a/Childrens-Social-Care-CPD/Configuration/Features/Features.cs b/Childrens-Social-Care-CPD/Configuration/Features/Features.cs index db36f1e5..d7d91512 100644 --- a/Childrens-Social-Care-CPD/Configuration/Features/Features.cs +++ b/Childrens-Social-Care-CPD/Configuration/Features/Features.cs @@ -5,4 +5,5 @@ public static class Features public const string ResourcesAndLearning = "resources-learning"; public const string FeedbackControl = "feedback-control"; public const string EmployerStandards = "employer-standards"; + public const string AgencyResources = "agency-resources"; } diff --git a/Childrens-Social-Care-CPD/Views/Shared/_ErrorLayout.cshtml b/Childrens-Social-Care-CPD/Views/Shared/_ErrorLayout.cshtml index 1e95d26c..c425d009 100644 --- a/Childrens-Social-Care-CPD/Views/Shared/_ErrorLayout.cshtml +++ b/Childrens-Social-Care-CPD/Views/Shared/_ErrorLayout.cshtml @@ -103,6 +103,17 @@ } + @if (featuresConfig.IsEnabled(Features.AgencyResources)) + { +
  • + + Agency Resources + + +
  • + } diff --git a/Childrens-Social-Care-CPD/Views/Shared/_Header.cshtml b/Childrens-Social-Care-CPD/Views/Shared/_Header.cshtml index 21f47a98..d659d206 100644 --- a/Childrens-Social-Care-CPD/Views/Shared/_Header.cshtml +++ b/Childrens-Social-Care-CPD/Views/Shared/_Header.cshtml @@ -66,6 +66,10 @@ { RenderMenuItem("employerStandards", "Employer standards", "employer-standards", category == "Employer standards"); } + if (featuresConfig.IsEnabled(Features.AgencyResources)) + { + RenderMenuItem("agencyResources", "Agency resources", "agency-resources", category == "Agency resources"); + } } diff --git a/Contentful-Schema/migrations/0011-create-agency-standards-page-category.cjs b/Contentful-Schema/migrations/0011-create-agency-standards-page-category.cjs new file mode 100644 index 00000000..c931e9e7 --- /dev/null +++ b/Contentful-Schema/migrations/0011-create-agency-standards-page-category.cjs @@ -0,0 +1,28 @@ +module.exports = async function (migration, { makeRequest }) { + + const contentTypeId = 'content', + categoryFieldId = 'category', + agencyResourcesString = 'Agency resources'; + + const response = await makeRequest({ + method: 'GET', + url: `/content_types?sys.id[in]=${contentTypeId}` + }); + + var update = false; + const validations = response.items[0].fields + .filter(field => field.id == categoryFieldId)[0] + .validations.map(rule => { + if (rule.in && !rule.in.includes(agencyResourcesString)) { + rule.in.push(agencyResourcesString); + update = true; + } + return rule; + }); + + if (update) { + migration + .editContentType(contentTypeId) + .editField(categoryFieldId).validations(validations); + } + }; \ No newline at end of file diff --git a/Contentful-Schema/migrations/manifest.txt b/Contentful-Schema/migrations/manifest.txt index 84c9cef8..279c875f 100644 --- a/Contentful-Schema/migrations/manifest.txt +++ b/Contentful-Schema/migrations/manifest.txt @@ -7,4 +7,5 @@ 0007-add-header-field-to-navigation-menu.cjs 0008-details-component.cjs 0009-asset-download-component.cjs -0010-breadcrumbs.cjs \ No newline at end of file +0010-breadcrumbs.cjs +0011-create-agency-standards-page-category.cjs \ No newline at end of file diff --git a/Contentful-Schema/migrations/migrations.tar.gz b/Contentful-Schema/migrations/migrations.tar.gz index 33648297c8e8e69c6a6cc1118d406581145a119c..843908a38b9d781ebfb7b56c67ba62979f70bc4b 100644 GIT binary patch literal 5357 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