mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 11:44:58 +08:00
- Blogs: Go for checkbox for closing comments and enabling them in the comment editors (was links previously).
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4043226
This commit is contained in:
@@ -1,17 +1,20 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using Orchard.Data;
|
||||
using Orchard.Models;
|
||||
using Orchard.Models.Driver;
|
||||
using Orchard.Models.ViewModels;
|
||||
using Orchard.Comments.Services;
|
||||
|
||||
namespace Orchard.Comments.Models {
|
||||
public class HasCommentsProvider : ContentProvider {
|
||||
private readonly IRepository<Comment> _commentsRepository;
|
||||
private readonly IRepository<ClosedComments> _closedCommentsRepository;
|
||||
private readonly ICommentService _commentService;
|
||||
|
||||
public HasCommentsProvider(IRepository<Comment> commentsRepository, IRepository<ClosedComments> closedCommentsRepository) {
|
||||
public HasCommentsProvider(IRepository<Comment> commentsRepository, IRepository<ClosedComments> closedCommentsRepository, ICommentService commentService) {
|
||||
_commentsRepository = commentsRepository;
|
||||
_closedCommentsRepository = closedCommentsRepository;
|
||||
_commentService = commentService;
|
||||
Filters.Add(new ActivatingFilter<HasComments>("sandboxpage"));
|
||||
Filters.Add(new ActivatingFilter<HasComments>("blogpost"));
|
||||
}
|
||||
@@ -34,6 +37,19 @@ namespace Orchard.Comments.Models {
|
||||
if (context.ContentItem.Has<HasComments>() == false) {
|
||||
return;
|
||||
}
|
||||
CommentsViewModel viewModel = new CommentsViewModel();
|
||||
context.Updater.TryUpdateModel(viewModel, String.Empty, null, null);
|
||||
bool closed = viewModel.Closed == null ? false : true;
|
||||
bool currentStatus = _commentService.CommentsClosedForCommentedContent(context.ContentItem.Id);
|
||||
if (currentStatus != closed) {
|
||||
if (closed) {
|
||||
_commentService.CloseCommentsForCommentedContent(context.ContentItem.Id);
|
||||
}
|
||||
else {
|
||||
_commentService.EnableCommentsForCommentedContent(context.ContentItem.Id);
|
||||
}
|
||||
}
|
||||
|
||||
context.AddEditor(new TemplateViewModel(context.ContentItem.Get<HasComments>()));
|
||||
}
|
||||
|
||||
@@ -48,5 +64,9 @@ namespace Orchard.Comments.Models {
|
||||
comments.Closed = true;
|
||||
}
|
||||
}
|
||||
|
||||
public class CommentsViewModel {
|
||||
public String Closed { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,25 +8,13 @@
|
||||
new { Area = "Orchard.Comments", Controller = "Admin", id = Model.ContentItem.Id, returnUrl = Context.Request.Url }
|
||||
) %>
|
||||
- <a href="#">0 pending</a><% } %></legend>
|
||||
<label for="Closed"><%=Html.EditorFor(hc => hc.Closed) %> Close comments</label>
|
||||
<label for="Closed">
|
||||
<% if (Model.Closed) {%>
|
||||
<input id="Closed" name="Closed" type="checkbox" checked="checked" />
|
||||
<% } else { %>
|
||||
<input id="Closed" name="Closed" type="checkbox" />
|
||||
<% } %>
|
||||
Comments are disabled for this post
|
||||
</label>
|
||||
</fieldset>
|
||||
<%--
|
||||
todo: (heskew) would be better to have a ↑ checkbox ↑ instead of a ↓ button ↓
|
||||
<div class="actions">
|
||||
<% if (Model.Closed) {
|
||||
%><%=Html.ActionLink("Enable Comments", "Enable", new { commentedItemId = Model.Closed }, new { @class = "button" })%><%
|
||||
} else {
|
||||
%><%=Html.ActionLink("Close Comments", "Close", new { commentedItemId = Model.Closed }, new { @class = "button remove" })%><%
|
||||
} %>
|
||||
</div>
|
||||
--%><%--
|
||||
todo: (heskew) shouldn't have comments when editing a content item. besides being noisy/distracting it throw other issues like paging into the mix
|
||||
<ol class="contentItems">
|
||||
<% foreach (var comment in Model.Comments) {%>
|
||||
<li>
|
||||
<p><%= comment.CommentText %><br />
|
||||
Posted by <%= comment.UserName %> on <%= comment.CommentDate.ToLocalTime() %><br />
|
||||
<%=Html.ActionLink("Delete", "Delete", new { Area = "Orchard.Comments", Controller = "Admin", id = comment.Id, returnUrl = Context.Request.Url }, new { @class = "ibutton remove" })%></p>
|
||||
</li>
|
||||
<% } %>
|
||||
</ol>--%>
|
||||
|
||||
|
Reference in New Issue
Block a user