mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-22 20:13:50 +08:00
Changing MenuItem .Text to LocalizedString
Updating comparer to avoid collapsing url and routevalue items together Flattened the navigation admin controller to avoid using MenuItem class in editor model HtmlEncode the text of the menu item to be displayed Updated TheMenu templates to use .text and .hinttext properties of LocalizedString --HG-- branch : dev
This commit is contained in:
@@ -42,7 +42,7 @@ namespace Orchard.Core.Navigation.Controllers {
|
||||
model = new NavigationManagementViewModel();
|
||||
|
||||
if (model.MenuItemEntries == null || model.MenuItemEntries.Count() < 1)
|
||||
model.MenuItemEntries = _menuService.Get().Select(CreateMenuItemEntries).OrderBy(menuPartEntry => menuPartEntry.MenuItem.Position, new FlatPositionComparer()).ToList();
|
||||
model.MenuItemEntries = _menuService.Get().Select(CreateMenuItemEntries).OrderBy(menuPartEntry => menuPartEntry.Position, new FlatPositionComparer()).ToList();
|
||||
|
||||
// need action name as this action is referenced from another action
|
||||
return View("Index", model);
|
||||
@@ -58,10 +58,10 @@ namespace Orchard.Core.Navigation.Controllers {
|
||||
foreach (var menuItemEntry in menuItemEntries) {
|
||||
MenuPart menuPart = _menuService.Get(menuItemEntry.MenuItemId);
|
||||
|
||||
menuPart.MenuText = menuItemEntry.MenuItem.Text;
|
||||
menuPart.MenuPosition = menuItemEntry.MenuItem.Position;
|
||||
menuPart.MenuText = menuItemEntry.Text;
|
||||
menuPart.MenuPosition = menuItemEntry.Position;
|
||||
if (menuPart.Is<MenuItemPart>())
|
||||
menuPart.As<MenuItemPart>().Url = menuItemEntry.MenuItem.Url;
|
||||
menuPart.As<MenuItemPart>().Url = menuItemEntry.Url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,16 +70,14 @@ namespace Orchard.Core.Navigation.Controllers {
|
||||
|
||||
private MenuItemEntry CreateMenuItemEntries(MenuPart menuPart) {
|
||||
return new MenuItemEntry {
|
||||
MenuItem = new MenuItem {
|
||||
Text = menuPart.MenuText,
|
||||
Position = menuPart.MenuPosition,
|
||||
Url = menuPart.Is<MenuItemPart>()
|
||||
? menuPart.As<MenuItemPart>().Url
|
||||
: _navigationManager.GetUrl(null, _services.ContentManager.GetItemMetadata(menuPart).DisplayRouteValues)
|
||||
},
|
||||
MenuItemId = menuPart.Id,
|
||||
IsMenuItem = menuPart.Is<MenuItemPart>()
|
||||
};
|
||||
MenuItemId = menuPart.Id,
|
||||
IsMenuItem = menuPart.Is<MenuItemPart>(),
|
||||
Text = menuPart.MenuText,
|
||||
Position = menuPart.MenuPosition,
|
||||
Url = menuPart.Is<MenuItemPart>()
|
||||
? menuPart.As<MenuItemPart>().Url
|
||||
: _navigationManager.GetUrl(null, _services.ContentManager.GetItemMetadata(menuPart).DisplayRouteValues),
|
||||
};
|
||||
}
|
||||
|
||||
public ActionResult Create() {
|
||||
@@ -96,7 +94,7 @@ namespace Orchard.Core.Navigation.Controllers {
|
||||
|
||||
if (!ModelState.IsValid) {
|
||||
_services.TransactionManager.Cancel();
|
||||
return Index(new NavigationManagementViewModel {NewMenuItem = model});
|
||||
return Index(new NavigationManagementViewModel { NewMenuItem = model });
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(menuPart.MenuPosition))
|
||||
|
@@ -1,4 +1,5 @@
|
||||
using JetBrains.Annotations;
|
||||
using System.Web;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Localization;
|
||||
@@ -23,11 +24,11 @@ namespace Orchard.Core.Navigation.Services {
|
||||
|
||||
if (part.Is<MenuItemPart>())
|
||||
builder.Add(
|
||||
menu => menu.Add(new LocalizedString(part.MenuText), part.MenuPosition, nib => nib.Url(part.As<MenuItemPart>().Url)));
|
||||
menu => menu.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition, nib => nib.Url(part.As<MenuItemPart>().Url)));
|
||||
else
|
||||
builder.Add(
|
||||
menu =>
|
||||
menu.Add(new LocalizedString(part.MenuText), part.MenuPosition,
|
||||
menu.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition,
|
||||
nib =>
|
||||
nib.Action(_contentManager.GetItemMetadata(part.ContentItem).DisplayRouteValues)));
|
||||
}
|
||||
|
@@ -2,8 +2,11 @@
|
||||
|
||||
namespace Orchard.Core.Navigation.ViewModels {
|
||||
public class MenuItemEntry {
|
||||
public MenuItem MenuItem { get; set; }
|
||||
public int MenuItemId { get; set; }
|
||||
public bool IsMenuItem { get; set; }
|
||||
|
||||
public string Text { get; set; }
|
||||
public string Url { get; set; }
|
||||
public string Position { get; set; }
|
||||
}
|
||||
}
|
@@ -26,9 +26,9 @@
|
||||
foreach (var menuPartEntry in Model.MenuItemEntries) {
|
||||
var i = menuPartEntryIndex;
|
||||
<tr>
|
||||
<td><input type="text" class="text-box" name="@Html.NameOf(m => m.MenuItemEntries[i].MenuItem.Text)" value="@menuPartEntry.MenuItem.Text" /></td>
|
||||
<td><input type="text" class="text-box" name="@Html.NameOf(m => m.MenuItemEntries[i].MenuItem.Position)" value="@menuPartEntry.MenuItem.Position" /></td>
|
||||
<td>@if (!menuPartEntry.IsMenuItem) {<input type="text" class="text-box disabled" disabled="disabled" value="@menuPartEntry.MenuItem.Url" /> } else {<input type="text" class="text-box" name="@Html.NameOf(m => m.MenuItemEntries[i].MenuItem.Url)" value="@menuPartEntry.MenuItem.Url" />}</td>
|
||||
<td><input type="text" class="text-box" name="@Html.NameOf(m => m.MenuItemEntries[i].Text)" value="@menuPartEntry.Text" /></td>
|
||||
<td><input type="text" class="text-box" name="@Html.NameOf(m => m.MenuItemEntries[i].Position)" value="@menuPartEntry.Position" /></td>
|
||||
<td>@if (!menuPartEntry.IsMenuItem) {<input type="text" class="text-box disabled" disabled="disabled" value="@menuPartEntry.Url" /> } else {<input type="text" class="text-box" name="@Html.NameOf(m => m.MenuItemEntries[i].Url)" value="@menuPartEntry.Url" />}</td>
|
||||
<td><input type="hidden" name="@Html.NameOf(m => m.MenuItemEntries[i].MenuItemId)" value="@menuPartEntry.MenuItemId" /><a href="@Html.AntiForgeryTokenGetUrl(Url.Action("Delete", new {id = menuPartEntry.MenuItemId}))" class="remove">@T("Remove")</a></td>
|
||||
</tr>
|
||||
++menuPartEntryIndex;
|
||||
|
Reference in New Issue
Block a user