diff --git a/src/Orchard.Web/Core/Common/Models/BodyAspect.cs b/src/Orchard.Web/Core/Common/Models/BodyAspect.cs index b2e8f4057..ca1e76e01 100644 --- a/src/Orchard.Web/Core/Common/Models/BodyAspect.cs +++ b/src/Orchard.Web/Core/Common/Models/BodyAspect.cs @@ -3,5 +3,9 @@ using Orchard.Models; namespace Orchard.Core.Common.Models { public class BodyAspect : ContentPart { + public string Text { + get { return Record.Text; } + set { Record.Text = value; } + } } } diff --git a/src/Orchard.Web/Core/Common/Models/RoutableAspect.cs b/src/Orchard.Web/Core/Common/Models/RoutableAspect.cs index 0ecdcea81..072ba1d87 100644 --- a/src/Orchard.Web/Core/Common/Models/RoutableAspect.cs +++ b/src/Orchard.Web/Core/Common/Models/RoutableAspect.cs @@ -3,7 +3,13 @@ using Orchard.Models; namespace Orchard.Core.Common.Models { public class RoutableAspect : ContentPart { - public string Title { get { return Record.Title; } } - public string Slug { get { return Record.Slug; } } + public string Title { + get { return Record.Title; } + set { Record.Title = value; } + } + public string Slug { + get { return Record.Slug; } + set { Record.Slug = value; } + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Common/ViewModels/BodyEditorViewModel.cs b/src/Orchard.Web/Core/Common/ViewModels/BodyEditorViewModel.cs index 7943f7119..20a6251bf 100644 --- a/src/Orchard.Web/Core/Common/ViewModels/BodyEditorViewModel.cs +++ b/src/Orchard.Web/Core/Common/ViewModels/BodyEditorViewModel.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using Orchard.Core.Common.Models; +using Orchard.Core.Common.Models; namespace Orchard.Core.Common.ViewModels { public class BodyEditorViewModel { diff --git a/src/Orchard.Web/Core/Common/Views/Models/EditorTemplates/BodyAspect.ascx b/src/Orchard.Web/Core/Common/Views/Models/EditorTemplates/BodyAspect.ascx index 622675085..d77355d28 100644 --- a/src/Orchard.Web/Core/Common/Views/Models/EditorTemplates/BodyAspect.ascx +++ b/src/Orchard.Web/Core/Common/Views/Models/EditorTemplates/BodyAspect.ascx @@ -3,5 +3,7 @@ <%@ Import Namespace="Orchard.Core.Common.Models" %> <%@ Import Namespace="Orchard.Core.Settings.ViewModels" %> <%@ Import Namespace="Orchard.Utility" %> -

Body

- +
+ + <%=Html.EditorFor(m=>m.Text, Model.TextEditorTemplate) %> +
\ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Controllers/BlogPostController.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Controllers/BlogPostController.cs index f2bebce07..b52c958d6 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Controllers/BlogPostController.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Controllers/BlogPostController.cs @@ -114,8 +114,9 @@ namespace Orchard.Blogs.Controllers { if (blog == null) return new NotFoundResult(); - model.BlogPost = _contentManager.UpdateEditorViewModel(_contentManager.New("blogpost"), null, this); - model.BlogPost.Item.Blog = blog; + BlogPost blogPost = _contentManager.New("blogpost"); + blogPost.Blog = blog; + model.BlogPost = _contentManager.UpdateEditorViewModel(blogPost, null, this); if (!ModelState.IsValid) return View(model); diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs index a9ecf4f60..65c5b189d 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs @@ -9,32 +9,29 @@ namespace Orchard.Blogs.Models { public class BlogPost : ContentPart { public readonly static ContentType ContentType = new ContentType { Name = "blogpost", DisplayName = "Blog Post" }; - public Blog Blog { get; set; } - [HiddenInput(DisplayValue = false)] public int Id { get { return ContentItem.Id; } } [Required] public string Title { get { return this.As().Title; } - set { this.As().Record.Title = value; } + set { this.As().Title = value; } } [Required] public string Slug { get { return this.As().Slug; } - set { this.As().Record.Slug = value; } + set { this.As().Slug = value; } } - [Required] - public string Body { - get { return this.As().Record.Text; } - set { this.As().Record.Text = value; } + public Blog Blog { + get { return this.As().Container.As(); } + set { this.As().Container = value; } } public IUser Creator { - get { return this.As().OwnerField.Value; } - set { this.As().Record.OwnerId = value.Id; } + get { return this.As().Owner; } + set { this.As().Owner = value; } } public DateTime? Published diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostHandler.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostHandler.cs index 4410834cd..89c68e311 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostHandler.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostHandler.cs @@ -26,8 +26,6 @@ namespace Orchard.Blogs.Models { Filters.Add(new StorageFilter(repository)); Filters.Add(new ContentItemTemplates("BlogPost", "Detail", "Summary", "SummaryAdmin")); - OnLoaded((context, bp) => bp.Blog = contentManager.Get(bp.Record.Blog.Id)); - OnGetItemMetadata((context, bp) => { context.Metadata.DisplayText = bp.Title; context.Metadata.DisplayRouteValues = diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostRecord.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostRecord.cs index 651a51a22..0f58d76c5 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostRecord.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostRecord.cs @@ -3,7 +3,6 @@ using Orchard.Models.Records; namespace Orchard.Blogs.Models { public class BlogPostRecord : ContentPartRecord { - public virtual BlogRecord Blog { get; set; } public virtual DateTime? Published { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Services/BlogPostService.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Services/BlogPostService.cs index aa652e143..5a976ca8e 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Services/BlogPostService.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Services/BlogPostService.cs @@ -9,32 +9,24 @@ namespace Orchard.Blogs.Services { public class BlogPostService : IBlogPostService { private readonly IContentManager _contentManager; private readonly IRepository _blogPostRepository; - private readonly IRepository _routableRepository; - public BlogPostService(IContentManager contentManager, IRepository blogPostRepository, IRepository routableRepository) { + public BlogPostService(IContentManager contentManager, IRepository blogPostRepository) { _contentManager = contentManager; _blogPostRepository = blogPostRepository; - _routableRepository = routableRepository; } public BlogPost Get(Blog blog, string slug) { - RoutableRecord record = - _routableRepository.Get(r => r.ContentItemRecord.ContentType.Name == "blogpost" && r.Slug == slug); - BlogPost blogPost = record != null ? _contentManager.Get(record.Id) : null; - - return blogPost != null && blogPost.Record.Blog.Id == blog.ContentItem.Id ? blogPost : null; + return _contentManager.Query() + .Join().Where(x => x.Slug == slug) + .Join().Where(x => x.Container == blog.Record.ContentItemRecord) + .List().FirstOrDefault(); } public IEnumerable Get(Blog blog) { - //TODO: (erikpo) Figure out how to sort by published date - IEnumerable records = - _routableRepository.Fetch(rr => rr.ContentItemRecord.ContentType.Name == "blogpost" - /*, bpr => bpr.Asc(bpr2 => bpr2.Published.GetValueOrDefault(new DateTime(2099, 1, 1)))*/); - - //TODO: (erikpo) Need to filter by blog in the line above instead of filtering here - return - records.Select(r => _contentManager.Get(r.Id).As()).Where( - bp => bp.Record.Blog.Id == blog.ContentItem.Id); + return _contentManager.Query() + .Join().Where(x => x.Container == blog.Record.ContentItemRecord) + .OrderByDescending(x=>x.CreatedUtc) + .List(); } public void Delete(BlogPost blogPost) { diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummary.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummary.ascx index be5d48757..b331e9cf2 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummary.ascx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummary.ascx @@ -1,4 +1,6 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl>" %> +<%@ Import Namespace="Orchard.Models"%> +<%@ Import Namespace="Orchard.Core.Common.Models"%> <%@ Import Namespace="Orchard.Models.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> @@ -7,4 +9,4 @@ <%=Html.PublishedState(Model.Item) %> | ?? comments -
<%=Model.Item.Body ?? "

there's no content for this blog post

" %>
\ No newline at end of file +
<%=Model.Item.As().Text ?? "

there's no content for this blog post

" %>
\ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummaryAdmin.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummaryAdmin.ascx index 39c7570e5..f313c5432 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummaryAdmin.ascx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/DisplayTemplates/BlogPostSummaryAdmin.ascx @@ -1,4 +1,6 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl>" %> +<%@ Import Namespace="Orchard.Models"%> +<%@ Import Namespace="Orchard.Core.Common.Models"%> <%@ Import Namespace="Orchard.Models.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> @@ -7,7 +9,7 @@ <%=Html.PublishedState(Model.Item) %> | ?? comments -
<%=Model.Item.Body ?? "

there's no content for this blog post

"%>
+
<%=Model.Item.As().Text ?? "

there's no content for this blog post

"%>

<%-- todo: (heskew) make into a ul --%> diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/EditorTemplates/BlogPostFields.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/EditorTemplates/BlogPostFields.ascx index 17ca48193..d6056f71e 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/EditorTemplates/BlogPostFields.ascx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Models/EditorTemplates/BlogPostFields.ascx @@ -12,13 +12,13 @@

<%=Html.TextBoxFor(m => m.Slug, new { id = "permalink", @class = "text" })%> -
+ <%--
<%-- - [still needed]--%> + [still needed]-- %> <%=Html.TextAreaFor(m => m.Body, new { id = "body", @class = "html" })%> -
+ --%>
diff --git a/src/Orchard.Web/Packages/TinyMce/Views/Models/EditorTemplates/TinyMceTextEditor.ascx b/src/Orchard.Web/Packages/TinyMce/Views/Models/EditorTemplates/TinyMceTextEditor.ascx index 2799fb023..133085c2f 100644 --- a/src/Orchard.Web/Packages/TinyMce/Views/Models/EditorTemplates/TinyMceTextEditor.ascx +++ b/src/Orchard.Web/Packages/TinyMce/Views/Models/EditorTemplates/TinyMceTextEditor.ascx @@ -1,11 +1,8 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <%@ Import Namespace="System.Web.Mvc.Html" %> - - - -<%=Html.TextArea("", Model, 25, 80, new {}) %> - ---%> +<%=Html.TextArea("", Model, 25, 80, new { @class = "html" }) %> +<%-- - +--%> \ No newline at end of file