mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Retiring IContentItemDriver
--HG-- branch : dev
This commit is contained in:
@@ -1,22 +0,0 @@
|
|||||||
using Orchard.ContentManagement;
|
|
||||||
using Orchard.ContentManagement.Aspects;
|
|
||||||
using Orchard.ContentManagement.Drivers;
|
|
||||||
using Orchard.Core.Contents.ViewModels;
|
|
||||||
using Orchard.Core.ContentsLocation.Models;
|
|
||||||
|
|
||||||
namespace Orchard.Core.Contents.Drivers {
|
|
||||||
public class ContentsDriver : ContentItemDriver<ContentPart> {
|
|
||||||
protected override string GetDisplayText(ContentPart item) {
|
|
||||||
return item.Is<IRoutableAspect>()
|
|
||||||
? item.As<IRoutableAspect>().Title
|
|
||||||
: base.GetDisplayText(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override DriverResult Display(ContentPart part, string displayType) {
|
|
||||||
var location = part.GetLocation(displayType, "secondary", null);
|
|
||||||
return Combined(
|
|
||||||
ContentItemTemplate("Items/Contents.Item").LongestMatch(displayType, "Summary", "SummaryAdmin"),
|
|
||||||
ContentPartTemplate(new PublishContentViewModel(part.ContentItem), "Parts/Contents.Publish").LongestMatch(displayType, "Summary", "SummaryAdmin").Location(location));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -82,7 +82,6 @@
|
|||||||
<Compile Include="Common\ViewModels\TextContentFieldDisplayViewModel.cs" />
|
<Compile Include="Common\ViewModels\TextContentFieldDisplayViewModel.cs" />
|
||||||
<Compile Include="Common\ViewModels\TextContentFieldEditorViewModel.cs" />
|
<Compile Include="Common\ViewModels\TextContentFieldEditorViewModel.cs" />
|
||||||
<Compile Include="Contents\Controllers\ItemController.cs" />
|
<Compile Include="Contents\Controllers\ItemController.cs" />
|
||||||
<Compile Include="Contents\Drivers\ContentsDriver.cs" />
|
|
||||||
<Compile Include="Contents\Extensions\MetaDataExtensions.cs" />
|
<Compile Include="Contents\Extensions\MetaDataExtensions.cs" />
|
||||||
<Compile Include="Contents\Handlers\ContentsHandler.cs" />
|
<Compile Include="Contents\Handlers\ContentsHandler.cs" />
|
||||||
<Compile Include="Contents\Permissions.cs" />
|
<Compile Include="Contents\Permissions.cs" />
|
||||||
@@ -196,7 +195,6 @@
|
|||||||
<Compile Include="Scheduling\Models\Task.cs" />
|
<Compile Include="Scheduling\Models\Task.cs" />
|
||||||
<Compile Include="Settings\DataMigrations\SettingsDataMigration.cs" />
|
<Compile Include="Settings\DataMigrations\SettingsDataMigration.cs" />
|
||||||
<Compile Include="Settings\ViewModels\SiteCulturesViewModel.cs" />
|
<Compile Include="Settings\ViewModels\SiteCulturesViewModel.cs" />
|
||||||
<Compile Include="Settings\Drivers\SiteSettingsPartDriver.cs" />
|
|
||||||
<Compile Include="Settings\Metadata\ContentDefinitionManager.cs" />
|
<Compile Include="Settings\Metadata\ContentDefinitionManager.cs" />
|
||||||
<Compile Include="Settings\Metadata\Records\ContentFieldDefinitionRecord.cs" />
|
<Compile Include="Settings\Metadata\Records\ContentFieldDefinitionRecord.cs" />
|
||||||
<Compile Include="Settings\Metadata\Records\ContentPartDefinitionRecord.cs" />
|
<Compile Include="Settings\Metadata\Records\ContentPartDefinitionRecord.cs" />
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
using JetBrains.Annotations;
|
|
||||||
using Orchard.ContentManagement;
|
|
||||||
using Orchard.ContentManagement.Drivers;
|
|
||||||
using Orchard.Core.Settings.Models;
|
|
||||||
|
|
||||||
namespace Orchard.Core.Settings.Drivers {
|
|
||||||
[UsedImplicitly]
|
|
||||||
public class SiteSettingsPartDriver : ContentItemDriver<SiteSettingsPart> {
|
|
||||||
protected override ContentType GetContentType() {
|
|
||||||
return SiteSettingsPart.ContentType;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override DriverResult Editor(SiteSettingsPart part) {
|
|
||||||
return ContentItemTemplate("Items/Settings.Site");
|
|
||||||
}
|
|
||||||
protected override DriverResult Editor(SiteSettingsPart part, IUpdateModel updater) {
|
|
||||||
return ContentItemTemplate("Items/Settings.Site");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
using System.Web.Routing;
|
|
||||||
using JetBrains.Annotations;
|
|
||||||
using Orchard.ContentManagement;
|
|
||||||
using Orchard.ContentManagement.Drivers;
|
|
||||||
using Orchard.Users.Models;
|
|
||||||
|
|
||||||
namespace Orchard.Users.Drivers {
|
|
||||||
[UsedImplicitly]
|
|
||||||
public class UserPartDriver : ContentItemDriver<UserPart> {
|
|
||||||
public readonly static ContentType ContentType = new ContentType {
|
|
||||||
Name = "User",
|
|
||||||
DisplayName = "User Profile"
|
|
||||||
};
|
|
||||||
|
|
||||||
protected override bool UseDefaultTemplate { get { return true; } }
|
|
||||||
|
|
||||||
protected override ContentType GetContentType() {
|
|
||||||
return ContentType;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string GetDisplayText(UserPart item) {
|
|
||||||
//TEMP: need a "display name" probably... showing login info likely not a best practice...
|
|
||||||
return item.UserName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override RouteValueDictionary GetEditorRouteValues(UserPart item) {
|
|
||||||
return new RouteValueDictionary {
|
|
||||||
{"Area", "Orchard.Users"},
|
|
||||||
{"Controller", "Admin"},
|
|
||||||
{"Action", "Edit"},
|
|
||||||
{"Id", item.ContentItem.Id},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -68,7 +68,6 @@
|
|||||||
<Compile Include="Controllers\AccountController.cs" />
|
<Compile Include="Controllers\AccountController.cs" />
|
||||||
<Compile Include="Controllers\AdminController.cs" />
|
<Compile Include="Controllers\AdminController.cs" />
|
||||||
<Compile Include="DataMigrations\UsersDataMigration.cs" />
|
<Compile Include="DataMigrations\UsersDataMigration.cs" />
|
||||||
<Compile Include="Drivers\UserPartDriver.cs" />
|
|
||||||
<Compile Include="Models\UserPart.cs" />
|
<Compile Include="Models\UserPart.cs" />
|
||||||
<Compile Include="Handlers\UserPartHandler.cs" />
|
<Compile Include="Handlers\UserPartHandler.cs" />
|
||||||
<Compile Include="Models\UserPartRecord.cs" />
|
<Compile Include="Models\UserPartRecord.cs" />
|
||||||
|
|||||||
@@ -1,87 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Web.Routing;
|
|
||||||
using Orchard.ContentManagement.Handlers;
|
|
||||||
using Orchard.Mvc.ViewModels;
|
|
||||||
|
|
||||||
namespace Orchard.ContentManagement.Drivers {
|
|
||||||
public abstract class ContentItemDriver<TContent> : ContentPartDriver<TContent>, IContentItemDriver where TContent : ContentPart, new() {
|
|
||||||
private readonly ContentType _contentType;
|
|
||||||
protected virtual bool UseDefaultTemplate { get { return false; } }
|
|
||||||
|
|
||||||
public ContentItemDriver() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public ContentItemDriver(ContentType contentType) {
|
|
||||||
_contentType = contentType;
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerable<ContentType> IContentItemDriver.GetContentTypes() {
|
|
||||||
var contentType = GetContentType();
|
|
||||||
return contentType != null ? new[] { contentType } : Enumerable.Empty<ContentType>();
|
|
||||||
}
|
|
||||||
|
|
||||||
void IContentItemDriver.GetContentItemMetadata(GetContentItemMetadataContext context) {
|
|
||||||
var item = context.ContentItem.As<TContent>();
|
|
||||||
if (item != null) {
|
|
||||||
context.Metadata.DisplayText = GetDisplayText(item) ?? context.Metadata.DisplayText;
|
|
||||||
context.Metadata.DisplayRouteValues = GetDisplayRouteValues(item) ?? context.Metadata.DisplayRouteValues;
|
|
||||||
context.Metadata.EditorRouteValues = GetEditorRouteValues(item) ?? context.Metadata.EditorRouteValues;
|
|
||||||
context.Metadata.CreateRouteValues = GetCreateRouteValues(item) ?? context.Metadata.CreateRouteValues;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DriverResult IContentItemDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
|
||||||
var part = context.ContentItem.As<TContent>();
|
|
||||||
if (part == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
|
||||||
return Display(new ContentItemViewModel<TContent>(context.ViewModel), context.DisplayType);
|
|
||||||
}
|
|
||||||
return Display((ContentItemViewModel<TContent>)context.ViewModel, context.DisplayType);
|
|
||||||
}
|
|
||||||
|
|
||||||
DriverResult IContentItemDriver.BuildEditorModel(BuildEditorModelContext context) {
|
|
||||||
var part = context.ContentItem.As<TContent>();
|
|
||||||
if (part == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
|
||||||
return Editor(new ContentItemViewModel<TContent>(context.ViewModel));
|
|
||||||
}
|
|
||||||
return Editor((ContentItemViewModel<TContent>)context.ViewModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
DriverResult IContentItemDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
|
||||||
var part = context.ContentItem.As<TContent>();
|
|
||||||
if (part == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
|
||||||
return Editor(new ContentItemViewModel<TContent>(context.ViewModel), context.Updater);
|
|
||||||
}
|
|
||||||
return Editor((ContentItemViewModel<TContent>)context.ViewModel, context.Updater);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual ContentType GetContentType() { return _contentType; }
|
|
||||||
protected virtual string GetDisplayText(TContent item) { return null; }
|
|
||||||
public virtual RouteValueDictionary GetDisplayRouteValues(TContent item) { return null; }
|
|
||||||
public virtual RouteValueDictionary GetEditorRouteValues(TContent item) { return null; }
|
|
||||||
public virtual RouteValueDictionary GetCreateRouteValues(TContent item) { return null; }
|
|
||||||
|
|
||||||
protected virtual DriverResult Display(ContentItemViewModel<TContent> viewModel, string displayType) { return GetDefaultItemTemplate(); }
|
|
||||||
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel) { return GetDefaultItemTemplate(); }
|
|
||||||
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel, IUpdateModel updater) { return GetDefaultItemTemplate(); }
|
|
||||||
|
|
||||||
public ContentItemTemplateResult<TContent> ContentItemTemplate(string templateName) {
|
|
||||||
return new ContentItemTemplateResult<TContent>(templateName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DriverResult GetDefaultItemTemplate() {
|
|
||||||
return UseDefaultTemplate
|
|
||||||
? ContentItemTemplate("Items/ContentItem")
|
|
||||||
: null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using JetBrains.Annotations;
|
|
||||||
using Orchard.ContentManagement.Handlers;
|
|
||||||
using Orchard.Logging;
|
|
||||||
|
|
||||||
namespace Orchard.ContentManagement.Drivers.Coordinators {
|
|
||||||
[UsedImplicitly]
|
|
||||||
public class ContentItemDriverCoordinator : ContentHandlerBase {
|
|
||||||
private readonly IEnumerable<IContentItemDriver> _drivers;
|
|
||||||
|
|
||||||
public ContentItemDriverCoordinator(IEnumerable<IContentItemDriver> drivers) {
|
|
||||||
_drivers = drivers;
|
|
||||||
Logger = NullLogger.Instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ILogger Logger { get; set; }
|
|
||||||
|
|
||||||
public override IEnumerable<ContentType> GetContentTypes() {
|
|
||||||
var contentTypes = new List<ContentType>();
|
|
||||||
_drivers.Invoke(driver=>contentTypes.AddRange(driver.GetContentTypes()), Logger);
|
|
||||||
return contentTypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void GetContentItemMetadata(GetContentItemMetadataContext context) {
|
|
||||||
_drivers.Invoke(driver => driver.GetContentItemMetadata(context), Logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void BuildDisplayModel(BuildDisplayModelContext context) {
|
|
||||||
_drivers.Invoke(driver => {
|
|
||||||
var result = driver.BuildDisplayModel(context);
|
|
||||||
if (result != null)
|
|
||||||
result.Apply(context);
|
|
||||||
}, Logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void BuildEditorModel(BuildEditorModelContext context) {
|
|
||||||
_drivers.Invoke(driver => {
|
|
||||||
var result = driver.BuildEditorModel(context);
|
|
||||||
if (result != null)
|
|
||||||
result.Apply(context);
|
|
||||||
}, Logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void UpdateEditorModel(UpdateEditorModelContext context) {
|
|
||||||
_drivers.Invoke(driver => {
|
|
||||||
var result = driver.UpdateEditorModel(context);
|
|
||||||
if (result != null)
|
|
||||||
result.Apply(context);
|
|
||||||
}, Logger);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using Orchard.ContentManagement.Handlers;
|
|
||||||
|
|
||||||
namespace Orchard.ContentManagement.Drivers {
|
|
||||||
public interface IContentItemDriver : IEvents {
|
|
||||||
IEnumerable<ContentType> GetContentTypes();
|
|
||||||
void GetContentItemMetadata(GetContentItemMetadataContext context);
|
|
||||||
|
|
||||||
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
|
|
||||||
DriverResult BuildEditorModel(BuildEditorModelContext context);
|
|
||||||
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -187,12 +187,6 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ContentManagement\Drivers\ContentFieldDriver.cs" />
|
<Compile Include="ContentManagement\Drivers\ContentFieldDriver.cs" />
|
||||||
<Compile Include="ContentManagement\Drivers\Coordinators\ContentFieldDriverCoordinator.cs" />
|
<Compile Include="ContentManagement\Drivers\Coordinators\ContentFieldDriverCoordinator.cs" />
|
||||||
<Compile Include="ContentManagement\Drivers\ContentItemDriver.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="ContentManagement\Drivers\Coordinators\ContentItemDriverCoordinator.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="ContentManagement\Drivers\ContentItemTemplateResult.cs">
|
<Compile Include="ContentManagement\Drivers\ContentItemTemplateResult.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -209,9 +203,6 @@
|
|||||||
<Compile Include="ContentManagement\Drivers\ContentLocation.cs" />
|
<Compile Include="ContentManagement\Drivers\ContentLocation.cs" />
|
||||||
<Compile Include="ContentManagement\FieldStorage\FieldStorageProviderSelector.cs" />
|
<Compile Include="ContentManagement\FieldStorage\FieldStorageProviderSelector.cs" />
|
||||||
<Compile Include="ContentManagement\Drivers\IContentFieldDriver.cs" />
|
<Compile Include="ContentManagement\Drivers\IContentFieldDriver.cs" />
|
||||||
<Compile Include="ContentManagement\Drivers\IContentItemDriver.cs">
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="ContentManagement\Drivers\IContentPartDriver.cs" />
|
<Compile Include="ContentManagement\Drivers\IContentPartDriver.cs" />
|
||||||
<Compile Include="ContentManagement\FieldStorage\IFieldStorage.cs" />
|
<Compile Include="ContentManagement\FieldStorage\IFieldStorage.cs" />
|
||||||
<Compile Include="ContentManagement\FieldStorage\IFieldStorageProvider.cs" />
|
<Compile Include="ContentManagement\FieldStorage\IFieldStorageProvider.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user