Changing some method names, adding zone helpers for item editor template

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4043117
This commit is contained in:
loudej
2009-12-03 22:35:45 +00:00
parent 9f81c16228
commit edcec5a480
46 changed files with 309 additions and 207 deletions

View File

@@ -91,7 +91,7 @@ namespace Orchard.Blogs.Controllers {
return new NotFoundResult();
var model = new BlogEditViewModel { Blog = blog };
model.ItemView = _contentManager.GetEditors(model.Blog.ContentItem, "");
model.ItemView = _contentManager.GetEditorViewModel(model.Blog.ContentItem, "");
return View(model);
}
@@ -104,7 +104,7 @@ namespace Orchard.Blogs.Controllers {
return new NotFoundResult();
var model = new BlogEditViewModel { Blog = blog };
model.ItemView = _contentManager.UpdateEditors(model.Blog.ContentItem, "",this);
model.ItemView = _contentManager.UpdateEditorViewModel(model.Blog.ContentItem, "",this);
IValueProvider values = input.ToValueProvider();
if (!TryUpdateModel(model, values))

View File

@@ -60,7 +60,7 @@ namespace Orchard.Blogs.Controllers {
if (post == null)
return new NotFoundResult();
return View(new BlogPostViewModel { Blog = blog, Post = post, ItemView = _contentManager.GetDisplays(post.ContentItem, null, "detail") });
return View(new BlogPostViewModel { Blog = blog, Post = post, ItemView = _contentManager.GetDisplayViewModel(post.ContentItem, null, "detail") });
}
public ActionResult Create(string blogSlug) {
@@ -70,7 +70,7 @@ namespace Orchard.Blogs.Controllers {
if (blog == null)
return new NotFoundResult();
return View(new CreateBlogPostViewModel { Blog = blog, ItemView = _contentManager.GetEditors(_contentManager.New("blogpost"), null) });
return View(new CreateBlogPostViewModel { Blog = blog, ItemView = _contentManager.GetEditorViewModel(_contentManager.New("blogpost"), null) });
}
[HttpPost]
@@ -85,12 +85,12 @@ namespace Orchard.Blogs.Controllers {
return new NotFoundResult();
if (ModelState.IsValid == false) {
model.ItemView = _contentManager.UpdateEditors(_contentManager.New("blogpost"), null, this);
model.ItemView = _contentManager.UpdateEditorViewModel(_contentManager.New("blogpost"), null, this);
return View(model);
}
BlogPost blogPost = _blogPostService.Create(model.ToCreateBlogPostParams(blog));
model.ItemView = _contentManager.UpdateEditors(blogPost, null, this);
model.ItemView = _contentManager.UpdateEditorViewModel(blogPost, null, this);
//TEMP: (erikpo) ensure information has committed for this record
var session = _sessionLocator.For(typeof(BlogPostRecord));
@@ -115,7 +115,7 @@ namespace Orchard.Blogs.Controllers {
return new NotFoundResult();
var model = new BlogPostEditViewModel { Blog = blog, Post = post };
model.ItemView = _contentManager.GetEditors(model.Post.ContentItem, null);
model.ItemView = _contentManager.GetEditorViewModel(model.Post.ContentItem, null);
return View(model);
}
@@ -136,7 +136,7 @@ namespace Orchard.Blogs.Controllers {
return new NotFoundResult();
var model = new BlogPostEditViewModel { Blog = blog, Post = post };
model.ItemView = _contentManager.UpdateEditors(model.Post.ContentItem, null, this);
model.ItemView = _contentManager.UpdateEditorViewModel(model.Post.ContentItem, null, this);
IValueProvider values = input.ToValueProvider();
TryUpdateModel(model, values);

View File

@@ -16,21 +16,21 @@ namespace Orchard.Comments.Models {
Filters.Add(new ActivatingFilter<HasComments>("blogpost"));
}
protected override void GetDisplays(GetDisplaysContext context) {
protected override void GetDisplayViewModel(GetDisplayViewModelContext context) {
if (context.ContentItem.Has<HasComments>() == false) {
return;
}
context.AddDisplay(new TemplateViewModel(context.ContentItem.Get<HasComments>()));
}
protected override void GetEditors(GetEditorsContext context) {
protected override void GetEditorViewModel(GetEditorViewModelContext context) {
if (context.ContentItem.Has<HasComments>() == false) {
return;
}
context.AddEditor(new TemplateViewModel(context.ContentItem.Get<HasComments>()));
}
protected override void UpdateEditors(UpdateContentContext context) {
protected override void UpdateEditorViewModel(UpdateEditorViewModelContext context) {
if (context.ContentItem.Has<HasComments>() == false) {
return;
}

View File

@@ -36,8 +36,8 @@ namespace Orchard.DevTools.Controllers {
.Select(x => x.GetType())
.SelectMany(x => AllTypes(x))
.Distinct();
model.DisplayView = _contentManager.GetDisplays(model.Item, null, null);
model.EditorView = _contentManager.GetEditors(model.Item, null);
model.DisplayView = _contentManager.GetDisplayViewModel(model.Item, null, null);
model.EditorView = _contentManager.GetEditorViewModel(model.Item, null);
return View(model);
}

View File

@@ -3,10 +3,10 @@ using Orchard.Models.ViewModels;
namespace Orchard.DevTools.Models {
public class DebugLinkProvider : ContentProvider {
protected override void GetDisplays(GetDisplaysContext context) {
protected override void GetDisplayViewModel(GetDisplayViewModelContext context) {
context.AddDisplay(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { ZoneName = "last", Position = "10" });
}
protected override void GetEditors(GetEditorsContext context) {
protected override void GetEditorViewModel(GetEditorViewModelContext context) {
context.AddEditor(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { ZoneName = "last", Position = "10" });
}
}

View File

@@ -78,23 +78,6 @@
</li>
<%}%>
</ul>
<h3>
Editors</h3>
<ul>
<%foreach (var editor in Model.Editors) {%>
<li><span style="font-weight: bold">
<%=Html.Encode(editor.Prefix) %></span>
<%=Html.Encode(editor.Model.GetType().Name) %>
(<%=Html.Encode(editor.Model.GetType().Namespace) %>)
Prefix:<%=Html.Encode(editor.Prefix ?? "(null)")%>
Position:<%=Html.Encode(editor.Position??"(null)") %>
<div style="margin-left: 20px; border: solid 1px black;">
<%=Html.EditorFor(x=>editor.Model, editor.TemplateName, editor.Prefix) %>
</div>
</li>
<%
}%>
</ul>
<h3>
Displays</h3>
<ul>
@@ -104,6 +87,7 @@
<%=Html.Encode(display.Model.GetType().Name)%>
(<%=Html.Encode(display.Model.GetType().Namespace)%>)
Prefix:<%=Html.Encode(display.Prefix ?? "(null)")%>
Zone:<%=Html.Encode(display.ZoneName ?? "(null)")%>
Position:<%=Html.Encode(display.Position ?? "(null)")%>
<div style="margin-left: 20px; border: solid 1px black;">
<%=Html.DisplayFor(x => display.Model, display.TemplateName, display.Prefix)%>
@@ -112,6 +96,24 @@
<%
}%>
</ul>
<h3>
Editors</h3>
<ul>
<%foreach (var editor in Model.Editors) {%>
<li><span style="font-weight: bold">
<%=Html.Encode(editor.Prefix) %></span>
<%=Html.Encode(editor.Model.GetType().Name) %>
(<%=Html.Encode(editor.Model.GetType().Namespace) %>)
Prefix:<%=Html.Encode(editor.Prefix ?? "(null)")%>
Zone:<%=Html.Encode(editor.ZoneName ?? "(null)")%>
Position:<%=Html.Encode(editor.Position??"(null)") %>
<div style="margin-left: 20px; border: solid 1px black;">
<%=Html.EditorFor(x=>editor.Model, editor.TemplateName, editor.Prefix) %>
</div>
</li>
<%
}%>
</ul>
</div>
<div id="footer">
<% Html.Include("footer"); %>

View File

@@ -23,7 +23,7 @@ namespace Orchard.Media.Models {
settings.Record.RootMediaFolder = "~/Media";
}
protected override void GetEditors(GetEditorsContext context) {
protected override void GetEditorViewModel(GetEditorViewModelContext context) {
var model = context.ContentItem.As<MediaSettings>();
if (model == null)
return;
@@ -31,7 +31,7 @@ namespace Orchard.Media.Models {
context.AddEditor(new TemplateViewModel(model.Record, "MediaSettings"));
}
protected override void UpdateEditors(UpdateContentContext context) {
protected override void UpdateEditorViewModel(UpdateEditorViewModelContext context) {
var model = context.ContentItem.As<MediaSettings>();
if (model == null)
return;

View File

@@ -29,7 +29,7 @@ namespace Orchard.Roles.Models {
});
}
protected override void GetEditors(GetEditorsContext context) {
protected override void GetEditorViewModel(GetEditorViewModelContext context) {
var userRoles = context.ContentItem.As<UserRoles>();
if (userRoles != null) {
var roles =
@@ -50,7 +50,7 @@ namespace Orchard.Roles.Models {
}
}
protected override void UpdateEditors(UpdateContentContext context) {
protected override void UpdateEditorViewModel(UpdateEditorViewModelContext context) {
var userRoles = context.ContentItem.As<UserRoles>();
if (userRoles != null) {
var viewModel = new UserRolesViewModel();

View File

@@ -32,7 +32,7 @@ namespace Orchard.Sandbox.Controllers {
Pages = _contentManager.Query<SandboxPage, SandboxPageRecord>()
.OrderBy(x => x.Name)
.List()
.Select(x => _contentManager.GetDisplays(x, null, "SummaryList"))
.Select(x => _contentManager.GetDisplayViewModel(x, null, "SummaryList"))
};
return View(model);
}
@@ -40,7 +40,7 @@ namespace Orchard.Sandbox.Controllers {
public ActionResult Show(int id) {
var page = _contentManager.Get<SandboxPage>(id);
var model = new PageShowViewModel {
Page = _contentManager.GetDisplays(page, null, "Detail")
Page = _contentManager.GetDisplayViewModel(page, null, "Detail")
};
return View(model);
}
@@ -80,7 +80,7 @@ namespace Orchard.Sandbox.Controllers {
var page = _contentManager.Get<SandboxPage>(id);
var model = new PageEditViewModel {
Page = _contentManager.GetEditors(page, null)
Page = _contentManager.GetEditorViewModel(page, null)
};
return View(model);
}
@@ -95,7 +95,7 @@ namespace Orchard.Sandbox.Controllers {
var page = _contentManager.Get<SandboxPage>(id);
var model = new PageEditViewModel {
Page = _contentManager.UpdateEditors(page, null, this)
Page = _contentManager.UpdateEditorViewModel(page, null, this)
};
if (!ModelState.IsValid)
return View(model);

View File

@@ -4,6 +4,7 @@ using Orchard.Core.Common.Models;
using Orchard.Data;
using Orchard.Models;
using Orchard.Models.Driver;
using Orchard.Models.ViewModels;
namespace Orchard.Sandbox.Models {
public class SandboxContentProvider : ContentProvider {
@@ -44,6 +45,8 @@ namespace Orchard.Sandbox.Models {
});
});
OnGetDisplayViewModel<SandboxPage>((context, page) =>
context.AddDisplay(new TemplateViewModel(page) { TemplateName = "ContentItemTitle", ZoneName = "title" }));

View File

@@ -75,6 +75,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="Package.txt" />
<Content Include="Views\Models\DisplayTemplates\ContentItemTitle.ascx" />
<Content Include="Views\Models\DisplayTemplates\SandboxPageSummary.ascx" />
<Content Include="Views\Models\DisplayTemplates\SandboxPage.ascx" />
<Content Include="Views\Models\EditorTemplates\SandboxPage.ascx" />

View File

@@ -0,0 +1,6 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IContent>" %>
<%@ Import Namespace="Orchard.Mvc.Html" %>
<%@ Import Namespace="Orchard.Sandbox.Models" %>
<%@ Import Namespace="Orchard.Models.ViewModels" %>
<%@ Import Namespace="Orchard.Models" %>
<h1><%=Html.ItemDisplayLink(Model) %></h1>

View File

@@ -2,21 +2,23 @@
<%@ Import Namespace="Orchard.Mvc.Html" %>
<%@ Import Namespace="Orchard.Sandbox.Models" %>
<%@ Import Namespace="Orchard.Models.ViewModels" %>
<%@ Import Namespace="Orchard.Models" %>
<%=Html.DisplayZone("before")%>
<div class="item">
<%=Html.DisplayZone("first")%>
<h1>
<%=Html.Encode(Model.Item.Record.Name) %></h1>
<div class="title">
<%=Html.DisplayZone("title")%>
</div>
<%=Html.DisplayZone("metatop")%>
<div class="body">
<%=Html.DisplayZone("body")%></div>
<%=Html.DisplayZone("metabottom")%>
<div class="actions">
<%=Html.ItemEditLink("Edit this page", Model.Item) %>,
<%=Html.ItemEditLink("Edit this page", Model.Item) %>
<%=Html.ActionLink("Return to list", "index") %>
<%=Html.DisplayZone("actions") %></div>
<%=Html.DisplayZonesExcept("last","after") %>
<%=Html.DisplayZone("last")%>
<%=Html.DisplayZone("actions") %>
</div>
<div class="body">
<%=Html.DisplayZone("body")%>
</div>
<%=Html.DisplayZone("metabottom")%>
<div class="footer">
<%=Html.DisplayZonesExcept("last") %>
<%=Html.DisplayZone("last")%>
</div>
</div>
<%=Html.DisplayZone("after")%>

View File

@@ -2,9 +2,9 @@
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Sandbox.Models" %>
<%@ Import Namespace="Orchard.Models.ViewModels" %>
<%@ Import Namespace="Orchard.Models" %>
<h2><%=Html.ItemDisplayLink(Model.Item) %></h2>
<%--<%foreach (var display in Model.Displays) { %>
<%=Html.DisplayFor(m=>display.Model, display.TemplateName, display.Prefix??"") %>
<%} %>
--%>
<div class="item">
<%=Html.DisplayZone("title") %>
<%=Html.DisplayZone("metatop")%>
<%=Html.DisplayZone("body") %>
</div>

View File

@@ -1,14 +1,10 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemEditorViewModel<SandboxPage>>" %>
<%@ Import Namespace="Orchard.Mvc.Html" %>
<%@ Import Namespace="Orchard.Sandbox.Models" %>
<%@ Import Namespace="Orchard.Models.ViewModels" %>
<%@ Import Namespace="Orchard.Models" %>
<li>
<%=Html.LabelFor(m => m.Item.Record.Name)%>
<%=Html.EditorFor(m => m.Item.Record.Name)%>
<%=Html.LabelFor(m => m.Item.Record.Name)%>
<%=Html.EditorFor(m => m.Item.Record.Name)%>
</li>
<%foreach (var e in Model.Editors) { %>
<%=Html.EditorFor(m=>e.Model, e.TemplateName, e.Prefix??"") %>
<%} %>
<%=Html.EditorZonesAny()%>

View File

@@ -20,7 +20,6 @@
</div>
<div id="main">
<% Html.RenderPartial("Messages", Model.Messages); %>
<%= Html.DisplayForItem(m => m.Page) %>
</div>
<div id="footer">

View File

@@ -17,11 +17,14 @@ namespace Orchard.Tags.Controllers {
public class HomeController : Controller {
private readonly ITagService _tagService;
private readonly IAuthorizer _authorizer;
private readonly IContentManager _contentManager;
private readonly INotifier _notifier;
public HomeController(ITagService tagService, INotifier notifier, IAuthorizer authorizer) {
public HomeController(ITagService tagService, INotifier notifier, IAuthorizer authorizer,
IContentManager contentManager) {
_tagService = tagService;
_authorizer = authorizer;
_contentManager = contentManager;
_notifier = notifier;
Logger = NullLogger.Instance;
T = NullLocalizer.Instance;
@@ -110,7 +113,7 @@ namespace Orchard.Tags.Controllers {
IEnumerable<IContent> contents = _tagService.GetTaggedContentItems(tag.Id).ToList();
var viewModel = new TagsSearchViewModel {
TagName = tag.TagName,
Contents = contents,
Contents = contents.Select(x=>_contentManager.GetDisplayViewModel(x, null, "SummaryTag")),
};
return View(viewModel);

View File

@@ -30,20 +30,20 @@ namespace Orchard.Tags.Models {
Filters.Add(new ActivatingFilter<HasTags>("sandboxpage"));
Filters.Add(new ActivatingFilter<HasTags>("blogpost"));
OnGetDisplays<HasTags>((context, hasTags) => {
OnGetDisplayViewModel<HasTags>((context, hasTags) => {
context.AddDisplay(new TemplateViewModel(hasTags) { ZoneName="metatop", Position = "2", TemplateName = "HasTagsList" });
context.AddDisplay(new TemplateViewModel(hasTags) { ZoneName = "metabottom", Position = "5" });
});
}
protected override void GetEditors(GetEditorsContext context) {
protected override void GetEditorViewModel(GetEditorViewModelContext context) {
if (context.ContentItem.Has<HasTags>() == false) {
return;
}
context.AddEditor(new TemplateViewModel(context.ContentItem.Get<HasTags>()));
}
protected override void UpdateEditors(UpdateContentContext context) {
protected override void UpdateEditorViewModel(UpdateEditorViewModelContext context) {
if (context.ContentItem.Has<HasTags>() == false) {
return;
}

View File

@@ -1,10 +1,11 @@
using System.Collections.Generic;
using Orchard.Models;
using Orchard.Models.ViewModels;
using Orchard.Mvc.ViewModels;
namespace Orchard.Tags.ViewModels {
public class TagsSearchViewModel : BaseViewModel {
public string TagName { get; set; }
public IEnumerable<IContent> Contents { get; set; }
public IEnumerable<ItemDisplayViewModel<IContent>> Contents { get; set; }
}
}

View File

@@ -6,6 +6,6 @@
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<h2>List of contents tagged with <%= Model.TagName %></h2><%
foreach (var contentItem in Model.Contents) { %>
<%=Html.ItemDisplayLink(contentItem)%><%
<%=Html.DisplayForItem(x=>contentItem)%><%
} %>
</asp:Content>

View File

@@ -2,7 +2,7 @@
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Tags.Models"%>
<h3>Tags</h3>
<div class="yui-g">
<% Html.BeginForm("Update", "Home", new { area = "Orchard.Tags" }); %><%= Html.ValidationSummary() %> <div class="yui-g">
<h2 class="separator">Edit Tags</h2>
<%
string tags = "";

View File

@@ -49,7 +49,7 @@ namespace Orchard.Users.Controllers {
public ActionResult Create() {
var user = _contentManager.New("user");
var model = new UserCreateViewModel {
ItemView = _contentManager.GetEditors(user, null)
ItemView = _contentManager.GetEditorViewModel(user, null)
};
return View(model);
}
@@ -61,7 +61,7 @@ namespace Orchard.Users.Controllers {
ModelState.AddModelError("ConfirmPassword", T("Password confirmation must match").ToString());
}
if (ModelState.IsValid == false) {
model.ItemView = _contentManager.UpdateEditors(_contentManager.New("user"), null, this);
model.ItemView = _contentManager.UpdateEditorViewModel(_contentManager.New("user"), null, this);
return View(model);
}
var user = _membershipService.CreateUser(new CreateUserParams(
@@ -69,7 +69,7 @@ namespace Orchard.Users.Controllers {
model.Password,
model.Email,
null, null, true));
model.ItemView = _contentManager.UpdateEditors(user, null, this);
model.ItemView = _contentManager.UpdateEditorViewModel(user, null, this);
if (ModelState.IsValid == false) {
//TODO: rollback transaction
return View(model);
@@ -80,14 +80,14 @@ namespace Orchard.Users.Controllers {
public ActionResult Edit(int id) {
var model = new UserEditViewModel { User = _contentManager.Get<User>(id) };
model.ItemView = _contentManager.GetEditors(model.User.ContentItem, null);
model.ItemView = _contentManager.GetEditorViewModel(model.User.ContentItem, null);
return View(model);
}
[HttpPost]
public ActionResult Edit(int id, FormCollection input) {
var model = new UserEditViewModel { User = _contentManager.Get<User>(id) };
model.ItemView = _contentManager.UpdateEditors(model.User.ContentItem, null, this);
model.ItemView = _contentManager.UpdateEditorViewModel(model.User.ContentItem, null, this);
if (!TryUpdateModel(model, input.ToValueProvider())) {
return View(model);