From 71c1e5dbc160f3d63c5d2a0868c6a3f28e42c2d4 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 01:10:05 +0800 Subject: [PATCH 01/26] add target --- .../OrchardCore.Menu/Models/HtmlMenuItemPart.cs | 6 ++++++ .../OrchardCore.Menu/Models/LinkMenuItemPart.cs | 5 +++++ .../OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml | 5 +++++ .../OrchardCore.Menu/Views/MenuItemLink.cshtml | 2 +- src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs | 5 +++++ .../OrchardCore.Navigation.Core/NavigationItemBuilder.cs | 6 ++++++ .../OrchardCore.Navigation.Core/NavigationManager.cs | 2 ++ 7 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs index 3065e60b50b..8320c958d03 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs @@ -9,9 +9,15 @@ public class HtmlMenuItemPart : ContentPart /// public string Url { get; set; } + /// + /// The target of the link to create. + /// + public string Target { get; set; } + /// /// The raw html to display for this link. /// public string Html { get; set; } + } } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs index f5325a0dbfb..1b999fec7a0 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs @@ -12,5 +12,10 @@ public class LinkMenuItemPart : ContentPart /// The url of the link to create. /// public string Url { get; set; } + + /// + /// The target of the link to create. + /// + public string Target { get; set; } } } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml index b46b647cf0c..a26f84572f9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml @@ -16,6 +16,11 @@ url = Url.Content(linkMenuItemPart.Url); } + if (!string.IsNullOrEmpty(linkMenuItemPart.Target)) + { + tag.Attributes["target"] = linkMenuItemPart.Target; + } + tag.Attributes["href"] = url; tag.InnerHtml.Append(contentItem.DisplayText); } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml index b6ad29baba5..bf7812f5ee0 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml @@ -1 +1 @@ -@Model.Text +@Model.Text diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs b/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs index d5d28575d32..3619a038a40 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs @@ -93,5 +93,10 @@ public MenuItem() /// The css classes to render with the menu item. /// public List Classes { get; } + + /// + /// The html target of the menu item. + /// + public string Target { get; set; } } } diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs index 22b47ca9ce2..e414a8cb80f 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs @@ -45,6 +45,12 @@ public NavigationItemBuilder Url(string url) _item.Url = url; return this; } + public NavigationItemBuilder Target(string target) + { + _item.Target = target; + return this; + } + public NavigationItemBuilder Culture(string culture) { diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs index a810d5767cb..d1ebefa9d7e 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs @@ -110,6 +110,7 @@ private static void Merge(List items) source.RouteValues = cursor.RouteValues; source.Text = cursor.Text; source.Url = cursor.Url; + source.Target = cursor.Target; source.Permissions.Clear(); source.Permissions.AddRange(cursor.Permissions); @@ -133,6 +134,7 @@ private static void Merge(List items) source.RouteValues = cursor.RouteValues; source.Text = cursor.Text; source.Url = cursor.Url; + source.Target = cursor.Target; source.Permissions.Clear(); source.Permissions.AddRange(cursor.Permissions); From 318ad74e4233b1e6ac7afcfb72a33b436bcce2f4 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 14:11:41 +0800 Subject: [PATCH 02/26] add target property to Menu #15541 --- src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj | 2 +- .../AdminNodes/LinkAdminNodeDriver.cs | 4 +++- .../AdminNodes/LinkAdminNodeNavigationBuilder.cs | 1 + .../AdminNodes/LinkAdminNodeViewModel.cs | 1 + .../Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml | 6 ++++++ .../Drivers/HtmlMenuItemPartDisplayDriver.cs | 3 ++- .../Drivers/LinkMenuItemPartDisplayDriver.cs | 3 ++- .../GraphQL/HtmlMenuItemQueryObjectType.cs | 1 + .../OrchardCore.Menu/Models/HtmlMenuItemPart.cs | 6 ++++++ .../OrchardCore.Menu/Models/LinkMenuItemPart.cs | 5 +++++ .../ViewModels/HtmlMenuItemPartEditViewModel.cs | 2 ++ .../ViewModels/LinkMenuItemPartEditViewModel.cs | 1 + .../OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml | 7 +++++++ .../OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml | 7 +++++++ .../Views/MenuItemLink-HtmlMenuItem.cshtml | 6 ++++++ .../Views/MenuItemLink-LinkMenuItem.cshtml | 5 +++++ .../OrchardCore.Menu/Views/MenuItemLink.cshtml | 2 +- .../OrchardCore.Navigation/Views/NavigationItemLink.cshtml | 2 +- .../TheAdmin/Views/NavigationItemLink-admin.cshtml | 5 +++++ .../TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- .../TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid | 2 +- .../TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- .../TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid | 2 +- .../TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml | 6 ++++++ src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs | 5 +++++ .../OrchardCore.Navigation.Core/NavigationHelper.cs | 1 + .../OrchardCore.Navigation.Core/NavigationItemBuilder.cs | 6 ++++++ .../OrchardCore.Navigation.Core/NavigationManager.cs | 2 ++ 28 files changed, 87 insertions(+), 10 deletions(-) diff --git a/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj b/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj index a5ac7fee774..0b7c8a66510 100644 --- a/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj +++ b/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj @@ -10,7 +10,7 @@ true 612,618 InProcess - false + true enable enable diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeDriver.cs b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeDriver.cs index 8b46ca2bf06..d6aa587b671 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeDriver.cs +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeDriver.cs @@ -33,6 +33,7 @@ public override IDisplayResult Edit(LinkAdminNode treeNode) model.LinkText = treeNode.LinkText; model.LinkUrl = treeNode.LinkUrl; model.IconClass = treeNode.IconClass; + model.Target = treeNode.Target; var permissions = await _adminMenuPermissionService.GetPermissionsAsync(); @@ -56,10 +57,11 @@ public override IDisplayResult Edit(LinkAdminNode treeNode) public override async Task UpdateAsync(LinkAdminNode treeNode, IUpdateModel updater) { var model = new LinkAdminNodeViewModel(); - if (await updater.TryUpdateModelAsync(model, Prefix, x => x.LinkUrl, x => x.LinkText, x => x.IconClass, x => x.SelectedPermissionNames)) + if (await updater.TryUpdateModelAsync(model, Prefix, x => x.LinkUrl, x => x.Target, x => x.LinkText, x => x.IconClass, x => x.SelectedPermissionNames)) { treeNode.LinkText = model.LinkText; treeNode.LinkUrl = model.LinkUrl; + treeNode.Target = model.Target; treeNode.IconClass = model.IconClass; var selectedPermissions = (model.SelectedPermissionNames == null ? [] : model.SelectedPermissionNames.Split(',', StringSplitOptions.RemoveEmptyEntries)); diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeNavigationBuilder.cs b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeNavigationBuilder.cs index 8bd05d0460f..b8f8d3035e6 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeNavigationBuilder.cs +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeNavigationBuilder.cs @@ -59,6 +59,7 @@ public Task BuildNavigationAsync(MenuItem menuItem, NavigationBuilder builder, I // Add the actual link. itemBuilder.Url(nodeLinkUrl); + itemBuilder.Target(node.Target); itemBuilder.Priority(node.Priority); itemBuilder.Position(node.Position); diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs index 21564732a86..0579f64de23 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs @@ -12,6 +12,7 @@ public class LinkAdminNodeViewModel [Required] public string LinkUrl { get; set; } + public string Target { get; set; } public string IconClass { get; set; } public string SelectedPermissionNames { get; set; } diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml index 1b12979744b..ff72f1b59a2 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml @@ -24,6 +24,12 @@ @T["The url of the link. A link will be shown only if it or one of their children have a url. The url will be relative to the root of the admin site"] +
+ + + @T["The target attribute of the A tag, see more:"] target +
+
diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs index c10348387e4..2151e4cb10f 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs @@ -67,6 +67,7 @@ public override IDisplayResult Edit(HtmlMenuItemPart part) { model.Name = part.ContentItem.DisplayText; model.Url = part.Url; + model.Target = part.Target; model.Html = part.Html; model.MenuItemPart = part; }); @@ -81,7 +82,7 @@ public override async Task UpdateAsync(HtmlMenuItemPart part, IU part.ContentItem.DisplayText = model.Name; part.Html = settings.SanitizeHtml ? _htmlSanitizerService.Sanitize(model.Html) : model.Html; part.Url = model.Url; - + part.Target = model.Target; var urlToValidate = part.Url; if (!string.IsNullOrEmpty(urlToValidate)) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs index 1fee2baa094..03153959055 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs @@ -59,6 +59,7 @@ public override IDisplayResult Edit(LinkMenuItemPart part) { model.Name = part.ContentItem.DisplayText; model.Url = part.Url; + model.Target = part.Target; model.MenuItemPart = part; }); } @@ -70,8 +71,8 @@ public override async Task UpdateAsync(LinkMenuItemPart part, IU if (await updater.TryUpdateModelAsync(model, Prefix)) { part.Url = model.Url; + part.Target = model.Target; part.ContentItem.DisplayText = model.Name; - // This code can be removed in a later release. #pragma warning disable 0618 part.Name = model.Name; diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/GraphQL/HtmlMenuItemQueryObjectType.cs b/src/OrchardCore.Modules/OrchardCore.Menu/GraphQL/HtmlMenuItemQueryObjectType.cs index 84f06d541ac..bd57ae30466 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/GraphQL/HtmlMenuItemQueryObjectType.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/GraphQL/HtmlMenuItemQueryObjectType.cs @@ -10,6 +10,7 @@ public HtmlMenuItemQueryObjectType() Name = "HtmlMenuItemPart"; Field(x => x.Url, nullable: true); + Field(x => x.Target, nullable: true); Field(x => x.Html, nullable: true); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs index 3065e60b50b..8320c958d03 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs @@ -9,9 +9,15 @@ public class HtmlMenuItemPart : ContentPart /// public string Url { get; set; } + /// + /// The target of the link to create. + /// + public string Target { get; set; } + /// /// The raw html to display for this link. /// public string Html { get; set; } + } } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs index f5325a0dbfb..1b999fec7a0 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Models/LinkMenuItemPart.cs @@ -12,5 +12,10 @@ public class LinkMenuItemPart : ContentPart /// The url of the link to create. /// public string Url { get; set; } + + /// + /// The target of the link to create. + /// + public string Target { get; set; } } } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/HtmlMenuItemPartEditViewModel.cs b/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/HtmlMenuItemPartEditViewModel.cs index 37f22c337b7..3a24a2c42f3 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/HtmlMenuItemPartEditViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/HtmlMenuItemPartEditViewModel.cs @@ -9,6 +9,8 @@ public class HtmlMenuItemPartEditViewModel public string Url { get; set; } + public string Target { get; set; } + public string Html { get; set; } [BindNever] diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs b/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs index 1848b526e77..a7db24b2a41 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs @@ -8,6 +8,7 @@ public class LinkMenuItemPartEditViewModel public string Name { get; set; } public string Url { get; set; } + public string Target { get; set; } [BindNever] public LinkMenuItemPart MenuItemPart { get; set; } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml index 500faad52db..ea6b6dafab1 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml @@ -15,6 +15,13 @@
+
+ +
+ +
+
+
diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml index 473a1c549bd..c100014b0da 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml @@ -14,3 +14,10 @@
+ +
+ +
+ +
+
diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-HtmlMenuItem.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-HtmlMenuItem.cshtml index 0efbecc2b4b..17ff3aa36b7 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-HtmlMenuItem.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-HtmlMenuItem.cshtml @@ -17,6 +17,12 @@ } tag.Attributes["href"] = url; + + if (!string.IsNullOrEmpty(htmlMenuItemPart.Target)) + { + tag.Attributes["target"] = htmlMenuItemPart.Target; + } + tag.InnerHtml.AppendHtml(Html.Raw(htmlMenuItemPart.Html)); } @tag diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml index b46b647cf0c..a26f84572f9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml @@ -16,6 +16,11 @@ url = Url.Content(linkMenuItemPart.Url); } + if (!string.IsNullOrEmpty(linkMenuItemPart.Target)) + { + tag.Attributes["target"] = linkMenuItemPart.Target; + } + tag.Attributes["href"] = url; tag.InnerHtml.Append(contentItem.DisplayText); } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml index b6ad29baba5..3a3f9ebc13b 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml @@ -1 +1 @@ -@Model.Text +@Model.Text diff --git a/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml index 7eb3e808daa..b63777801bb 100644 --- a/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml @@ -5,4 +5,4 @@ Model.Metadata.Alternates.Add("NavigationItemText_Id__" + Model.Id); } -@await DisplayAsync(Model) +@await DisplayAsync(Model) diff --git a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml index a7e8ae2bb81..c74e7635b1c 100644 --- a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml +++ b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml @@ -14,6 +14,11 @@ tag.Attributes["href"] = "#m" + Model.GetHashCode().ToString(); } + if (!string.IsNullOrEmpty(Model.Target)) + { + tag.Attributes["target"] = Model.Target; + } + var prefix = "icon-class-"; // Extract classes that are not icons from Model.Classes diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid index b9f0c3672f4..a2279cc0c93 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -1,2 +1,2 @@ {% assign link = Model.ContentItem.Content.HtmlMenuItemPart %} -{{ link.Html | raw }} \ No newline at end of file +{{ link.Html | raw }} \ No newline at end of file diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid index f1ed48b2c57..bcd1b556210 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid @@ -1,5 +1,5 @@ {% assign link = Model.ContentItem.Content.LinkMenuItemPart %} - diff --git a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid index 296c2e1b9cb..4c6d9913de8 100644 --- a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -3,5 +3,5 @@ {% if Model.HasItems %} {{ link.Html | raw }} {% else %} - {{ link.Html | raw }} + {{ link.Html | raw }} {% endif %} \ No newline at end of file diff --git a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid index c52a9fc051a..8b405b2d807 100644 --- a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid +++ b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid @@ -3,5 +3,5 @@ {% if Model.HasItems %} {{ Model.ContentItem.DisplayText }} {% else %} - {{ Model.ContentItem.DisplayText }} + {{ Model.ContentItem.DisplayText }} {% endif %} diff --git a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml index 89499bd7631..c9db308828c 100644 --- a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml +++ b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml @@ -18,6 +18,12 @@ } tag.Attributes["href"] = url; + + if (!string.IsNullOrEmpty(htmlMenuItemPart.Target)) + { + tag.Attributes["target"] = htmlMenuItemPart.Target; + } + tag.InnerHtml.AppendHtml(Html.Raw(htmlMenuItemPart.Html)); if (Model.Level == 0 && Model.HasItems) diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs b/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs index d5d28575d32..28e1f39d783 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/MenuItem.cs @@ -36,6 +36,11 @@ public MenuItem() /// public string Href { get; set; } + /// + /// The html target of the menu item. + /// + public string Target { get; set; } + /// /// The optional url the menu item should link to. /// diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationHelper.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationHelper.cs index 598341f1726..b28f1e468c7 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationHelper.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationHelper.cs @@ -68,6 +68,7 @@ private static async Task BuildMenuItemShapeAsync(dynamic shapeFactory, var menuItemShape = (await shapeFactory.NavigationItem()) .Text(menuItem.Text) .Href(menuItem.Href) + .Target(menuItem.Target) .Url(menuItem.Url) .LinkToFirstChild(menuItem.LinkToFirstChild) .RouteValues(menuItem.RouteValues) diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs index 22b47ca9ce2..e414a8cb80f 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs @@ -45,6 +45,12 @@ public NavigationItemBuilder Url(string url) _item.Url = url; return this; } + public NavigationItemBuilder Target(string target) + { + _item.Target = target; + return this; + } + public NavigationItemBuilder Culture(string culture) { diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs index a810d5767cb..d1ebefa9d7e 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationManager.cs @@ -110,6 +110,7 @@ private static void Merge(List items) source.RouteValues = cursor.RouteValues; source.Text = cursor.Text; source.Url = cursor.Url; + source.Target = cursor.Target; source.Permissions.Clear(); source.Permissions.AddRange(cursor.Permissions); @@ -133,6 +134,7 @@ private static void Merge(List items) source.RouteValues = cursor.RouteValues; source.Text = cursor.Text; source.Url = cursor.Url; + source.Target = cursor.Target; source.Permissions.Clear(); source.Permissions.AddRange(cursor.Permissions); From 3dfac160e9213f696614e029039682f7812d01ed Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 14:18:56 +0800 Subject: [PATCH 03/26] add field description --- .../OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml index c100014b0da..52a3b1d02be 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml @@ -19,5 +19,6 @@
+ @T["The target attribute of the A tag, see more:"] target
From c6355eb28e766c3e3edcf143c8cd065d9322f8b0 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 14:31:39 +0800 Subject: [PATCH 04/26] update relase note --- .../OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml | 1 + src/docs/releases/1.9.0.md | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml index ea6b6dafab1..f67bae8f147 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml @@ -19,6 +19,7 @@
+ @T["The target attribute of the A tag, see more:"] target
diff --git a/src/docs/releases/1.9.0.md b/src/docs/releases/1.9.0.md index 9a96c2c91e8..5d3e167b126 100644 --- a/src/docs/releases/1.9.0.md +++ b/src/docs/releases/1.9.0.md @@ -123,6 +123,11 @@ The `OrchardCore.Email` module has undergone a refactoring process with no break - If you were using the `OrchardCore_Email` configuration key to set up the SMTP provider for all tenants, please update the configuration key to `OrchardCore_Email_Smtp`. The `OrchardCore_Email` key continues to work but will be deprecated in a future release. - A new email provider was added to allow you to send email using Azure Communication Services Email. Click [here](../reference/modules/Email.Azure/README.md) to read more about the ACS module. +### Menu + +`Menus` and `AdminMenus` now support specifying the target property. + + ### Admin Menu The admin menu has undergone performance enhancements, and new helpers have been added. When incorporating `INavigationProvider` in your project, you can now utilize `NavigationHelper.IsAdminMenu(name)` instead of the previous approach using `string.Equals(name, "admin", StringComparison.OrdinalIgnoreCase)`. Moreover, when passing route values to an action, it is advised to store them in a constant variable. An illustrative example is provided below. From e58edad2fae4760307d8f6bf174bd6f0aaf7ed65 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 15:45:00 +0800 Subject: [PATCH 05/26] restore changes --- src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj b/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj index 0b7c8a66510..a5ac7fee774 100644 --- a/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj +++ b/src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj @@ -10,7 +10,7 @@ true 612,618 InProcess - true + false enable enable From 7a89f86a0c0a96d8c18cc97164df44298cf610f8 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 15:47:35 +0800 Subject: [PATCH 06/26] clear code --- .../OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs | 1 + .../OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs | 1 + .../OrchardCore.Menu/Models/HtmlMenuItemPart.cs | 1 - .../OrchardCore.Navigation.Core/NavigationItemBuilder.cs | 1 - src/docs/releases/1.9.0.md | 1 - 5 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs index 2151e4cb10f..f20f70bf8cd 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/HtmlMenuItemPartDisplayDriver.cs @@ -83,6 +83,7 @@ public override async Task UpdateAsync(HtmlMenuItemPart part, IU part.Html = settings.SanitizeHtml ? _htmlSanitizerService.Sanitize(model.Html) : model.Html; part.Url = model.Url; part.Target = model.Target; + var urlToValidate = part.Url; if (!string.IsNullOrEmpty(urlToValidate)) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs index 03153959055..f620c853c8b 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Drivers/LinkMenuItemPartDisplayDriver.cs @@ -73,6 +73,7 @@ public override async Task UpdateAsync(LinkMenuItemPart part, IU part.Url = model.Url; part.Target = model.Target; part.ContentItem.DisplayText = model.Name; + // This code can be removed in a later release. #pragma warning disable 0618 part.Name = model.Name; diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs index 8320c958d03..cabd9772546 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Models/HtmlMenuItemPart.cs @@ -18,6 +18,5 @@ public class HtmlMenuItemPart : ContentPart /// The raw html to display for this link. /// public string Html { get; set; } - } } diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs index e414a8cb80f..74ea5ea634b 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs @@ -51,7 +51,6 @@ public NavigationItemBuilder Target(string target) return this; } - public NavigationItemBuilder Culture(string culture) { _item.Culture = culture; diff --git a/src/docs/releases/1.9.0.md b/src/docs/releases/1.9.0.md index 5d3e167b126..3fa1663493e 100644 --- a/src/docs/releases/1.9.0.md +++ b/src/docs/releases/1.9.0.md @@ -127,7 +127,6 @@ The `OrchardCore.Email` module has undergone a refactoring process with no break `Menus` and `AdminMenus` now support specifying the target property. - ### Admin Menu The admin menu has undergone performance enhancements, and new helpers have been added. When incorporating `INavigationProvider` in your project, you can now utilize `NavigationHelper.IsAdminMenu(name)` instead of the previous approach using `string.Equals(name, "admin", StringComparison.OrdinalIgnoreCase)`. Moreover, when passing route values to an action, it is advised to store them in a constant variable. An illustrative example is provided below. From 25ce9264cf373861a96334ea2c7d8dc8d39aa9e4 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Mon, 1 Apr 2024 15:50:11 +0800 Subject: [PATCH 07/26] format code --- .../OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs | 1 + .../OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs index 0579f64de23..b2335ee58e7 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/AdminNodes/LinkAdminNodeViewModel.cs @@ -13,6 +13,7 @@ public class LinkAdminNodeViewModel public string LinkUrl { get; set; } public string Target { get; set; } + public string IconClass { get; set; } public string SelectedPermissionNames { get; set; } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs b/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs index a7db24b2a41..301701c5b93 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/ViewModels/LinkMenuItemPartEditViewModel.cs @@ -8,6 +8,7 @@ public class LinkMenuItemPartEditViewModel public string Name { get; set; } public string Url { get; set; } + public string Target { get; set; } [BindNever] From dd5bfe4fb0d07e249537d343e2582ea6941045a0 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 16:52:30 +0800 Subject: [PATCH 08/26] set target as autocomplete --- .../Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml | 8 +++++++- .../OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml | 8 +++++++- .../OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml index ff72f1b59a2..47c905241b0 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml @@ -26,7 +26,13 @@
- + + + + + + + @T["The target attribute of the A tag, see more:"] target
diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml index f67bae8f147..d2a0cca053a 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml @@ -18,7 +18,13 @@
- + + + + + + + @T["The target attribute of the A tag, see more:"] target
diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml index 52a3b1d02be..1a95f6f2145 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml @@ -18,7 +18,13 @@
- + + + + + + + @T["The target attribute of the A tag, see more:"] target
From d7ecf0fad7823089840267a9eb1e3becdd03279f Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:14:18 +0800 Subject: [PATCH 09/26] update doc --- src/docs/releases/2.0.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/docs/releases/2.0.0.md b/src/docs/releases/2.0.0.md index 4906bd3f954..a73ede5d61f 100644 --- a/src/docs/releases/2.0.0.md +++ b/src/docs/releases/2.0.0.md @@ -285,6 +285,10 @@ The `OrchardCore.Email` module has undergone a refactoring process with no break - If you were using the `OrchardCore_Email` configuration key to set up the SMTP provider for all tenants, please update the configuration key to `OrchardCore_Email_Smtp`. The `OrchardCore_Email` key continues to work but will be deprecated in a future release. - A new email provider was added to allow you to send email using Azure Communication Services Email. Click [here](../reference/modules/Email.Azure/README.md) to read more about the ACS module. +### Menu + +`Menus` and `AdminMenus` now support specifying the target property. + ### Admin Menu The admin menu has undergone performance enhancements, and new helpers have been added. When incorporating `INavigationProvider` in your project, you can now utilize `NavigationHelper.IsAdminMenu(name)` instead of the previous approach using `string.Equals(name, "admin", StringComparison.OrdinalIgnoreCase)`. Moreover, when passing route values to an action, it is advised to store them in a constant variable. An illustrative example is provided below. From 75fdb01464161b7c1617407079544aebd7463a34 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:19:22 +0800 Subject: [PATCH 10/26] Update MenuItemLink-HtmlMenuItem.liquid --- .../TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid index a2279cc0c93..cb6d8d6df79 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -1,2 +1,2 @@ {% assign link = Model.ContentItem.Content.HtmlMenuItemPart %} -{{ link.Html | raw }} \ No newline at end of file +{{ link.Html | raw }} From 38f4d4ec56bc44f71f9b4b8276467f01084e3273 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:36:19 +0800 Subject: [PATCH 11/26] Update MenuItemLink-LinkMenuItem.liquid --- .../TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid index 8b405b2d807..73ecdd4c400 100644 --- a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid +++ b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid @@ -3,5 +3,5 @@ {% if Model.HasItems %} {{ Model.ContentItem.DisplayText }} {% else %} - {{ Model.ContentItem.DisplayText }} + {{ Model.ContentItem.DisplayText }} {% endif %} From e8470f7a243357e9c0127134cc16594d8abf6c0a Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:37:09 +0800 Subject: [PATCH 12/26] Update MenuItemLink-HtmlMenuItem.liquid --- .../TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid index 4c6d9913de8..407f2a4bd3b 100644 --- a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -3,5 +3,5 @@ {% if Model.HasItems %} {{ link.Html | raw }} {% else %} - {{ link.Html | raw }} -{% endif %} \ No newline at end of file + {{ link.Html | raw }} +{% endif %} From 2e797f2725c8c8abc6d278002cc9b93973cc1ebd Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:37:50 +0800 Subject: [PATCH 13/26] Update MenuItemLink-LinkMenuItem.liquid --- .../TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid index bcd1b556210..c70d57541f2 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid @@ -1,5 +1,5 @@ {% assign link = Model.ContentItem.Content.LinkMenuItemPart %} - From 82b6b2674074115ca7f58b446b4e4d2972afce28 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:38:24 +0800 Subject: [PATCH 14/26] Update MenuItemLink-HtmlMenuItem.liquid --- .../TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid index cb6d8d6df79..a0fbfd731f9 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -1,2 +1,2 @@ {% assign link = Model.ContentItem.Content.HtmlMenuItemPart %} -{{ link.Html | raw }} +{{ link.Html | raw }} From a437d48b428d87c8279a5f745099cb85c4ee0408 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:43:12 +0800 Subject: [PATCH 15/26] update target --- .../OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml | 5 +---- .../OrchardCore.Navigation/Views/NavigationItemLink.cshtml | 2 +- .../TheAdmin/Views/NavigationItemLink-admin.cshtml | 5 +---- .../TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml index a26f84572f9..a502693736d 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml @@ -16,10 +16,7 @@ url = Url.Content(linkMenuItemPart.Url); } - if (!string.IsNullOrEmpty(linkMenuItemPart.Target)) - { - tag.Attributes["target"] = linkMenuItemPart.Target; - } + tag.Attributes["target"] = linkMenuItemPart.Target; tag.Attributes["href"] = url; tag.InnerHtml.Append(contentItem.DisplayText); diff --git a/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml index b63777801bb..c2548c8f266 100644 --- a/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml @@ -5,4 +5,4 @@ Model.Metadata.Alternates.Add("NavigationItemText_Id__" + Model.Id); } -@await DisplayAsync(Model) +@await DisplayAsync(Model) diff --git a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml index 1096dc48321..2dbe4fa652e 100644 --- a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml +++ b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml @@ -17,10 +17,7 @@ tag.Attributes["href"] = Model.Href; } - if (!string.IsNullOrEmpty(Model.Target)) - { - tag.Attributes["target"] = Model.Target; - } + tag.Attributes["target"] = Model.Target; var prefix = "icon-class-"; diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid index a2279cc0c93..cb6d8d6df79 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -1,2 +1,2 @@ {% assign link = Model.ContentItem.Content.HtmlMenuItemPart %} -{{ link.Html | raw }} \ No newline at end of file +{{ link.Html | raw }} From 2fb58bdd298ef70970a4c98b5805cbd3e9e78b60 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 17:45:56 +0800 Subject: [PATCH 16/26] clear code --- .../TheAdmin/Views/NavigationItemLink-admin.cshtml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml index c5bc76a6c77..e65e56b010c 100644 --- a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml +++ b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml @@ -24,7 +24,6 @@ tag.Attributes["target"] = Model.Target; - var prefix = "icon-class-"; // Extract classes that are not icons from 'Model.Classes'. var notIconClasses = ((IEnumerable)Model.Classes) .Where(c => !c.StartsWith(NavigationConstants.CssClassPrefix, StringComparison.OrdinalIgnoreCase)) From 020fadee1558b2c1bb9c58af1378345168278ff5 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Fri, 10 May 2024 18:26:55 +0800 Subject: [PATCH 17/26] remoe target check --- .../TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml index c9db308828c..186b89e501e 100644 --- a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml +++ b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml @@ -19,10 +19,7 @@ tag.Attributes["href"] = url; - if (!string.IsNullOrEmpty(htmlMenuItemPart.Target)) - { - tag.Attributes["target"] = htmlMenuItemPart.Target; - } + tag.Attributes["target"] = htmlMenuItemPart.Target; tag.InnerHtml.AppendHtml(Html.Raw(htmlMenuItemPart.Html)); From b9b7c64448aa02c207b798762513858c2aa4a7a3 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 20:29:25 +0800 Subject: [PATCH 18/26] Update MenuItemLink-HtmlMenuItem.liquid From 2a2f45c5b651a79f826930a85dcf5893a6b171ed Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 20:32:58 +0800 Subject: [PATCH 19/26] Update MenuItemLink-HtmlMenuItem.liquid From d01ddfcb039b69a3cb0ea83d6b0092274fbc5298 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 23:00:32 +0800 Subject: [PATCH 20/26] Update src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml Co-authored-by: Mike Alhayek --- .../Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml index 47c905241b0..dd5c12bac83 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Views/Items/LinkAdminNode.Fields.TreeEdit.cshtml @@ -28,10 +28,10 @@ - - - - + + + + @T["The target attribute of the A tag, see more:"] target From 466d7f7c189ba864e66822355527c91e0e1b719d Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 23:00:45 +0800 Subject: [PATCH 21/26] Update src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml Co-authored-by: Mike Alhayek --- .../OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml index d2a0cca053a..6c897b4c8b3 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/HtmlMenuItemPart.Edit.cshtml @@ -20,10 +20,10 @@
- - - - + + + + @T["The target attribute of the A tag, see more:"] target
From 1532e7363f3e576a9244e10151a99d3d8498ff4c Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 23:01:02 +0800 Subject: [PATCH 22/26] Update src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs Co-authored-by: Mike Alhayek --- .../OrchardCore.Navigation.Core/NavigationItemBuilder.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs index 74ea5ea634b..25c2b0f959a 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/NavigationItemBuilder.cs @@ -45,9 +45,11 @@ public NavigationItemBuilder Url(string url) _item.Url = url; return this; } + public NavigationItemBuilder Target(string target) { _item.Target = target; + return this; } From 9d1371859c44b9e29073f4837474517f1a4dc8ed Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 23:05:05 +0800 Subject: [PATCH 23/26] Update MenuItemLink.cshtml --- .../OrchardCore.Menu/Views/MenuItemLink.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml index 3a3f9ebc13b..4894abe6e11 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml @@ -1 +1 @@ -@Model.Text +@Model.Text From 094ec30816bb078d181708d23d31778e245706b5 Mon Sep 17 00:00:00 2001 From: Tony Han Date: Wed, 5 Jun 2024 23:05:44 +0800 Subject: [PATCH 24/26] Apply suggestions from code review Co-authored-by: Mike Alhayek --- .../OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml index 1a95f6f2145..92f6ed71005 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/LinkMenuItemPart.Edit.cshtml @@ -20,10 +20,10 @@
- - - - + + + + @T["The target attribute of the A tag, see more:"] target
From 86cbb7f9220e7d88391be069e2dda234dfa739c0 Mon Sep 17 00:00:00 2001 From: Hisham Bin Ateya Date: Thu, 6 Jun 2024 04:06:07 +0300 Subject: [PATCH 25/26] Apply suggestions from code review --- .../OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml | 1 - .../TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml | 1 - 2 files changed, 2 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml index a502693736d..fe75f0004e6 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink-LinkMenuItem.cshtml @@ -17,7 +17,6 @@ } tag.Attributes["target"] = linkMenuItemPart.Target; - tag.Attributes["href"] = url; tag.InnerHtml.Append(contentItem.DisplayText); } diff --git a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml index 186b89e501e..a8eda22897c 100644 --- a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml +++ b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml @@ -18,7 +18,6 @@ } tag.Attributes["href"] = url; - tag.Attributes["target"] = htmlMenuItemPart.Target; tag.InnerHtml.AppendHtml(Html.Raw(htmlMenuItemPart.Html)); From d51f060a54463a88fefe924cc52fedf878e798f7 Mon Sep 17 00:00:00 2001 From: Mike Alhayek Date: Wed, 5 Jun 2024 20:43:08 -0700 Subject: [PATCH 26/26] final cleanup --- .../OrchardCore.Menu/Views/MenuItemLink.cshtml | 2 +- .../OrchardCore.Navigation/Views/NavigationItemLink.cshtml | 2 +- .../TheAdmin/Views/NavigationItemLink-admin.cshtml | 7 +++++-- .../TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- .../TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid | 2 +- .../TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid | 2 +- .../TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid | 2 +- .../TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml | 6 +++++- 8 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml index 4894abe6e11..924cc3c7294 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Views/MenuItemLink.cshtml @@ -1 +1 @@ -@Model.Text +@Model.Text diff --git a/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml b/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml index c2548c8f266..651d04e24b2 100644 --- a/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Navigation/Views/NavigationItemLink.cshtml @@ -5,4 +5,4 @@ Model.Metadata.Alternates.Add("NavigationItemText_Id__" + Model.Id); } -@await DisplayAsync(Model) +@await DisplayAsync(Model) diff --git a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml index e65e56b010c..08ac661787d 100644 --- a/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml +++ b/src/OrchardCore.Themes/TheAdmin/Views/NavigationItemLink-admin.cshtml @@ -22,8 +22,11 @@ tag.Attributes["href"] = Model.Href; } - tag.Attributes["target"] = Model.Target; - + if (!string.IsNullOrEmpty(Model.Target)) + { + tag.Attributes["target"] = Model.Target; + } + // Extract classes that are not icons from 'Model.Classes'. var notIconClasses = ((IEnumerable)Model.Classes) .Where(c => !c.StartsWith(NavigationConstants.CssClassPrefix, StringComparison.OrdinalIgnoreCase)) diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid index a0fbfd731f9..a05e932748e 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -1,2 +1,2 @@ {% assign link = Model.ContentItem.Content.HtmlMenuItemPart %} -{{ link.Html | raw }} +{{ link.Html | raw }} diff --git a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid index c70d57541f2..19f41cfa9d6 100644 --- a/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid +++ b/src/OrchardCore.Themes/TheAgencyTheme/Views/MenuItemLink-LinkMenuItem.liquid @@ -1,5 +1,5 @@ {% assign link = Model.ContentItem.Content.LinkMenuItemPart %} - diff --git a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid index 407f2a4bd3b..e69aaf13cdb 100644 --- a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid +++ b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-HtmlMenuItem.liquid @@ -3,5 +3,5 @@ {% if Model.HasItems %} {{ link.Html | raw }} {% else %} - {{ link.Html | raw }} + {{ link.Html | raw }} {% endif %} diff --git a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid index 73ecdd4c400..53bad68c116 100644 --- a/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid +++ b/src/OrchardCore.Themes/TheBlogTheme/Views/MenuItemLink-LinkMenuItem.liquid @@ -3,5 +3,5 @@ {% if Model.HasItems %} {{ Model.ContentItem.DisplayText }} {% else %} - {{ Model.ContentItem.DisplayText }} + {{ Model.ContentItem.DisplayText }} {% endif %} diff --git a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml index a8eda22897c..c9db308828c 100644 --- a/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml +++ b/src/OrchardCore.Themes/TheTheme/Views/MenuItemLink-HtmlMenuItem.cshtml @@ -18,7 +18,11 @@ } tag.Attributes["href"] = url; - tag.Attributes["target"] = htmlMenuItemPart.Target; + + if (!string.IsNullOrEmpty(htmlMenuItemPart.Target)) + { + tag.Attributes["target"] = htmlMenuItemPart.Target; + } tag.InnerHtml.AppendHtml(Html.Raw(htmlMenuItemPart.Html));