mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +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\TextContentFieldEditorViewModel.cs" />
|
||||
<Compile Include="Contents\Controllers\ItemController.cs" />
|
||||
<Compile Include="Contents\Drivers\ContentsDriver.cs" />
|
||||
<Compile Include="Contents\Extensions\MetaDataExtensions.cs" />
|
||||
<Compile Include="Contents\Handlers\ContentsHandler.cs" />
|
||||
<Compile Include="Contents\Permissions.cs" />
|
||||
@@ -196,7 +195,6 @@
|
||||
<Compile Include="Scheduling\Models\Task.cs" />
|
||||
<Compile Include="Settings\DataMigrations\SettingsDataMigration.cs" />
|
||||
<Compile Include="Settings\ViewModels\SiteCulturesViewModel.cs" />
|
||||
<Compile Include="Settings\Drivers\SiteSettingsPartDriver.cs" />
|
||||
<Compile Include="Settings\Metadata\ContentDefinitionManager.cs" />
|
||||
<Compile Include="Settings\Metadata\Records\ContentFieldDefinitionRecord.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\AdminController.cs" />
|
||||
<Compile Include="DataMigrations\UsersDataMigration.cs" />
|
||||
<Compile Include="Drivers\UserPartDriver.cs" />
|
||||
<Compile Include="Models\UserPart.cs" />
|
||||
<Compile Include="Handlers\UserPartHandler.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 Include="ContentManagement\Drivers\ContentFieldDriver.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">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -209,9 +203,6 @@
|
||||
<Compile Include="ContentManagement\Drivers\ContentLocation.cs" />
|
||||
<Compile Include="ContentManagement\FieldStorage\FieldStorageProviderSelector.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\FieldStorage\IFieldStorage.cs" />
|
||||
<Compile Include="ContentManagement\FieldStorage\IFieldStorageProvider.cs" />
|
||||
|
Reference in New Issue
Block a user