Passage à ASP.NET vNext

This commit is contained in:
Paul Schneider 2016-05-17 18:22:18 +02:00
commit 388b004837
1929 changed files with 104611 additions and 235941 deletions

View file

@ -0,0 +1,59 @@
@model YavscWeb.Models.Blog
@{
ViewData["Title"] = "Create";
}
<h2>Create</h2>
<form asp-action="Create" role="form">
<div class="form-horizontal">
<h4>Blog</h4>
<hr />
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="title" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="title" class="form-control" />
<span asp-validation-for="title" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="photo" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="photo" class="form-control" />
<span asp-validation-for="photo" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="bcontent" class="col-md-2 control-label"></label>
<div class="col-md-10">
<textarea asp-for="bcontent" class="form-control" >
</textarea>
<span asp-validation-for="bcontent" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="visible" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="visible" class="form-control"/>
</div>
</div>
@Html.Hidden("AuthorId")
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
</form>
<div>
<a asp-action="Index">Back to List</a>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}

View file

@ -0,0 +1,78 @@
@model YavscWeb.Models.Blog
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Delete</title>
</head>
<body>
<h3>Are you sure you want to delete this?</h3>
<div>
<h4>Blog</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@SR["Author"]
</dt>
<dd>
@Model.Author
</dd>
<dt>
@Html.DisplayNameFor(model => model.bcontent)
</dt>
<dd>
@Html.DisplayFor(model => model.bcontent)
</dd>
<dt>
@Html.DisplayNameFor(model => model.modified)
</dt>
<dd>
@Html.DisplayFor(model => model.modified)
</dd>
<dt>
@Html.DisplayNameFor(model => model.photo)
</dt>
<dd>
@Html.DisplayFor(model => model.photo)
</dd>
<dt>
@Html.DisplayNameFor(model => model.posted)
</dt>
<dd>
@Html.DisplayFor(model => model.posted)
</dd>
<dt>
@Html.DisplayNameFor(model => model.rate)
</dt>
<dd>
@Html.DisplayFor(model => model.rate)
</dd>
<dt>
@Html.DisplayNameFor(model => model.title)
</dt>
<dd>
@Html.DisplayFor(model => model.title)
</dd>
<dt>
@Html.DisplayNameFor(model => model.visible)
</dt>
<dd>
@Html.DisplayFor(model => model.visible)
</dd>
</dl>
<form asp-action="Delete">
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-default" /> |
<a asp-action="Index">Back to List</a>
</div>
</form>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
</body>
</html>

View file

@ -0,0 +1,71 @@
@model YavscWeb.Models.Blog
@{
ViewData["Title"]="Details";
}
<div>
<h4>Blog</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@SR["Author"]
</dt>
<dd>
@Model.Author.UserName
</dd>
<dt>
Contenu
</dt>
<dd>
<div markdown="@Model.bcontent" base="~/@Model.Author.UserName/@Model.Id"
site="SiteSettings.Value"></div>
</dd>
<dt>
@Html.DisplayNameFor(model => model.modified)
</dt>
<dd>
@Html.DisplayFor(model => model.modified)
</dd>
<dt>
@Html.DisplayNameFor(model => model.photo)
</dt>
<dd>
@Html.DisplayFor(model => model.photo)
</dd>
<dt>
@Html.DisplayNameFor(model => model.posted)
</dt>
<dd>
@Html.DisplayFor(model => model.posted)
</dd>
<dt>
@Html.DisplayNameFor(model => model.rate)
</dt>
<dd>
@Html.DisplayFor(model => model.rate)
</dd>
<dt>
@Html.DisplayNameFor(model => model.title)
</dt>
<dd>
@Html.DisplayFor(model => model.title)
</dd>
<dt>
@Html.DisplayNameFor(model => model.visible)
</dt>
<dd>
@Html.DisplayFor(model => model.visible)
</dd>
</dl>
</div>
<ul>
@if (await AuthorizationService.AuthorizeAsync(User, Model, new EditRequirement())) {
<li>
<a asp-action="Edit" asp-route-id="@Model.Id">Edit</a>
</li>
}
<li>
<a asp-action="Index">Back to List</a>
</li>
</ul>

View file

