no comment

This commit is contained in:
Paul Schneider 2017-10-04 23:53:47 +02:00
commit 0e49b13965
54 changed files with 6158 additions and 213 deletions

View file

@ -1,4 +1,4 @@
@model Blog
@model BlogPost
@{
ViewData["Title"] = "Create";

View file

@ -1,4 +1,4 @@
@model Blog
@model BlogPost
@{
ViewData["Title"] = "Delete";
}

View file

@ -0,0 +1,84 @@
@model BlogPost
@{
ViewData["Title"]=Model.Title;
}
<!--
@section scripts {
<script src="~/js/comment.js" asp-append-version="true"></script>
<script>
$(document).ready() {
var doComment = new function(ctrlr, receiverid, comment) {
console.log('commentting:' + comment);
$.post(ctrlr, { Content: comment, Receiver: @Model.Id })
};
}
</script>
}
-->
<div class="container">
<h1 class="blogtitle" ismarkdown>@Model.Title</h1>
<img class="blogphoto" alt="" src="@Model.Photo" >
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="blogpost">
<div markdown="@Model.Content" class="blog"></div>
<hr/>
<div class="meta">
@Html.DisplayFor(model => model.Author)
@Html.DisplayNameFor(model => model.DateModified) :
@Html.DisplayFor(model => model.DateModified)
@Html.DisplayNameFor(model => model.DateCreated) :
@Html.DisplayFor(model => model.DateCreated)
@Component.Invoke("Tagger",Model)
</div>
</div>
<div class="comments">
<!-- @foreach (var comment in model=>model.Comments) {
<div markdown="@Model.Content" class="blogcomment">
</div>
<div markdown="@Model.Content" class="commentauthor">
@Html.Display("ApplicationUser",c.Author)
</div>
}
<form>
<div class="form-horizontal">
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<div class="input-group" >
<input asp-for="Content" class="form-control" placeholder="@SR["DoCommentPlaceHolder"]"/>
<span class="input-group-btn">
<input type="button" value="@SR["DoComment"]" class="btn btn-secondary"
onclick="doComment('@ViewData["apictlr"]',@Model.PostId,$('#Content').val())"
/>
</span>
</div>
</div>
<span asp-validation-for="Content" class="text-danger" >
</span>
<input type="hidden" name="PostId" value="@Model.PostId"/>
<input type="hidden" name="Id" value="@Model.Id"/>
</form>
</div>
-->
</div>
@if (await AuthorizationService.AuthorizeAsync(User, Model, new EditRequirement())) {
<a asp-action="Edit" asp-route-id="@Model.Id" class="btn btn-link">@SR["Edit"]</a>
}
<a asp-action="Index" class="btn btn-link">@SR["Back to List"]</a>

View file

@ -1,31 +1,101 @@
@model Blog
@{
ViewData["Title"]=Model.Title;
}
<div class="blogpost">
<h1 class="blogtitle" ismarkdown>@Model.Title</h1>
<img class="blogphoto" alt="" src="@Model.Photo" >
<div markdown="@Model.Content" class="blog"></div>
<hr/>
<div class="meta">
@Html.DisplayFor(model => model.Author)
@Html.DisplayNameFor(model => model.DateModified) :
@Html.DisplayFor(model => model.DateModified)
@Html.DisplayNameFor(model => model.DateCreated) :
@Html.DisplayFor(model => model.DateCreated)
@Component.Invoke("Tagger",Model)
</div>
</div>
@if (await AuthorizationService.AuthorizeAsync(User, Model, new EditRequirement())) {
<a asp-action="Edit" asp-route-id="@Model.Id" class="btn btn-link">@SR["Edit"]</a>
}
<a asp-action="Index" class="btn btn-link">@SR["Back to List"]</a>
@model BlogPost
@{
ViewData["Title"]=Model.Title;
}
@section header {
<script>
$(document).ready(function() {
$('#cmtBtn').click(function() {
var receiverid = $(this).data('receiverid');
var comment = $('#Comment').val();
var data = {
Id:0,
Content: comment,
PostId: receiverid,
UserCreated: '@User.GetUserId()',
Visible:true
};
console.log('sending:');
console.log(data);
$.ajax({
async: true,
cache: false,
type: 'POST',
method: 'POST',
contentType: "application/json",
data: JSON.stringify(data),
error: function(xhr,data) {
if (xhr.status=400)
{
console.log(xhr.responseJSON);
$('span.field-validation-valid[data-valmsg-for="Content"]').html(
xhr.responseJSON.Content);
} else {
$('span.field-validation-valid[data-valmsg-for="Content"]').html(
"Une erreur est survenue : "+xhr.status+"<br/>"+
"<code><pre>"+xhr.responseText+"</pre></code>"
)
}
},
success: function () {
$('#Comment').val("");
$('span.field-validation-valid[data-valmsg-for="Content"]').empty();
},
url:'@ViewData["apicmtctlr"]'
});
});
})
</script>
}
<div class="container">
<h1 class="blogtitle" ismarkdown>@Model.Title</h1>
<img class="blogphoto" alt="" src="@Model.Photo" >
<div class="blogpost">
<div markdown="@Model.Content" class="blog"></div>
<hr/>
<div class="meta">
@Html.DisplayFor(model => model.Author)
@Html.DisplayNameFor(model => model.DateModified) :
@Html.DisplayFor(model => model.DateModified)
@Html.DisplayNameFor(model => model.DateCreated) :
@Html.DisplayFor(model => model.DateCreated)
@Component.Invoke("Tagger",Model)
</div>
<div class="comments">
@foreach (Comment comment in Model.Comments) {
<div markdown="@comment.Content" class="blogcomment">
</div>
}
<form>
<div class="form-horizontal">
<div class="input-group" >
<input id="Comment" class="form-control" placeholder="@SR["DoCommentPlaceHolder"]"/>
<span class="input-group-btn">
<input type="button" value="@SR["DoComment"]" class="btn btn-secondary"
data-receiverid="@Model.Id" id="cmtBtn"
/>
</span>
</div>
<span asp-validation-for="Content" class="text-danger" >
</span>
</div>
</form>
</div>
</div>
@if (await AuthorizationService.AuthorizeAsync(User, Model, new EditRequirement())) {
<a asp-action="Edit" asp-route-id="@Model.Id" class="btn btn-link">@SR["Edit"]</a>
}
<a asp-action="Index" class="btn btn-link">@SR["Back to List"]</a>
</div>

View file

@ -1,4 +1,4 @@
@model Blog
@model BlogPost
@{
ViewData["Title"] = SR["Blog post edition"];

View file

@ -1,4 +1,4 @@
@model IEnumerable<IGrouping<BlogIndexKey,Blog>>
@model IEnumerable<IGrouping<BlogIndexKey,BlogPost>>
@{
ViewData["Title"] = "Blogs, l'index";
// Regroup!?!
@ -17,6 +17,9 @@
td {
transition: height 1s;
}
[class*="col-"] {
border: solid 1px blue;
}
</style>
}
@section scripts {
@ -50,28 +53,24 @@
<a asp-action="Create">@SR["Create a new article"]</a>
</p>
}
<table class="table">
<tr>
<th>
@SR["Title"]
</th>
<th>
aperçu
</th>
</tr>
<div class="container">
@foreach (var group in Model) {
var title = group.Key.Title;
string secondclass="";
var first = group.First();
string trclass = (first.Visible) ? "visiblepost" : "hiddenpost";
<tr class="@trclass">
<td><a asp-action="Details" asp-route-id="@first.Id" class="bloglink">
<img src="@first.Photo" class="smalltofhol"></a>
<a asp-action="Title" asp-route-id="@title">
<markdown>@first.Title</markdown></a>
</td>
<td>
<div class="row @trclass">
<div class="col-xs-10">
<a asp-action="Details" asp-route-id="@first.Id" class="bloglink">
<img src="@first.Photo" class="smalltofhol"></a>
<a asp-action="Title" asp-route-id="@title">
<markdown>@first.Title</markdown></a>
<markdown>@((first.Content?.Length > 120) ? first.Content.Substring(0, 120) + " ..." : first.Content)</markdown>
<span style="font-size:x-small;">(@first.Author.UserName </span>,
<span style="font-size:xx-small;">
@ -81,23 +80,9 @@
})
</span>
@if (group.Count()>1) {
<div class="sametitle">
Au même titre:
<table>
@foreach (var item in group.Skip(1)) {
trclass = ((item.Visible)?"visiblepost":"hiddenpost");
<tr class="@trclass"><td>le @item.DateModified.ToString("dddd d MMM yyyy à H:mm")</td>
<td><markdown>@((item.Content?.Length > 120) ? item.Content.Substring(0, 120) + " ..." : item.Content)</markdown>
</td>
<td> <a asp-action="Details" asp-route-id="@item.Id" class="btn btn-lg">Details</a>
</td></tr>
} </table></div>
}
</td>
<td>
</div>
<div class="col-xs-2">
<ul class="actiongroup">
@if (await AuthorizationService.AuthorizeAsync(User, first, new ViewRequirement())) {
<li>
@ -111,9 +96,31 @@
</li>
}
</ul>
</td>
</tr>
</div>
</div>
long gcount = group.Count();
@if (gcount>1) {
<div class="sametitle">
@(gcount-1) autre@(gcount>2?"s":"") au même titre:
@foreach (var item in group.Skip(1)) {
trclass = ((item.Visible)?"visiblepost":"hiddenpost");
<div class="row @trclass">
<div class="col-xs-10">
<markdown>
@((item.Content?.Length > 120) ? item.Content.Substring(0, 120) + "..." : item.Content)
</markdown>
</div>
<div class="col-xs-2">
<a asp-action="Details" asp-route-id="@item.Id" class="btn btn-lg">
le @item.DateModified.ToString("dddd d MMM yyyy à H:mm")
</a>
</div>
</div>
}
</div>
}
}
</table>
</div>

View file

@ -1,4 +1,4 @@
@model IEnumerable<Blog>
@model IEnumerable<BlogPost>
<h2 markdown="@ViewData["Title"]"></h2>
<p class="text-success">@ViewData["StatusMessage"]</p>

View file

@ -1,4 +1,4 @@
@model IEnumerable<Blog>
@model IEnumerable<BlogPost>
@{
ViewData["Title"] = "User posts";
}