From d3c9c7673bc6e1b8318507a3a015360198c14fbe Mon Sep 17 00:00:00 2001
From: bkapustik <82807109+bkapustik@users.noreply.github.com>
Date: Mon, 29 Apr 2024 15:44:27 +0200
Subject: [PATCH 01/11] fix(build): remove json files from nuget package
content folders
---
Directory.build.targets | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/Directory.build.targets b/Directory.build.targets
index e6d4f30..2fa5741 100644
--- a/Directory.build.targets
+++ b/Directory.build.targets
@@ -8,6 +8,12 @@
-
+
+
+
+
+
+
+
From 0f8d191e9ce06acd6a4d15577d64f329ea24e724 Mon Sep 17 00:00:00 2001
From: bkapustik <82807109+bkapustik@users.noreply.github.com>
Date: Mon, 29 Apr 2024 16:20:07 +0200
Subject: [PATCH 02/11] fix(build): remove packages.lock.json from nuget
content files
---
Directory.build.targets | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/Directory.build.targets b/Directory.build.targets
index 2fa5741..6f2311c 100644
--- a/Directory.build.targets
+++ b/Directory.build.targets
@@ -10,10 +10,10 @@
-
-
-
-
-
-
+
+
+
+
+
+
From 49eb5ba3a2bc919298e254a73da975d2d6bf4494 Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 09:10:39 -0400
Subject: [PATCH 03/11] fix(TagManager): delete generated ktc-tagmanager.js
---
src/Kentico.Xperience.TagManager/wwwroot/js/ktc-tagmanager.js | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 src/Kentico.Xperience.TagManager/wwwroot/js/ktc-tagmanager.js
diff --git a/src/Kentico.Xperience.TagManager/wwwroot/js/ktc-tagmanager.js b/src/Kentico.Xperience.TagManager/wwwroot/js/ktc-tagmanager.js
deleted file mode 100644
index 5ea5fc2..0000000
--- a/src/Kentico.Xperience.TagManager/wwwroot/js/ktc-tagmanager.js
+++ /dev/null
@@ -1 +0,0 @@
-var e,t;const n="HeadTop",o="HeadBottom",a="BodyTop",c="BodyBottom";null!==(t=(e=window).xperience)&&void 0!==t||(e.xperience={}),window.xperience.tagManager={updateCodeSnippets:async function(){const e=[...document.querySelectorAll("[data-snippet-id]")],t=new Set(e.map((e=>parseInt(e.dataset.snippetId)))),d=await async function(){const e=await fetch("".concat("/kentico.tagmanager","/GetConsentedTags"),{method:"get"});if(!e.ok)throw new Error(e.statusText);const t=await e.json();return t}();function r(e,t){const n=document.createElement("template");n.innerHTML=e;for(let e of[...n.content.children])if("SCRIPT"===e.nodeName){t(i(e))}else t(e)}function i(e){const t=document.createElement("script");for(let n of[...e.attributes])t.setAttribute(n.name,n.value);return t.text=e.text,t}!function(){const e=document.createElement("template");d.forEach((t=>e.append(t.code)));var i=d.filter((e=>!t.has(e.id)));if(i)for(let e of i){let t;switch(e.location){case n:t=e=>document.head.prepend(e);break;case o:t=e=>document.head.append(e);break;case a:t=e=>document.body.prepend(e);break;case c:t=e=>document.body.append(e)}r(e.code,(e=>t(e)))}}(),function(){for(let t of e.filter((e=>!d.some((t=>t.id===parseInt(e.dataset.snippetId))))))t.remove()}()}};
\ No newline at end of file
From 564752483bf45b27494b63da04dc27a0aca5bf3f Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 09:24:04 -0400
Subject: [PATCH 04/11] build(git): ignore generated files
---
.gitignore | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 08dafc3..a602a56 100644
--- a/.gitignore
+++ b/.gitignore
@@ -135,8 +135,9 @@ segments_2i
# Generated files
**/Client/dist/*
+**/nuget-local/*.*pkg
-./src/Kentico.Xperience.TagManager/wwwroot/Scripts/ktc-tagmanager.js
+**/src/Kentico.Xperience.TagManager/wwwroot/*
**/CMSModules/WebFarm/*
From fc4d1b0ffab94b13c102bd7ee4bab175de5198bb Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 13:30:08 -0400
Subject: [PATCH 05/11] chore(TagManager): dotnet format
---
.../Admin/CodeSnippetConfigurationModel.cs | 1 +
.../Providers/ChannelSelectorWhereConditionProvider.cs | 1 +
.../Admin/TagManagerAdminModule.cs | 1 +
.../Admin/TagManagerModuleInstaller.cs | 9 ++++-----
.../Admin/UIPages/ChannelCodeSnippetSectionPage.cs | 1 +
.../Admin/UIPages/CodeSnippetCreatePage.cs | 2 ++
.../Admin/UIPages/CodeSnippetEditPage.cs | 2 ++
.../Admin/UIPages/CodeSnippetListingPage.cs | 3 +++
.../Admin/UIPages/TagManagerApplicationPage.cs | 1 +
.../Admin/WebsiteChannelPermissionService.cs | 1 +
.../Rendering/CodeSnippetTagHelperComponent.cs | 1 +
.../Rendering/DefaultChannelCodeSnippetsService.cs | 2 ++
.../Rendering/TagManagerController.cs | 2 ++
src/Kentico.Xperience.TagManager/TagManagerModule.cs | 2 ++
.../TagManagerServiceCollectionExtensions.cs | 1 +
15 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/Kentico.Xperience.TagManager/Admin/CodeSnippetConfigurationModel.cs b/src/Kentico.Xperience.TagManager/Admin/CodeSnippetConfigurationModel.cs
index c8e734b..22223eb 100644
--- a/src/Kentico.Xperience.TagManager/Admin/CodeSnippetConfigurationModel.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/CodeSnippetConfigurationModel.cs
@@ -1,5 +1,6 @@
using CMS.ContentEngine;
using CMS.DataProtection;
+
using Kentico.Xperience.Admin.Base.FormAnnotations;
using Kentico.Xperience.Admin.Base.Forms;
using Kentico.Xperience.TagManager.Admin.Components;
diff --git a/src/Kentico.Xperience.TagManager/Admin/Providers/ChannelSelectorWhereConditionProvider.cs b/src/Kentico.Xperience.TagManager/Admin/Providers/ChannelSelectorWhereConditionProvider.cs
index ab2a973..fe7c633 100644
--- a/src/Kentico.Xperience.TagManager/Admin/Providers/ChannelSelectorWhereConditionProvider.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/Providers/ChannelSelectorWhereConditionProvider.cs
@@ -1,6 +1,7 @@
using CMS.ContentEngine;
using CMS.DataEngine;
using CMS.Membership;
+
using Kentico.Xperience.Admin.Base.Authentication;
using Kentico.Xperience.Admin.Base.FormAnnotations;
diff --git a/src/Kentico.Xperience.TagManager/Admin/TagManagerAdminModule.cs b/src/Kentico.Xperience.TagManager/Admin/TagManagerAdminModule.cs
index cfd57cb..fc39eea 100644
--- a/src/Kentico.Xperience.TagManager/Admin/TagManagerAdminModule.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/TagManagerAdminModule.cs
@@ -1,5 +1,6 @@
using CMS;
using CMS.Core;
+
using Kentico.Xperience.Admin.Base;
using Kentico.Xperience.AzureSearch.Admin;
diff --git a/src/Kentico.Xperience.TagManager/Admin/TagManagerModuleInstaller.cs b/src/Kentico.Xperience.TagManager/Admin/TagManagerModuleInstaller.cs
index 797fbd3..69ac8f5 100644
--- a/src/Kentico.Xperience.TagManager/Admin/TagManagerModuleInstaller.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/TagManagerModuleInstaller.cs
@@ -3,7 +3,9 @@
using CMS.DataProtection;
using CMS.FormEngine;
using CMS.Modules;
+
using Kentico.Xperience.Admin.Base.Forms;
+
using static Kentico.Xperience.TagManager.Constants.TagManagerConstants;
namespace Kentico.Xperience.TagManager.Admin;
@@ -13,11 +15,9 @@ internal interface ITagManagerModuleInstaller
void Install();
}
-internal class TagManagerModuleInstaller : ITagManagerModuleInstaller
+internal class TagManagerModuleInstaller(IInfoProvider resourceInfoProvider) : ITagManagerModuleInstaller
{
- private readonly IResourceInfoProvider resourceInfoProvider;
-
- public TagManagerModuleInstaller(IResourceInfoProvider resourceInfoProvider) => this.resourceInfoProvider = resourceInfoProvider;
+ private readonly IInfoProvider resourceInfoProvider = resourceInfoProvider;
public void Install()
{
@@ -28,7 +28,6 @@ public void Install()
private ResourceInfo InstallModule()
{
var resourceInfo = resourceInfoProvider.Get(ResourceConstants.ResourceName)
- // Handle v1.0.0 resource name
?? resourceInfoProvider.Get("Kentico.Xperience.TagManager")
?? new ResourceInfo();
diff --git a/src/Kentico.Xperience.TagManager/Admin/UIPages/ChannelCodeSnippetSectionPage.cs b/src/Kentico.Xperience.TagManager/Admin/UIPages/ChannelCodeSnippetSectionPage.cs
index eff6946..46aeeba 100644
--- a/src/Kentico.Xperience.TagManager/Admin/UIPages/ChannelCodeSnippetSectionPage.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/UIPages/ChannelCodeSnippetSectionPage.cs
@@ -1,4 +1,5 @@
using CMS.DataEngine;
+
using Kentico.Xperience.Admin.Base;
using Kentico.Xperience.TagManager.Admin;
diff --git a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetCreatePage.cs b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetCreatePage.cs
index 057ebcc..e904f31 100644
--- a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetCreatePage.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetCreatePage.cs
@@ -1,7 +1,9 @@
using CMS.Membership;
+
using Kentico.Xperience.Admin.Base;
using Kentico.Xperience.Admin.Base.Forms;
using Kentico.Xperience.TagManager.Admin;
+
using IFormItemCollectionProvider = Kentico.Xperience.Admin.Base.Forms.Internal.IFormItemCollectionProvider;
[assembly: UIPage(
diff --git a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs
index 61a564a..c7eb08a 100644
--- a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs
@@ -1,7 +1,9 @@
using CMS.Membership;
+
using Kentico.Xperience.Admin.Base;
using Kentico.Xperience.Admin.Base.Forms;
using Kentico.Xperience.TagManager.Admin;
+
using IFormItemCollectionProvider = Kentico.Xperience.Admin.Base.Forms.Internal.IFormItemCollectionProvider;
[assembly: UIPage(
diff --git a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetListingPage.cs b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetListingPage.cs
index 58e3ba5..201e5d2 100644
--- a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetListingPage.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetListingPage.cs
@@ -3,6 +3,7 @@
using CMS.DataEngine;
using CMS.DataProtection;
using CMS.Membership;
+
using Kentico.Xperience.Admin.Base;
using Kentico.Xperience.Admin.Base.Authentication;
using Kentico.Xperience.TagManager.Admin;
@@ -49,6 +50,8 @@ public CodeSnippetListingPage(
public override async Task ConfigurePage()
{
+ await base.ConfigurePage();
+
var allConsents = await consentInfoProvider.Get().GetEnumerableTypedResultAsync();
var allChannels = await channelProvider.Get().GetEnumerableTypedResultAsync();
diff --git a/src/Kentico.Xperience.TagManager/Admin/UIPages/TagManagerApplicationPage.cs b/src/Kentico.Xperience.TagManager/Admin/UIPages/TagManagerApplicationPage.cs
index a4f0ace..87fd8a6 100644
--- a/src/Kentico.Xperience.TagManager/Admin/UIPages/TagManagerApplicationPage.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/UIPages/TagManagerApplicationPage.cs
@@ -1,4 +1,5 @@
using CMS.Membership;
+
using Kentico.Xperience.Admin.Base;
using Kentico.Xperience.Admin.Base.UIPages;
using Kentico.Xperience.TagManager.Admin;
diff --git a/src/Kentico.Xperience.TagManager/Admin/WebsiteChannelPermissionService.cs b/src/Kentico.Xperience.TagManager/Admin/WebsiteChannelPermissionService.cs
index 2f2bf04..20b9ef4 100644
--- a/src/Kentico.Xperience.TagManager/Admin/WebsiteChannelPermissionService.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/WebsiteChannelPermissionService.cs
@@ -1,5 +1,6 @@
using CMS.Membership;
using CMS.Websites;
+
using Kentico.Membership;
using Kentico.Xperience.Admin.Base.Authentication;
using Kentico.Xperience.TagManager.Constants;
diff --git a/src/Kentico.Xperience.TagManager/Rendering/CodeSnippetTagHelperComponent.cs b/src/Kentico.Xperience.TagManager/Rendering/CodeSnippetTagHelperComponent.cs
index 1bb0527..6eea5db 100644
--- a/src/Kentico.Xperience.TagManager/Rendering/CodeSnippetTagHelperComponent.cs
+++ b/src/Kentico.Xperience.TagManager/Rendering/CodeSnippetTagHelperComponent.cs
@@ -1,4 +1,5 @@
using CMS.ContactManagement;
+
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.Routing;
diff --git a/src/Kentico.Xperience.TagManager/Rendering/DefaultChannelCodeSnippetsService.cs b/src/Kentico.Xperience.TagManager/Rendering/DefaultChannelCodeSnippetsService.cs
index b8644e4..3ff7e31 100644
--- a/src/Kentico.Xperience.TagManager/Rendering/DefaultChannelCodeSnippetsService.cs
+++ b/src/Kentico.Xperience.TagManager/Rendering/DefaultChannelCodeSnippetsService.cs
@@ -1,4 +1,5 @@
using System.Text.RegularExpressions;
+
using CMS.Base;
using CMS.ContactManagement;
using CMS.ContentEngine;
@@ -6,6 +7,7 @@
using CMS.Helpers;
using CMS.Websites;
using CMS.Websites.Routing;
+
using Kentico.Xperience.TagManager.Admin;
using Kentico.Xperience.TagManager.Snippets;
diff --git a/src/Kentico.Xperience.TagManager/Rendering/TagManagerController.cs b/src/Kentico.Xperience.TagManager/Rendering/TagManagerController.cs
index d68b1bf..90aab63 100644
--- a/src/Kentico.Xperience.TagManager/Rendering/TagManagerController.cs
+++ b/src/Kentico.Xperience.TagManager/Rendering/TagManagerController.cs
@@ -1,6 +1,8 @@
using System.Text.Json;
using System.Text.Json.Serialization;
+
using CMS.ContactManagement;
+
using Microsoft.AspNetCore.Mvc;
namespace Kentico.Xperience.TagManager.Rendering;
diff --git a/src/Kentico.Xperience.TagManager/TagManagerModule.cs b/src/Kentico.Xperience.TagManager/TagManagerModule.cs
index 1089843..1ddcdf4 100644
--- a/src/Kentico.Xperience.TagManager/TagManagerModule.cs
+++ b/src/Kentico.Xperience.TagManager/TagManagerModule.cs
@@ -2,8 +2,10 @@
using CMS.Base;
using CMS.Core;
using CMS.DataEngine;
+
using Kentico.Xperience.TagManager;
using Kentico.Xperience.TagManager.Admin;
+
using Microsoft.Extensions.DependencyInjection;
[assembly: RegisterModule(type: typeof(TagManagerModule))]
diff --git a/src/Kentico.Xperience.TagManager/TagManagerServiceCollectionExtensions.cs b/src/Kentico.Xperience.TagManager/TagManagerServiceCollectionExtensions.cs
index ad51678..1738884 100644
--- a/src/Kentico.Xperience.TagManager/TagManagerServiceCollectionExtensions.cs
+++ b/src/Kentico.Xperience.TagManager/TagManagerServiceCollectionExtensions.cs
@@ -1,6 +1,7 @@
using Kentico.Xperience.TagManager.Admin;
using Kentico.Xperience.TagManager.Rendering;
using Kentico.Xperience.TagManager.Snippets;
+
using Microsoft.AspNetCore.Razor.TagHelpers;
using Microsoft.Extensions.Configuration;
From f1bbe546e5e38c281ecf40c5b6b4c55ae0ae44cc Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 13:30:28 -0400
Subject: [PATCH 06/11] build(vscode): fix task paths
---
.vscode/tasks.json | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 29361a3..d422309 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -89,36 +89,36 @@
{
"type": "npm",
"script": "install",
- "path": "src/Kentico.Xperience.TagManager/Frontend",
+ "path": "src/Kentico.Xperience.TagManager/Admin/Frontend",
"group": "build",
"problemMatcher": [],
- "label": "npm: install - src/Kentico.Xperience.TagManager/Frontend",
+ "label": "npm: install - src/Kentico.Xperience.TagManager/Admin/Frontend",
"detail": "install dependencies from package"
},
{
"type": "npm",
"script": "build",
- "path": "src/Kentico.Xperience.TagManager/Frontend",
+ "path": "src/Kentico.Xperience.TagManager/Admin/Frontend",
"group": "build",
"problemMatcher": [],
- "label": "npm: build - src/Kentico.Xperience.TagManager/Frontend",
+ "label": "npm: build - src/Kentico.Xperience.TagManager/Admin/Frontend",
"detail": "webpack --mode=production"
},
{
"type": "npm",
"script": "build:dev",
- "path": "src/Kentico.Xperience.TagManager/Frontend",
+ "path": "src/Kentico.Xperience.TagManager/Admin/Frontend",
"group": "build",
"problemMatcher": [],
- "label": "npm: build:dev - src/Kentico.Xperience.TagManager/Frontend",
+ "label": "npm: build:dev - src/Kentico.Xperience.TagManager/Admin/Frontend",
"detail": "webpack --mode=development"
},
{
"type": "npm",
"script": "start",
- "path": "src/Kentico.Xperience.TagManager/Frontend",
+ "path": "src/Kentico.Xperience.TagManager/Admin/Frontend",
"problemMatcher": [],
- "label": "npm: start - src/Kentico.Xperience.TagManager/Frontend",
+ "label": "npm: start - src/Kentico.Xperience.TagManager/Admin/Frontend",
"detail": "webpack serve --mode development"
},
{
From 3dc9f1b46efefab6326e263fa06a7cac5651782a Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 13:31:29 -0400
Subject: [PATCH 07/11] docs(README): format
---
README.md | 73 +++++++++++++++++++++++++++----------------------------
1 file changed, 36 insertions(+), 37 deletions(-)
diff --git a/README.md b/README.md
index 491f4d6..bb75fea 100644
--- a/README.md
+++ b/README.md
@@ -5,32 +5,31 @@
## Description
Tag Manager integration enabling marketers to include prebuilt and custom tags into a website channel. By default we provide support for the following tags:
+
- Google Tag Manager
- - Google Tag Manager is the standard for implementing front-end services, marketing and tracking tags to a website. This integration makes it easy to include Google Tag Manager into your website to leverage andvanced tag setup.
- - [Integration information and installation guide](./docs/Google-Tag-Manager.md)
- - [Google Tag Manager homepage](https://tagmanager.google.com/)
+ - Google Tag Manager is the standard for implementing front-end services, marketing and tracking tags to a website. This integration makes it easy to include Google Tag Manager into your website to leverage andvanced tag setup.
+ - [Integration information and installation guide](./docs/Google-Tag-Manager.md)
+ - [Google Tag Manager homepage](https://tagmanager.google.com/)
- Google Analytics 4
- - Google Analytics 4 lets you track users on your website. The default installation enables pageview tracking and basic events.
- - [Integration information and installation guide](./docs/Google-Analytics-4.md)
- - [Google Analytics homepage](https://tagmanager.google.com/)
+ - Google Analytics 4 lets you track users on your website. The default installation enables pageview tracking and basic events.
+ - [Integration information and installation guide](./docs/Google-Analytics-4.md)
+ - [Google Analytics homepage](https://tagmanager.google.com/)
- Microsoft Clarity recordings and heatmaps
- - Microsoft Clarity lets you record user sessions, generate heatmaps, scrollmaps and further analyze your website users. The service is completely free.
- - [Integration information and installation guide](./docs/Microsoft-Clarity.md)
- - [Microsoft Clarity homepage](https://clarity.microsoft.com/)
+ - Microsoft Clarity lets you record user sessions, generate heatmaps, scrollmaps and further analyze your website users. The service is completely free.
+ - [Integration information and installation guide](./docs/Microsoft-Clarity.md)
+ - [Microsoft Clarity homepage](https://clarity.microsoft.com/)
- VWO A/B Testing
- - VWO lets you optimize digital experiences and maximize conversions using their suite of tools. This integration is focusing on front-end A/B testing capability. It installs VWO SmartCode into your wesite
- - [Integration information and installation guide](./docs/VWO.md)
- - Visit [VWO homepage](https://vwo.com/) to learn more about the product
+ - VWO lets you optimize digital experiences and maximize conversions using their suite of tools. This integration is focusing on front-end A/B testing capability. It installs VWO SmartCode into your wesite
+ - [Integration information and installation guide](./docs/VWO.md)
+ - Visit [VWO homepage](https://vwo.com/) to learn more about the product
- Intercom Messenger
- - Intercom offers a suite of tools to promising they are "The only AI customer service solution you need". The focus of this integration is their Messenger allowing you to communicate with customers live through your website.
- - [Integration information and installation guide](./docs/Intercom.md)
- - [Intercom homepage](https://www.intercom.com)
+ - Intercom offers a suite of tools to promising they are "The only AI customer service solution you need". The focus of this integration is their Messenger allowing you to communicate with customers live through your website.
+ - [Integration information and installation guide](./docs/Intercom.md)
+ - [Intercom homepage](https://www.intercom.com)
- Custom HTML Snippet
- - Whenever you need to copy and paste a simple code snippet form another service into your website.
+ - Whenever you need to copy and paste a simple code snippet form another service into your website.
- Custom Tag Module
- - When the site admin wants to enable a new pre-defined code snippet to be used by marketers.
-
-
+ - When the site admin wants to enable a new pre-defined code snippet to be used by marketers.
## Screenshots
@@ -84,24 +83,24 @@ dotnet add package Kentico.Xperience.TagManager
3. In the administration go to UI application 'Tag Management'.
4. Create a new record:
- * Select one of the channels.
- * Select whether you want to use Custom Code Snippet or other Snippet type
- * We have prepared some of the most often used types:
- * For
- * 'Google Tag Manager',
- * 'Google Analytics 4',
- * 'VWO',
- * 'Intercom',
- * 'Microsoft Clarity',
- * or Your own type
- * select one of these options from the Snippet type dropdown
- * For 'Custom code snippet' fill in entire code you want to render.
- * Select a location:
- * Top of the head - inserts a script immediately after the opening head tag.
- * Bottom of the head - inserts a script right before the closing head tag.
- * Top of the body - inserts a script immediately after the opening body tag.
- * Bottom of the body - inserts a script right before the closing body tag.
- * Fill in a consent if required.
+ - Select one of the channels.
+ - Select whether you want to use Custom Code Snippet or other Snippet type
+ - We have prepared some of the most often used types:
+ - For
+ - 'Google Tag Manager',
+ - 'Google Analytics 4',
+ - 'VWO',
+ - 'Intercom',
+ - 'Microsoft Clarity',
+ - or Your own type
+ - select one of these options from the Snippet type dropdown
+ - For 'Custom code snippet' fill in entire code you want to render.
+ - Select a location:
+ - Top of the head - inserts a script immediately after the opening head tag.
+ - Bottom of the head - inserts a script right before the closing head tag.
+ - Top of the body - inserts a script immediately after the opening body tag.
+ - Bottom of the body - inserts a script right before the closing body tag.
+ - Fill in a consent if required.
5. During rendering the livesite page, the Tag manager module automatically adds custom code snippets with accepted consents to defined locations.
6. To dynamically update the rendered code snippets, for example if a consent is accepted, call javascript function `window.xperience.tagManager.updateCodeSnippets()`.
From 92b1c7927d97d02f1493bbf199622cc7fdb9324b Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 13:49:43 -0400
Subject: [PATCH 08/11] build(sln): re-add nuget.config for local testing,
update NuGet package verisons
---
Directory.Build.props | 5 +-
Directory.Packages.props | 8 ++--
examples/DancingGoat/packages.lock.json | 6 +--
nuget.config | 6 +++
.../packages.lock.json | 6 +--
.../packages.lock.json | 48 ++++++++-----------
6 files changed, 41 insertions(+), 38 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 6c4b949..7e3a898 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -23,7 +23,7 @@
net6.0
- latest
+ latest
enable
enable
nullable
@@ -45,6 +45,9 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+ **/examples/**
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
index cf73c7c..f7d776b 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -13,12 +13,12 @@
-
-
+
+
-
-
+
+
\ No newline at end of file
diff --git a/examples/DancingGoat/packages.lock.json b/examples/DancingGoat/packages.lock.json
index be89a9c..24598c5 100644
--- a/examples/DancingGoat/packages.lock.json
+++ b/examples/DancingGoat/packages.lock.json
@@ -55,9 +55,9 @@
},
"SonarAnalyzer.CSharp": {
"type": "Direct",
- "requested": "[9.21.0.86780, )",
- "resolved": "9.21.0.86780",
- "contentHash": "m+0RKlTMGDLKH8zDwGqWtvVVbY7leuDWNjcGDqEtvI12lR0fQtmPV8eooMyaA76QxUxRnbIMmilwqba1lXMvJQ=="
+ "requested": "[9.25.0.90414, )",
+ "resolved": "9.25.0.90414",
+ "contentHash": "T5zhLMv1uC98eDXZtLNOcS+fIlRJZ8VNlWLaXVlgmI7wPuYwTPDpfaKXB0UfTMFAvnMCAsG2kFpdRszUY3kh5g=="
},
"System.Linq.Async": {
"type": "Direct",
diff --git a/nuget.config b/nuget.config
index 0989fd0..c66498c 100644
--- a/nuget.config
+++ b/nuget.config
@@ -3,10 +3,16 @@
+
+
+
+
+
+
diff --git a/src/Kentico.Xperience.TagManager/packages.lock.json b/src/Kentico.Xperience.TagManager/packages.lock.json
index b54714b..ff89916 100644
--- a/src/Kentico.Xperience.TagManager/packages.lock.json
+++ b/src/Kentico.Xperience.TagManager/packages.lock.json
@@ -53,9 +53,9 @@
},
"SonarAnalyzer.CSharp": {
"type": "Direct",
- "requested": "[9.21.0.86780, )",
- "resolved": "9.21.0.86780",
- "contentHash": "m+0RKlTMGDLKH8zDwGqWtvVVbY7leuDWNjcGDqEtvI12lR0fQtmPV8eooMyaA76QxUxRnbIMmilwqba1lXMvJQ=="
+ "requested": "[9.25.0.90414, )",
+ "resolved": "9.25.0.90414",
+ "contentHash": "T5zhLMv1uC98eDXZtLNOcS+fIlRJZ8VNlWLaXVlgmI7wPuYwTPDpfaKXB0UfTMFAvnMCAsG2kFpdRszUY3kh5g=="
},
"AngleSharp": {
"type": "Transitive",
diff --git a/tests/Kentico.Xperience.TagManager.Tests/packages.lock.json b/tests/Kentico.Xperience.TagManager.Tests/packages.lock.json
index da37b6a..2c1a2ef 100644
--- a/tests/Kentico.Xperience.TagManager.Tests/packages.lock.json
+++ b/tests/Kentico.Xperience.TagManager.Tests/packages.lock.json
@@ -4,18 +4,18 @@
"net6.0": {
"coverlet.collector": {
"type": "Direct",
- "requested": "[6.0.1, )",
- "resolved": "6.0.1",
- "contentHash": "q/8r0muHlF7TbhMUTBAk43KteZYG2ECV96pbzkToQwgjp3BvbS766svUcO6va+cohWOkigeBWmHs0Vu5vQnESA=="
+ "requested": "[6.0.2, )",
+ "resolved": "6.0.2",
+ "contentHash": "bJShQ6uWRTQ100ZeyiMqcFlhP7WJ+bCuabUs885dJiBEzMsJMSFr7BOyeCw4rgvQokteGi5rKQTlkhfQPUXg2A=="
},
"Microsoft.NET.Test.Sdk": {
"type": "Direct",
- "requested": "[17.8.0, )",
- "resolved": "17.8.0",
- "contentHash": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==",
+ "requested": "[17.9.0, )",
+ "resolved": "17.9.0",
+ "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==",
"dependencies": {
- "Microsoft.CodeCoverage": "17.8.0",
- "Microsoft.TestPlatform.TestHost": "17.8.0"
+ "Microsoft.CodeCoverage": "17.9.0",
+ "Microsoft.TestPlatform.TestHost": "17.9.0"
}
},
"NUnit": {
@@ -26,9 +26,9 @@
},
"NUnit.Analyzers": {
"type": "Direct",
- "requested": "[4.0.1, )",
- "resolved": "4.0.1",
- "contentHash": "zhTn0POj5eEA4bi+zbaeIPT6F5HlgM0XH7sAWkNcUihzsl7Pn1J6eLGj/E/tPQiR6spFuh12u1tpWB6+xA0giQ=="
+ "requested": "[4.2.0, )",
+ "resolved": "4.2.0",
+ "contentHash": "4fJojPkzdoa4nB2+p6U+fITvPnVvwWSnsmiJ/Dl30xqiL3oxNbYvfeSLVd91hOmEjoUqSwN3Z7j1aFedjqWbUA=="
},
"NUnit3TestAdapter": {
"type": "Direct",
@@ -38,9 +38,9 @@
},
"SonarAnalyzer.CSharp": {
"type": "Direct",
- "requested": "[9.21.0.86780, )",
- "resolved": "9.21.0.86780",
- "contentHash": "m+0RKlTMGDLKH8zDwGqWtvVVbY7leuDWNjcGDqEtvI12lR0fQtmPV8eooMyaA76QxUxRnbIMmilwqba1lXMvJQ=="
+ "requested": "[9.25.0.90414, )",
+ "resolved": "9.25.0.90414",
+ "contentHash": "T5zhLMv1uC98eDXZtLNOcS+fIlRJZ8VNlWLaXVlgmI7wPuYwTPDpfaKXB0UfTMFAvnMCAsG2kFpdRszUY3kh5g=="
},
"AngleSharp": {
"type": "Transitive",
@@ -419,8 +419,8 @@
},
"Microsoft.CodeCoverage": {
"type": "Transitive",
- "resolved": "17.8.0",
- "contentHash": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew=="
+ "resolved": "17.9.0",
+ "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA=="
},
"Microsoft.Data.SqlClient": {
"type": "Transitive",
@@ -707,19 +707,18 @@
},
"Microsoft.TestPlatform.ObjectModel": {
"type": "Transitive",
- "resolved": "17.8.0",
- "contentHash": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==",
+ "resolved": "17.9.0",
+ "contentHash": "1ilw/8vgmjLyKU+2SKXKXaOqpYFJCQfGqGz+x0cosl981VzjrY74Sv6qAJv+neZMZ9ZMxF3ArN6kotaQ4uvEBw==",
"dependencies": {
- "NuGet.Frameworks": "6.5.0",
"System.Reflection.Metadata": "1.6.0"
}
},
"Microsoft.TestPlatform.TestHost": {
"type": "Transitive",
- "resolved": "17.8.0",
- "contentHash": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==",
+ "resolved": "17.9.0",
+ "contentHash": "Spmg7Wx49Ya3SxBjyeAR+nQpjMTKZwTwpZ7KyeOTIqI/WHNPnBU4HUvl5kuHPQAwGWqMy4FGZja1HvEwvoaDiA==",
"dependencies": {
- "Microsoft.TestPlatform.ObjectModel": "17.8.0",
+ "Microsoft.TestPlatform.ObjectModel": "17.9.0",
"Newtonsoft.Json": "13.0.1"
}
},
@@ -747,11 +746,6 @@
"resolved": "13.0.3",
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
- "NuGet.Frameworks": {
- "type": "Transitive",
- "resolved": "6.5.0",
- "contentHash": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg=="
- },
"System.Buffers": {
"type": "Transitive",
"resolved": "4.5.1",
From 16f4b19f8bca85c9b3fb0897c629adddb631e12d Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 13:50:02 -0400
Subject: [PATCH 09/11] refactor(sln): resolve .net analyzer warnings
---
.../SampleDataGeneratorApplication.cs | 8 ++++----
.../DancingGoatSamplesModule.cs | 20 +++++++++----------
.../SampleContactInfoIdentityCollector.cs | 4 ++--
.../SampleContactDataCollector.cs | 16 +++++++--------
.../SampleContactDataCollectorCore.cs | 16 +++++++--------
.../SampleContactPersonalDataEraser.cs | 12 +++++------
.../FormConsentContactGroupGenerator.cs | 5 +++--
.../DataProtection/FormConsentGenerator.cs | 4 ++--
.../Admin/UIPages/CodeSnippetEditPage.cs | 2 +-
9 files changed, 44 insertions(+), 43 deletions(-)
diff --git a/examples/DancingGoat/AdminComponents/Apps/SampleDataGenerator/SampleDataGeneratorApplication.cs b/examples/DancingGoat/AdminComponents/Apps/SampleDataGenerator/SampleDataGeneratorApplication.cs
index f4435ee..1e0251e 100644
--- a/examples/DancingGoat/AdminComponents/Apps/SampleDataGenerator/SampleDataGeneratorApplication.cs
+++ b/examples/DancingGoat/AdminComponents/Apps/SampleDataGenerator/SampleDataGeneratorApplication.cs
@@ -41,8 +41,8 @@ public class SampleDataGeneratorApplication : OverviewPageBase
private readonly IFormBuilderConfigurationSerializer formBuilderConfigurationSerializer;
private readonly IEventLogService eventLogService;
private readonly IInfoProvider consentInfoProvider;
- private readonly IBizFormInfoProvider bizFormInfoProvider;
- private readonly IContactGroupInfoProvider contactGroupInfoProvider;
+ private readonly IInfoProvider bizFormInfoProvider;
+ private readonly IInfoProvider contactGroupInfoProvider;
private readonly ISettingsKeyInfoProvider settingsKeyInfoProvider;
private readonly IInfoProvider websiteChannelInfoProvider;
@@ -61,8 +61,8 @@ public SampleDataGeneratorApplication(
IFormBuilderConfigurationSerializer formBuilderConfigurationSerializer,
IEventLogService eventLogService,
IInfoProvider consentInfoProvider,
- IBizFormInfoProvider bizFormInfoProvider,
- IContactGroupInfoProvider contactGroupInfoProvider,
+ IInfoProvider bizFormInfoProvider,
+ IInfoProvider contactGroupInfoProvider,
ISettingsKeyInfoProvider settingsKeyInfoProvider,
IInfoProvider websiteChannelInfoProvider)
{
diff --git a/examples/DancingGoat/DataProtectionSamples/DancingGoatSamplesModule.cs b/examples/DancingGoat/DataProtectionSamples/DancingGoatSamplesModule.cs
index 70c8181..7a3a7d4 100644
--- a/examples/DancingGoat/DataProtectionSamples/DancingGoatSamplesModule.cs
+++ b/examples/DancingGoat/DataProtectionSamples/DancingGoatSamplesModule.cs
@@ -30,16 +30,16 @@ internal class DancingGoatSamplesModule : Module
{
private const string DATA_PROTECTION_SAMPLES_ENABLED_SETTINGS_KEY_NAME = "DataProtectionSamplesEnabled";
- private IContactInfoProvider contactInfoProvider;
+ private IInfoProvider contactInfoProvider;
private IMemberInfoProvider memberInfoProvider;
private IInfoProvider consentAgreementInfoProvider;
- private IBizFormInfoProvider bizFormInfoProvider;
- private IAccountContactInfoProvider accountContactInfoProvider;
+ private IInfoProvider bizFormInfoProvider;
+ private IInfoProvider accountContactInfoProvider;
private ISettingsKeyInfoProvider settingsKeyInfoProvider;
- private IActivityInfoProvider activityInfoProvider;
+ private IInfoProvider activityInfoProvider;
private ICountryInfoProvider countryInfoProvider;
private IStateInfoProvider stateInfoProvider;
- private IAccountInfoProvider accountInfoProvider;
+ private IInfoProvider accountInfoProvider;
///
@@ -57,16 +57,16 @@ protected override void OnInit()
{
base.OnInit();
- contactInfoProvider = Service.Resolve();
+ contactInfoProvider = Service.Resolve>();
memberInfoProvider = Service.Resolve();
consentAgreementInfoProvider = Service.Resolve>();
- bizFormInfoProvider = Service.Resolve();
- accountContactInfoProvider = Service.Resolve();
+ bizFormInfoProvider = Service.Resolve>();
+ accountContactInfoProvider = Service.Resolve>();
settingsKeyInfoProvider = Service.Resolve();
- activityInfoProvider = Service.Resolve();
+ activityInfoProvider = Service.Resolve>();
countryInfoProvider = Service.Resolve();
stateInfoProvider = Service.Resolve();
- accountInfoProvider = Service.Resolve();
+ accountInfoProvider = Service.Resolve>();
InitializeSamples();
}
diff --git a/examples/DancingGoat/DataProtectionSamples/IdentityCollectors/SampleContactInfoIdentityCollector.cs b/examples/DancingGoat/DataProtectionSamples/IdentityCollectors/SampleContactInfoIdentityCollector.cs
index b546b27..40ed5be 100644
--- a/examples/DancingGoat/DataProtectionSamples/IdentityCollectors/SampleContactInfoIdentityCollector.cs
+++ b/examples/DancingGoat/DataProtectionSamples/IdentityCollectors/SampleContactInfoIdentityCollector.cs
@@ -12,14 +12,14 @@ namespace Samples.DancingGoat
///
internal class SampleContactInfoIdentityCollector : IIdentityCollector
{
- private readonly IContactInfoProvider contactInfoProvider;
+ private readonly IInfoProvider contactInfoProvider;
///
/// Initializes a new instance of the class.
///
/// Contact info provider.
- public SampleContactInfoIdentityCollector(IContactInfoProvider contactInfoProvider)
+ public SampleContactInfoIdentityCollector(IInfoProvider contactInfoProvider)
{
this.contactInfoProvider = contactInfoProvider;
}
diff --git a/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollector.cs b/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollector.cs
index 11612bb..57bb7bc 100644
--- a/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollector.cs
+++ b/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollector.cs
@@ -14,13 +14,13 @@ namespace Samples.DancingGoat
///
internal class SampleContactDataCollector : IPersonalDataCollector
{
- private readonly IActivityInfoProvider activityInfoProvider;
+ private readonly IInfoProvider activityInfoProvider;
private readonly ICountryInfoProvider countryInfoProvider;
private readonly IStateInfoProvider stateInfoProvider;
private readonly IInfoProvider consentAgreementInfoProvider;
- private readonly IAccountContactInfoProvider accountContactInfoProvider;
- private readonly IAccountInfoProvider accountInfoProvider;
- private readonly IBizFormInfoProvider bizFormInfoProvider;
+ private readonly IInfoProvider accountContactInfoProvider;
+ private readonly IInfoProvider accountInfoProvider;
+ private readonly IInfoProvider bizFormInfoProvider;
///
@@ -34,13 +34,13 @@ internal class SampleContactDataCollector : IPersonalDataCollector
/// Account info provider.
/// BizForm info provider.
public SampleContactDataCollector(
- IActivityInfoProvider activityInfoProvider,
+ IInfoProvider activityInfoProvider,
ICountryInfoProvider countryInfoProvider,
IStateInfoProvider stateInfoProvider,
IInfoProvider consentAgreementInfoProvider,
- IAccountContactInfoProvider accountContactInfoProvider,
- IAccountInfoProvider accountInfoProvider,
- IBizFormInfoProvider bizFormInfoProvider)
+ IInfoProvider accountContactInfoProvider,
+ IInfoProvider accountInfoProvider,
+ IInfoProvider bizFormInfoProvider)
{
this.activityInfoProvider = activityInfoProvider;
this.countryInfoProvider = countryInfoProvider;
diff --git a/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollectorCore.cs b/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollectorCore.cs
index 0cf1b6b..200639a 100644
--- a/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollectorCore.cs
+++ b/examples/DancingGoat/DataProtectionSamples/PersonalDataCollectors/SampleContactDataCollectorCore.cs
@@ -20,13 +20,13 @@ namespace Samples.DancingGoat
internal class SampleContactDataCollectorCore
{
private readonly IPersonalDataWriter writer;
- private readonly IActivityInfoProvider activityInfoProvider;
+ private readonly IInfoProvider activityInfoProvider;
private readonly ICountryInfoProvider countryInfoProvider;
private readonly IStateInfoProvider stateInfoProvider;
private readonly IInfoProvider consentAgreementInfoProvider;
- private readonly IAccountContactInfoProvider accountContactInfoProvider;
- private readonly IAccountInfoProvider accountInfoProvider;
- private readonly IBizFormInfoProvider bizFormInfoProvider;
+ private readonly IInfoProvider accountContactInfoProvider;
+ private readonly IInfoProvider accountInfoProvider;
+ private readonly IInfoProvider bizFormInfoProvider;
// Lists store Tuples of database column names and their corresponding display names.
private readonly List contactInfoColumns = new List {
@@ -325,13 +325,13 @@ private object TransformConsentAction(string columnName, object columnValue)
/// BizForm info provider.
public SampleContactDataCollectorCore(
IPersonalDataWriter writer,
- IActivityInfoProvider activityInfoProvider,
+ IInfoProvider activityInfoProvider,
ICountryInfoProvider countryInfoProvider,
IStateInfoProvider stateInfoProvider,
IInfoProvider consentAgreementInfoProvider,
- IAccountContactInfoProvider accountContactInfoProvider,
- IAccountInfoProvider accountInfoProvider,
- IBizFormInfoProvider bizFormInfoProvider)
+ IInfoProvider accountContactInfoProvider,
+ IInfoProvider accountInfoProvider,
+ IInfoProvider bizFormInfoProvider)
{
this.writer = writer;
this.activityInfoProvider = activityInfoProvider;
diff --git a/examples/DancingGoat/DataProtectionSamples/PersonalDataErasers/SampleContactPersonalDataEraser.cs b/examples/DancingGoat/DataProtectionSamples/PersonalDataErasers/SampleContactPersonalDataEraser.cs
index ffcdb7b..ab67294 100644
--- a/examples/DancingGoat/DataProtectionSamples/PersonalDataErasers/SampleContactPersonalDataEraser.cs
+++ b/examples/DancingGoat/DataProtectionSamples/PersonalDataErasers/SampleContactPersonalDataEraser.cs
@@ -36,9 +36,9 @@ internal class SampleContactPersonalDataEraser : IPersonalDataEraser
};
private readonly IInfoProvider consentAgreementInfoProvider;
- private readonly IBizFormInfoProvider bizFormInfoProvider;
- private readonly IAccountContactInfoProvider accountContactInfoProvider;
- private readonly IContactInfoProvider contactInfoProvider;
+ private readonly IInfoProvider bizFormInfoProvider;
+ private readonly IInfoProvider accountContactInfoProvider;
+ private readonly IInfoProvider contactInfoProvider;
///
@@ -50,9 +50,9 @@ internal class SampleContactPersonalDataEraser : IPersonalDataEraser
/// Contact info provider.
public SampleContactPersonalDataEraser(
IInfoProvider consentAgreementInfoProvider,
- IBizFormInfoProvider bizFormInfoProvider,
- IAccountContactInfoProvider accountContactInfoProvider,
- IContactInfoProvider contactInfoProvider)
+ IInfoProvider bizFormInfoProvider,
+ IInfoProvider accountContactInfoProvider,
+ IInfoProvider contactInfoProvider)
{
this.consentAgreementInfoProvider = consentAgreementInfoProvider;
this.bizFormInfoProvider = bizFormInfoProvider;
diff --git a/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentContactGroupGenerator.cs b/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentContactGroupGenerator.cs
index f2ec24a..0150305 100644
--- a/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentContactGroupGenerator.cs
+++ b/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentContactGroupGenerator.cs
@@ -1,4 +1,5 @@
using CMS.ContactManagement;
+using CMS.DataEngine;
using CMS.MacroEngine;
using CMS.Membership;
@@ -9,14 +10,14 @@ public class FormContactGroupGenerator
private const string CONTACT_GROUP_DISPLAY_NAME = "Coffee samples applicants";
private const string CONTACT_GROUP_NAME = "CoffeeSamplesApplicants";
- private readonly IContactGroupInfoProvider contactGroupInfoProvider;
+ private readonly IInfoProvider contactGroupInfoProvider;
///
/// Initializes a new instance of the class.
///
/// Contact group info provider.
- public FormContactGroupGenerator(IContactGroupInfoProvider contactGroupInfoProvider)
+ public FormContactGroupGenerator(IInfoProvider contactGroupInfoProvider)
{
this.contactGroupInfoProvider = contactGroupInfoProvider;
}
diff --git a/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentGenerator.cs b/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentGenerator.cs
index 6d29a93..305093a 100644
--- a/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentGenerator.cs
+++ b/examples/DancingGoat/Helpers/Generators/DataProtection/FormConsentGenerator.cs
@@ -29,7 +29,7 @@ public class FormConsentGenerator
private readonly IFormBuilderConfigurationSerializer formBuilderConfigurationSerializer;
private readonly IInfoProvider consentInfoProvider;
- private readonly IBizFormInfoProvider bizFormInfoProvider;
+ private readonly IInfoProvider bizFormInfoProvider;
///
@@ -41,7 +41,7 @@ public class FormConsentGenerator
public FormConsentGenerator(
IFormBuilderConfigurationSerializer formBuilderConfigurationSerializer,
IInfoProvider consentInfoProvider,
- IBizFormInfoProvider bizFormInfoProvider)
+ IInfoProvider bizFormInfoProvider)
{
this.formBuilderConfigurationSerializer = formBuilderConfigurationSerializer;
this.consentInfoProvider = consentInfoProvider;
diff --git a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs
index c7eb08a..deaa7d2 100644
--- a/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs
+++ b/src/Kentico.Xperience.TagManager/Admin/UIPages/CodeSnippetEditPage.cs
@@ -94,7 +94,7 @@ protected override async Task ProcessFormData(
CodeSnippetConfigurationModel model,
ICollection formItems)
{
- var info = channelCodeSnippetInfoProvider.Get(ObjectID);
+ var info = await channelCodeSnippetInfoProvider.GetAsync(ObjectID);
model.MapToChannelCodeSnippetInfo(info);
From 05ba75025e5ba28892a5c24be66b6ca4b5a1f0e5 Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 13:50:52 -0400
Subject: [PATCH 10/11] build(sln): remove unused SonarAnalyzer settings
---
Directory.Build.props | 3 ---
1 file changed, 3 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 7e3a898..5c64a08 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -45,9 +45,6 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
- **/examples/**
-
From 10b12279b7a65d00f13d9a2891b8256dff2fadba Mon Sep 17 00:00:00 2001
From: "Sean G. Wright"
Date: Tue, 7 May 2024 16:02:12 -0400
Subject: [PATCH 11/11] docs(Contributing-Setup): local NuGet package testing
---
docs/Contributing-Setup.md | 6 ++++--
nuget.config | 4 +++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/docs/Contributing-Setup.md b/docs/Contributing-Setup.md
index c11a2a8..ba830db 100644
--- a/docs/Contributing-Setup.md
+++ b/docs/Contributing-Setup.md
@@ -82,6 +82,8 @@ To run the Sample app Admin customization in development mode, add the following
> In the future, we will be able to use floating versions to automatically select the highest (local) package version
+1. Update the `nuget.config` by uncommenting the `` entry in ``. This will tell NuGet to resolve the current library from the local nuget package folder instead of the class library.
+
1. Build the solution with the `LOCAL_NUGET=true` property
> You can use the VS Code `.NET: build (Solution) - LOCAL_NUGET` task
@@ -92,9 +94,9 @@ To run the Sample app Admin customization in development mode, add the following
> You can use the `.NET Launch (DancingGoat) - LOCAL_NUGET` lauch setting in VS Code
-1. Undo the `Directory.Packages.props` version number change to ensure it is not committed to the repository
+1. Undo the `Directory.Packages.props` version number and `nuget.config` changes to ensure they are not committed to the repository
-1. Perform a normal build to reset any modified `packages.lock.json` files
+1. Perform a normal build to reset any modified `packages.lock.json` files, which were modified when switching from a class library to a NuGet reference
### Create a PR
diff --git a/nuget.config b/nuget.config
index c66498c..3e7a6d6 100644
--- a/nuget.config
+++ b/nuget.config
@@ -11,7 +11,9 @@
-
+
+
+