@ -0,0 +1,194 @@
@model YavscWeb.Models.Blog
@{
ViewData["Title"] = SR["Blog post edition"];
}
@section header{
<link href="~/css/quill.snow.css" rel="stylesheet">
<link href="~/css/dropzone.css" rel="stylesheet">
<style>
.box__dragndrop,
.box__uploading,
.box__success,
.box__error {
display: none;
}
.box.has-advanced-upload {
background-color: white;
outline: 2px dashed black;
outline-offset: -10px;
}
.box.has-advanced-upload .box__dragndrop {
display: inline;
}
.box.is-dragover {
background-color: grey;
}
.ql-snow.ql-toolbar {
border: outset grey 2px;
}
</style>
}
@section scripts{
<script src="~/js/dropzone.js"></script>
<script src="~/js/quill.js"></script>
<script src="~/js/showdown.js"></script>
<script src="~/js/to-markdown.js"></script>
<script src="~/js/md-helpers.js"></script>
<script>
$(document).ready(function() {
var editortitre = new Quill('#titlecnt', {
modules: { toolbar: '#titletoolbar' },
theme: 'snow'
});
var editorcontenu = new Quill('#contentcnt', {
modules: { toolbar: '#contentbar' },
theme: 'snow'
});
editortitre.on('selection-change', function(range) {
if (range) {
$('#contentbar').addClass('hidden');
$('#titletoolbar').removeClass('hidden');
}
});
editortitre.on('text-change',function(delta,source){
if (source=='user')
{
updateMD('title',$('#titlecnt').html())
}
});
editorcontenu.on('selection-change', function(range) {
if (range) {
$('#contentbar').removeClass('hidden');
$('#titletoolbar').addClass('hidden');
}
});
editorcontenu.on('text-change',function(delta,source){
if (source=='user')
{
updateMD('bcontent',$('#contentcnt').html())
}
});
$('#contentcnt').focus(function(){
$('#contentbar').removeClass('hidden');
$('#titletoolbar').addClass('hidden');
})
});
</script>
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
<h2 > @SR["Blog post edition"] </h2>
<div id="titletoolbar" class="hidden ql-snow ql-toolbar">
<button class="ql-format-button ql-bold"></button>
<button class="ql-format-button ql-italic"></button>
<button class="ql-format-button ql-strike"></button>
</div>
<h2 id="titlecnt"><markdown>@Model.title</markdown></h2>
<div id="contentbar" class="hidden ql-snow ql-toolbar">
<button class="ql-format-button ql-bold"></button>
<button class="ql-format-button ql-italic"></button>
<button class="ql-format-button ql-underline"></button>
<button class="ql-format-button ql-strike"></button>
<span class="ql-format-group">
<button class="ql-format-button ql-image"></button>
<button class="ql-format-button ql-link"></button>
</span>
<span class="ql-format-group">
<span title="List" class="ql-format-button ql-list"></span>
<span class="ql-format-separator"></span>
<span title="Bullet" class="ql-format-button ql-bullet"></span>
<span class="ql-format-separator"></span>
<select title="Text Alignment" class="ql-align">
<option value="left" label="Left" selected=""></option>
<option value="center" label="Center"></option>
<option value="right" label="Right"></option>
<option value="justify" label="Justify"></option>
</select>
</span>
</div>
<div markdown="@Model.bcontent" base="~/@Model.Author.UserName/@Model.Id"
site="SiteSettings.Value" id="contentcnt" ></div>
<hr>
<form asp-action="Edit" >
<div class="form-horizontal">
<hr />
<p class="text-success">@ViewData["StatusMessage"]</p>
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="Id" />
<input type="hidden" asp-for="AuthorId" />
<div class="form-group">
<label asp-for="title" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="title" class="form-control" />
<span asp-validation-for="title" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="photo" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="photo" class="form-control" />
<span asp-validation-for="photo" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="bcontent" class="col-md-2 control-label"></label>
<div class="col-md-10">
<textarea asp-for="bcontent" class="form-control" >
</textarea>
<span asp-validation-for="bcontent" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="visible" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="visible" class="form-control"/>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
</form>
<div >
<form asp-action="Create" asp-controller="UserFiles" method="post" class="dropzone" enctype="multipart/form-data">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Upload" class="btn btn-default" />
</div>
</div>
</form>
</div>
<div>
<a asp-action="Index">Back to List</a>
</div>

View file

@ -0,0 +1,78 @@
@model IEnumerable<YavscWeb.Models.Blog>
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<p class="text-success">@ViewData["StatusMessage"]</p>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<tr>
<th>
@SR["Author"]
</th>
<th>
@Html.DisplayNameFor(model => model.title)
</th>
<th>
@Html.DisplayNameFor(model => model.modified)
</th>
<th>
@Html.DisplayNameFor(model => model.photo)
</th>
<th>
@Html.DisplayNameFor(model => model.posted)
</th>
<th>
@Html.DisplayNameFor(model => model.rate)
</th>
<th>
@Html.DisplayNameFor(model => model.visible)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@item.Author?.UserName
</td>
<td>
@Html.DisplayFor(modelItem => item.title)
</td>
<td>
@Html.DisplayFor(modelItem => item.modified)
</td>
<td>
@Html.DisplayFor(modelItem => item.photo)
</td>
<td>
@Html.DisplayFor(modelItem => item.posted)
</td>
<td>
@Html.DisplayFor(modelItem => item.rate)
</td>
<td>
@Html.DisplayFor(modelItem => item.visible)
</td>
<td>
<ul class="actiongroup">
<li><a asp-action="Details" asp-route-id="@item.Id">Details</a>
</li>
@if (await AuthorizationService.AuthorizeAsync(User, item, new EditRequirement())) {
<li><a asp-action="Edit" asp-route-id="@item.Id">Edit</a>
</li>
<li><a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</li>
}
</ul>
</td>
</tr>
}
</table>

