mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Shifting Menu Items
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web.Routing;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Aspects;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
@@ -44,12 +41,8 @@ namespace Orchard.Core.Navigation.Drivers {
|
||||
|
||||
protected override DriverResult Display(MenuWidgetPart part, string displayType, dynamic shapeHelper) {
|
||||
return ContentShape( "Parts_MenuWidget", () => {
|
||||
if(part.Menu == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var menu = _menuService.GetMenu(part.Menu.Id);
|
||||
|
||||
var menu = _menuService.GetMenu(part.MenuContentItemId);
|
||||
|
||||
if(menu == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -164,8 +157,9 @@ namespace Orchard.Core.Navigation.Drivers {
|
||||
|
||||
protected override DriverResult Editor(MenuWidgetPart part, dynamic shapeHelper) {
|
||||
return ContentShape("Parts_MenuWidget_Edit", () => {
|
||||
|
||||
var model = new MenuWidgetViewModel {
|
||||
CurrentMenuId = part.Menu == null ? -1 : part.Menu.Id,
|
||||
CurrentMenuId = part.MenuContentItemId,
|
||||
StartLevel = part.StartLevel,
|
||||
StopLevel = part.Levels,
|
||||
Breadcrumb = part.Breadcrumb,
|
||||
@@ -188,8 +182,7 @@ namespace Orchard.Core.Navigation.Drivers {
|
||||
part.Breadcrumb = model.Breadcrumb;
|
||||
part.AddHomePage = model.AddHomePage;
|
||||
part.AddCurrentPage = model.AddCurrentPage;
|
||||
part.ShowFullMenu = model.ShowFullMenu;
|
||||
part.Menu = _contentManager.Get(model.CurrentMenuId).Record;
|
||||
part.MenuContentItemId = model.CurrentMenuId;
|
||||
}
|
||||
|
||||
return Editor(part, shapeHelper);
|
||||
@@ -203,11 +196,11 @@ namespace Orchard.Core.Navigation.Drivers {
|
||||
context.ImportAttribute(part.PartDefinition.Name, "AddHomePage", x => part.AddHomePage = Convert.ToBoolean(x));
|
||||
context.ImportAttribute(part.PartDefinition.Name, "ShowFullMenu", x => part.ShowFullMenu = Convert.ToBoolean(x));
|
||||
|
||||
context.ImportAttribute(part.PartDefinition.Name, "Menu", x => part.Menu = context.GetItemFromSession(x).Record);
|
||||
context.ImportAttribute(part.PartDefinition.Name, "Menu", x => part.MenuContentItemId = context.GetItemFromSession(x).Id);
|
||||
}
|
||||
|
||||
protected override void Exporting(MenuWidgetPart part, ExportContentContext context) {
|
||||
var menuIdentity = _contentManager.GetItemMetadata(_contentManager.Get(part.Menu.Id)).Identity;
|
||||
var menuIdentity = _contentManager.GetItemMetadata(_contentManager.Get(part.MenuContentItemId)).Identity;
|
||||
context.Element(part.PartDefinition.Name).SetAttributeValue("Menu", menuIdentity);
|
||||
|
||||
context.Element(part.PartDefinition.Name).SetAttributeValue("StartLevel", part.StartLevel);
|
||||
|
@@ -37,7 +37,7 @@ namespace Orchard.Core.Navigation.Drivers {
|
||||
}
|
||||
|
||||
protected override void Importing(ShapeMenuItemPart part, ImportContentContext context) {
|
||||
IfNotNull(context.Attribute(part.PartDefinition.Name, "ShapeType"), x => part.Record.ShapeType = x);
|
||||
IfNotNull(context.Attribute(part.PartDefinition.Name, "ShapeType"), x => part.ShapeType = x);
|
||||
}
|
||||
|
||||
private static void IfNotNull<T>(T value, Action<T> then) where T : class {
|
||||
@@ -47,7 +47,7 @@ namespace Orchard.Core.Navigation.Drivers {
|
||||
}
|
||||
|
||||
protected override void Exporting(ShapeMenuItemPart part, ExportContentContext context) {
|
||||
context.Element(part.PartDefinition.Name).SetAttributeValue("ShapeType", part.Record.ShapeType);
|
||||
context.Element(part.PartDefinition.Name).SetAttributeValue("ShapeType", part.ShapeType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,15 +1,10 @@
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Data;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
|
||||
namespace Orchard.Core.Navigation.Handlers {
|
||||
[UsedImplicitly]
|
||||
public class MenuItemPartHandler : ContentHandler {
|
||||
public MenuItemPartHandler(IRepository<MenuItemPartRecord> repository) {
|
||||
public MenuItemPartHandler() {
|
||||
Filters.Add(new ActivatingFilter<MenuItemPart>("MenuItem"));
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,12 +1,9 @@
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Data;
|
||||
|
||||
namespace Orchard.Core.Navigation.Handlers {
|
||||
public class MenuWidgetPartHandler : ContentHandler {
|
||||
public MenuWidgetPartHandler(IRepository<MenuWidgetPartRecord> repository) {
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
|
||||
public MenuWidgetPartHandler() {
|
||||
OnInitializing<MenuWidgetPart>((context, part) => { part.StartLevel = 1; });
|
||||
}
|
||||
}
|
||||
|
@@ -1,11 +0,0 @@
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Data;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
|
||||
namespace Orchard.Core.Navigation.Handlers {
|
||||
public class ShapeMenuItemPartHandler : ContentHandler {
|
||||
public ShapeMenuItemPartHandler(IRepository<ShapeMenuItemPartRecord> repository) {
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
}
|
||||
}
|
||||
}
|
@@ -10,12 +10,6 @@ namespace Orchard.Core.Navigation {
|
||||
.Attachable()
|
||||
.WithDescription("Provides an easy way to create a ContentMenuItem from the content editor."));
|
||||
|
||||
SchemaBuilder.CreateTable("MenuItemPartRecord",
|
||||
table => table
|
||||
.ContentPartRecord()
|
||||
.Column<string>("Url", column => column.WithLength(1024))
|
||||
);
|
||||
|
||||
SchemaBuilder.CreateTable("MenuPartRecord",
|
||||
table => table
|
||||
.ContentPartRecord()
|
||||
@@ -38,16 +32,6 @@ namespace Orchard.Core.Navigation {
|
||||
.WithPart("TitlePart")
|
||||
);
|
||||
|
||||
SchemaBuilder.CreateTable("MenuWidgetPartRecord", table => table
|
||||
.ContentPartRecord()
|
||||
.Column<int>("StartLevel")
|
||||
.Column<int>("Levels")
|
||||
.Column<bool>("Breadcrumb")
|
||||
.Column<bool>("AddHomePage")
|
||||
.Column<bool>("AddCurrentPage")
|
||||
.Column<int>("Menu_id")
|
||||
);
|
||||
|
||||
ContentDefinitionManager.AlterTypeDefinition("MenuWidget", cfg => cfg
|
||||
.WithPart("CommonPart")
|
||||
.WithPart("IdentityPart")
|
||||
@@ -78,12 +62,7 @@ namespace Orchard.Core.Navigation {
|
||||
ContentDefinitionManager.AlterPartDefinition("AdminMenuPart", builder => builder
|
||||
.Attachable()
|
||||
.WithDescription("Adds a menu item to the Admin menu that links to this content item."));
|
||||
|
||||
SchemaBuilder.CreateTable("ShapeMenuItemPartRecord",
|
||||
table => table.ContentPartRecord()
|
||||
.Column<string>("ShapeType")
|
||||
);
|
||||
|
||||
|
||||
ContentDefinitionManager.AlterTypeDefinition("ShapeMenuItem",
|
||||
cfg => cfg
|
||||
.WithPart("ShapeMenuItemPart")
|
||||
|
@@ -1,11 +1,10 @@
|
||||
using Orchard.ContentManagement;
|
||||
|
||||
namespace Orchard.Core.Navigation.Models {
|
||||
public class MenuItemPart : ContentPart<MenuItemPartRecord> {
|
||||
|
||||
public class MenuItemPart : ContentPart {
|
||||
public string Url {
|
||||
get { return Record.Url; }
|
||||
set { Record.Url = value; }
|
||||
get { return this.Retrieve(x => x.Url); }
|
||||
set { this.Store(x => x.Url, value); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +0,0 @@
|
||||
using Orchard.ContentManagement.Records;
|
||||
|
||||
namespace Orchard.Core.Navigation.Models {
|
||||
public class MenuItemPartRecord : ContentPartRecord {
|
||||
public virtual string Url { get; set; }
|
||||
}
|
||||
}
|
@@ -1,37 +1,36 @@
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Records;
|
||||
|
||||
namespace Orchard.Core.Navigation.Models {
|
||||
public class MenuWidgetPart : ContentPart<MenuWidgetPartRecord> {
|
||||
public class MenuWidgetPart : ContentPart {
|
||||
|
||||
public int StartLevel {
|
||||
get { return Retrieve(x => x.StartLevel); }
|
||||
set { Store(x => x.StartLevel, value); }
|
||||
get { return this.Retrieve(x => x.StartLevel); }
|
||||
set { this.Store(x => x.StartLevel, value); }
|
||||
}
|
||||
|
||||
public int Levels {
|
||||
get { return Retrieve(x => x.Levels); }
|
||||
set { Store(x => x.Levels, value); }
|
||||
get { return this.Retrieve(x => x.Levels); }
|
||||
set { this.Store(x => x.Levels, value); }
|
||||
}
|
||||
|
||||
public bool Breadcrumb {
|
||||
get { return Retrieve(x => x.Breadcrumb); }
|
||||
set { Store(x => x.Breadcrumb, value); }
|
||||
get { return this.Retrieve(x => x.Breadcrumb); }
|
||||
set { this.Store(x => x.Breadcrumb, value); }
|
||||
}
|
||||
|
||||
public bool AddHomePage {
|
||||
get { return Retrieve(x => x.AddHomePage); }
|
||||
set { Store(x => x.AddHomePage, value); }
|
||||
get { return this.Retrieve(x => x.AddHomePage); }
|
||||
set { this.Store(x => x.AddHomePage, value); }
|
||||
}
|
||||
|
||||
public bool AddCurrentPage {
|
||||
get { return Retrieve(x => x.AddCurrentPage); }
|
||||
set { Store(x => x.AddCurrentPage, value); }
|
||||
get { return this.Retrieve(x => x.AddCurrentPage); }
|
||||
set { this.Store(x => x.AddCurrentPage, value); }
|
||||
}
|
||||
|
||||
public ContentItemRecord Menu {
|
||||
get { return Record.Menu; }
|
||||
set { Record.Menu = value; }
|
||||
|
||||
public int MenuContentItemId {
|
||||
get { return this.Retrieve(x => x.MenuContentItemId); }
|
||||
set { this.Store(x => x.MenuContentItemId, value); }
|
||||
}
|
||||
|
||||
public bool ShowFullMenu {
|
||||
|
@@ -1,13 +0,0 @@
|
||||
using Orchard.ContentManagement.Records;
|
||||
|
||||
namespace Orchard.Core.Navigation.Models {
|
||||
public class MenuWidgetPartRecord : ContentPartRecord {
|
||||
public virtual int StartLevel { get; set; }
|
||||
public virtual int Levels { get; set; }
|
||||
public virtual bool Breadcrumb { get; set; }
|
||||
public virtual bool AddHomePage { get; set; }
|
||||
public virtual bool AddCurrentPage { get; set; }
|
||||
|
||||
public virtual ContentItemRecord Menu { get; set; }
|
||||
}
|
||||
}
|
@@ -1,13 +1,13 @@
|
||||
using Orchard.ContentManagement;
|
||||
|
||||
namespace Orchard.Core.Navigation.Models {
|
||||
public class ShapeMenuItemPart : ContentPart<ShapeMenuItemPartRecord> {
|
||||
public class ShapeMenuItemPart : ContentPart {
|
||||
/// <summary>
|
||||
/// Maximum number of items to retrieve from db
|
||||
/// </summary>
|
||||
public virtual string ShapeType {
|
||||
get { return Record.ShapeType; }
|
||||
set { Record.ShapeType = value; }
|
||||
public string ShapeType {
|
||||
get { return this.Retrieve(x => x.ShapeType); }
|
||||
set { this.Store(x => x.ShapeType, value); }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using Orchard.ContentManagement.Records;
|
||||
|
||||
namespace Orchard.Core.Navigation.Models {
|
||||
public class ShapeMenuItemPartRecord : ContentPartRecord {
|
||||
/// <summary>
|
||||
/// The shape to display
|
||||
/// </summary>
|
||||
public virtual string ShapeType { get; set; }
|
||||
}
|
||||
}
|
@@ -17,7 +17,6 @@ namespace Orchard.Core.Navigation.Services {
|
||||
var menuParts = _contentManager
|
||||
.Query<MenuPart, MenuPartRecord>()
|
||||
.Where(x => x.MenuId == menu.Id)
|
||||
.WithQueryHints(new QueryHints().ExpandRecords<MenuItemPartRecord>())
|
||||
.List();
|
||||
|
||||
foreach (var menuPart in menuParts) {
|
||||
|
@@ -143,14 +143,12 @@
|
||||
<Compile Include="Navigation\Drivers\ShapeMenuItemPartDriver.cs" />
|
||||
<Compile Include="Navigation\Handlers\AdminMenuPartHandler.cs" />
|
||||
<Compile Include="Navigation\Handlers\MenuHandler.cs" />
|
||||
<Compile Include="Navigation\Handlers\MenuItemPartHandler.cs" />
|
||||
<Compile Include="Navigation\Handlers\MenuWidgetPartHandler.cs" />
|
||||
<Compile Include="Navigation\Handlers\ShapeMenuItemPartHandler.cs" />
|
||||
<Compile Include="Navigation\Models\AdminMenuPart.cs" />
|
||||
<Compile Include="Navigation\Models\AdminMenuPartRecord.cs" />
|
||||
<Compile Include="Navigation\Models\MenuWidgetPartRecord.cs" />
|
||||
<Compile Include="Navigation\Models\MenuWidgetPart.cs" />
|
||||
<Compile Include="Navigation\Models\ShapeMenuItemPart.cs" />
|
||||
<Compile Include="Navigation\Models\ShapeMenuItemPartRecord.cs" />
|
||||
<Compile Include="Navigation\Services\AdminMenuNavigationProvider.cs" />
|
||||
<Compile Include="Navigation\Services\DefaultMenuManager.cs" />
|
||||
<Compile Include="Navigation\Services\IMenuManager.cs" />
|
||||
@@ -202,12 +200,10 @@
|
||||
<Compile Include="Navigation\AdminMenu.cs" />
|
||||
<Compile Include="Navigation\Controllers\AdminController.cs" />
|
||||
<Compile Include="Navigation\Models\MenuItemPart.cs" />
|
||||
<Compile Include="Navigation\Handlers\MenuItemPartHandler.cs" />
|
||||
<Compile Include="Navigation\Models\MenuPart.cs" />
|
||||
<Compile Include="Navigation\Drivers\MenuPartDriver.cs" />
|
||||
<Compile Include="Navigation\Handlers\MenuPartHandler.cs" />
|
||||
<Compile Include="Navigation\Permissions.cs" />
|
||||
<Compile Include="Navigation\Models\MenuItemPartRecord.cs" />
|
||||
<Compile Include="Navigation\Models\MenuPartRecord.cs" />
|
||||
<Compile Include="Navigation\Services\IMenuService.cs" />
|
||||
<Compile Include="Navigation\Services\MainMenuService.cs" />
|
||||
@@ -372,7 +368,6 @@
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
<Folder Include="Containers\Services\" />
|
||||
<Folder Include="Settings\Handlers\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Contents\Views\Web.config" />
|
||||
|
@@ -112,7 +112,7 @@ namespace Orchard.Widgets.Commands {
|
||||
|
||||
if(menu != null) {
|
||||
widget.RenderTitle = false;
|
||||
widget.As<MenuWidgetPart>().Menu = menu.ContentItem.Record;
|
||||
widget.As<MenuWidgetPart>().MenuContentItemId = menu.ContentItem.Id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -48,7 +48,7 @@ namespace Upgrade.Controllers {
|
||||
var site = _orchardServices.WorkContext.CurrentSite.As<SiteSettingsPart>();
|
||||
|
||||
// SiteSettingsPartRecord
|
||||
_upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Core_SiteSettingsPartRecord"),
|
||||
_upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Settings_SiteSettingsPartRecord"),
|
||||
(reader, connection) => {
|
||||
site.HomePage = (string)reader["HomePage"];
|
||||
site.PageSize = (int)reader["PageSize"];
|
||||
@@ -61,15 +61,15 @@ namespace Upgrade.Controllers {
|
||||
site.SuperUser = (string)reader["SuperUser"];
|
||||
});
|
||||
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Core_SiteSettingsPartRecord"), null);
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Settings_SiteSettingsPartRecord"), null);
|
||||
|
||||
// SiteSettings2PartRecord
|
||||
_upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Core_SiteSettings2PartRecord"),
|
||||
_upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Settings_SiteSettings2PartRecord"),
|
||||
(reader, connection) => {
|
||||
site.BaseUrl = (string)reader["BaseUrl"];
|
||||
});
|
||||
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Core_SiteSettings2PartRecord"), null);
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Settings_SiteSettings2PartRecord"), null);
|
||||
|
||||
// ThemeSiteSettingsPartRecord
|
||||
_upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Themes_ThemeSiteSettingsPartRecord"),
|
||||
@@ -247,5 +247,80 @@ namespace Upgrade.Controllers {
|
||||
|
||||
return new JsonResult { Data = lastContentItemId };
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult MigrateMenuWidgetPart(int id) {
|
||||
if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner))
|
||||
throw new AuthenticationException("");
|
||||
|
||||
var lastContentItemId = id;
|
||||
|
||||
_upgradeService.ExecuteReader("SELECT TOP " + BATCH + " * FROM " + _upgradeService.GetPrefixedTableName("Navigation_MenuWidgetPartRecord") + " WHERE Id > " + id,
|
||||
(reader, connection) => {
|
||||
lastContentItemId = (int)reader["Id"];
|
||||
var contentPermissionPart = _orchardServices.ContentManager.Get(lastContentItemId);
|
||||
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuWidgetPart", "StartLevel", (int)reader["StartLevel"]);
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuWidgetPart", "Levels", (int)reader["Levels"]);
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuWidgetPart", "Breadcrumb", (bool)reader["Breadcrumb"]);
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuWidgetPart", "AddHomePage", (bool)reader["AddHomePage"]);
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuWidgetPart", "AddCurrentPage", (bool)reader["AddCurrentPage"]);
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuWidgetPart", "MenuContentItemId", (int)reader["Menu_id"]);
|
||||
});
|
||||
|
||||
if (lastContentItemId == id) {
|
||||
// delete the table only when there is no more content to process
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Navigation_MenuWidgetPartRecord"), null);
|
||||
}
|
||||
|
||||
return new JsonResult { Data = lastContentItemId };
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult MigrateShapeMenuItemPart(int id) {
|
||||
if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner))
|
||||
throw new AuthenticationException("");
|
||||
|
||||
var lastContentItemId = id;
|
||||
|
||||
_upgradeService.ExecuteReader("SELECT TOP " + BATCH + " * FROM " + _upgradeService.GetPrefixedTableName("Navigation_ShapeMenuItemPartRecord") + " WHERE Id > " + id,
|
||||
(reader, connection) => {
|
||||
lastContentItemId = (int)reader["Id"];
|
||||
var contentPermissionPart = _orchardServices.ContentManager.Get(lastContentItemId);
|
||||
|
||||
contentPermissionPart.As<InfosetPart>().Store("ShapeMenuItemPart", "ShapeType", (string)reader["ShapeType"]);
|
||||
});
|
||||
|
||||
if (lastContentItemId == id) {
|
||||
// delete the table only when there is no more content to process
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Navigation_ShapeMenuItemPartRecord"), null);
|
||||
}
|
||||
|
||||
return new JsonResult { Data = lastContentItemId };
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult MigrateMenuItemPart(int id) {
|
||||
if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner))
|
||||
throw new AuthenticationException("");
|
||||
|
||||
var lastContentItemId = id;
|
||||
|
||||
_upgradeService.ExecuteReader("SELECT TOP " + BATCH + " * FROM " + _upgradeService.GetPrefixedTableName("Navigation_MenuItemPartRecord") + " WHERE Id > " + id,
|
||||
(reader, connection) => {
|
||||
lastContentItemId = (int)reader["Id"];
|
||||
var contentPermissionPart = _orchardServices.ContentManager.Get(lastContentItemId);
|
||||
|
||||
contentPermissionPart.As<InfosetPart>().Store("MenuItemPart", "Url", (string)reader["Url"]);
|
||||
});
|
||||
|
||||
if (lastContentItemId == id) {
|
||||
// delete the table only when there is no more content to process
|
||||
_upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Navigation_MenuItemPartRecord"), null);
|
||||
}
|
||||
|
||||
return new JsonResult { Data = lastContentItemId };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -76,7 +76,7 @@ namespace Upgrade.Controllers {
|
||||
|
||||
var menuWidget = widget.As<MenuWidgetPart>();
|
||||
|
||||
menuWidget.Menu = mainMenu.ContentItem.Record;
|
||||
menuWidget.MenuContentItemId = mainMenu.ContentItem.Id;
|
||||
|
||||
menuWidget.StartLevel = 1;
|
||||
menuWidget.Levels = 1;
|
||||
|
@@ -51,6 +51,24 @@
|
||||
<button type="button" class="button button-migrate" data-url="@Url.Action("MigrateLayerPart", "Infoset")">@T("Migrate")</button>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>@T("Migrating Menu Widget Parts:")</legend>
|
||||
<span class="hint">@T("This migration step will copy all Menu Widget parts to Infosets.")</span>
|
||||
<button type="button" class="button button-migrate" data-url="@Url.Action("MigrateMenuWidgetPart", "Infoset")">@T("Migrate")</button>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>@T("Migrating Shape Menu Item Parts:")</legend>
|
||||
<span class="hint">@T("This migration step will copy all Shape Menu Item parts to Infosets.")</span>
|
||||
<button type="button" class="button button-migrate" data-url="@Url.Action("MigrateShapeMenuItemPart", "Infoset")">@T("Migrate")</button>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>@T("Migrating Menu Item Parts:")</legend>
|
||||
<span class="hint">@T("This migration step will copy all Menu Item parts to Infosets.")</span>
|
||||
<button type="button" class="button button-migrate" data-url="@Url.Action("MigrateMenuItemPart", "Infoset")">@T("Migrate")</button>
|
||||
</fieldset>
|
||||
|
||||
@using (Script.Foot()) {
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
Reference in New Issue
Block a user