View file

@ -0,0 +1,82 @@
@model IEnumerable<YavscWeb.Models.Blog>
@{
ViewData["Title"] = "Title";
}
<h2>Index</h2>
<p class="text-success">@ViewData["StatusMessage"]</p>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<tr>
<th>
@SR["Author"]
</th>
<th>
@Html.DisplayNameFor(model => model.bcontent)
</th>
<th>
@Html.DisplayNameFor(model => model.modified)
</th>
<th>
@Html.DisplayNameFor(model => model.photo)
</th>
<th>
@Html.DisplayNameFor(model => model.posted)
</th>
<th>
@Html.DisplayNameFor(model => model.rate)
</th>
<th>
@Html.DisplayNameFor(model => model.title)
</th>
<th>
@Html.DisplayNameFor(model => model.visible)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@item.Author?.UserName
</td>
<td>
<div md-content="@item.bcontent"/>@item.bcontent
</td>
<td>
@Html.DisplayFor(modelItem => item.modified)
</td>
<td>
@Html.DisplayFor(modelItem => item.photo)
</td>
<td>
@Html.DisplayFor(modelItem => item.posted)
</td>
<td>
@Html.DisplayFor(modelItem => item.rate)
</td>
<td>
@Html.DisplayFor(modelItem => item.title)
</td>
<td>
@Html.DisplayFor(modelItem => item.visible)
</td>
<td>
<ul class="actiongroup">
<li>
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a>
</li><li>
<a asp-action="Details" asp-route-id="@item.Id">Details</a>
</li><li>
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</li>
</ul>
</td>
</tr>
}
</table>

View file

@ -0,0 +1,82 @@
@model IEnumerable<YavscWeb.Models.Blog>
@{
ViewData["Title"] = "User posts";
}
<h2>Index</h2>
<p class="text-success">@ViewData["StatusMessage"]</p>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<tr>
<th>
@SR["Author"]
</th>
<th>
@Html.DisplayNameFor(model => model.bcontent)
</th>
<th>
@Html.DisplayNameFor(model => model.modified)
</th>
<th>
@Html.DisplayNameFor(model => model.photo)
</th>
<th>
@Html.DisplayNameFor(model => model.posted)
</th>
<th>
@Html.DisplayNameFor(model => model.rate)
</th>
<th>
@Html.DisplayNameFor(model => model.title)
</th>
<th>
@Html.DisplayNameFor(model => model.visible)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@item.Author?.UserName
</td>
<td>
<div md-content="@item.bcontent"/>@item.bcontent
</td>
<td>
@Html.DisplayFor(modelItem => item.modified)
</td>
<td>
@Html.DisplayFor(modelItem => item.photo)
</td>
<td>
@Html.DisplayFor(modelItem => item.posted)
</td>
<td>
@Html.DisplayFor(modelItem => item.rate)
</td>
<td>
@Html.DisplayFor(modelItem => item.title)
</td>
<td>
@Html.DisplayFor(modelItem => item.visible)
</td>
<td>
<ul class="actiongroup">
<li>
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a>
</li><li>
<a asp-action="Details" asp-route-id="@item.Id">Details</a>
</li><li>
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</li>
</ul>
</td>
</tr>
}
</table>