1
0
This repository has been archived on 2026-04-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
my-old-website/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Index.cshtml
T
Michael Gordeev 17bdf1ea77 Updated site
2020-03-12 22:01:12 +03:00

159 lines
3.4 KiB
Plaintext

@model IEnumerable<MyWebsite.Models.BadgeModel>
@{
ViewData["Title"] = "Badges list";
}
<header>
&#xE760; <a asp-action="Index" asp-controller="Admin" asp-area="">Back to main menu</a>
<h1>Project badges list</h1>
<a asp-action="Create" class="comment">// + Create New</a>
</header>
<article>
<table>
<thead>
<tr>
<th>Preview</th>
<th class="hide-l2">
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.EnglishDescription)
</th>
<th class="hide-l2">
@Html.DisplayNameFor(model => model.RussianDescription)
</th>
<th class="hide-l1">
@Html.DisplayNameFor(model => model.Image)
</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
<div class="badge" style="background-image: url(/images/Badges/@(item.Image).png)" title="@(item.Description)"></div>
</td>
<td class="hide-l2">@item.Name</td>
<td>@item.EnglishDescription</td>
<td class="hide-l2">@item.RussianDescription</td>
<td class="hide-l1">@item.Image</td>
<td>
<a asp-action="Edit" asp-route-id="@item.Name">Edit</a> |
<a asp-action="Delete" asp-route-id="@item.Name">Delete</a>
</td>
</tr>
}
</tbody>
</table>
</article>
<header>
<hr />
<h1>Badge image files</h1>
</header>
<article>
<h2>Upload new badge image</h2>
<form method="post" enctype="multipart/form-data">
<div asp-validation-summary="All" class="text-danger"></div>
<label for="badgeImage">Badge image file</label>
<input name="badgeImage" type="file" required />
<span>
<b>Note:</b> Image should be exactly 64x64 pixels PNG file
</span>
<br />
<button>Upload</button>
</form>
<h2>Available badge images</h2>
<table class="files-table">
<thead>
<tr>
<th>Preview</th>
<th>File name</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach (string path in System.IO.Directory.GetFiles(System.IO.Directory.GetCurrentDirectory() + "/wwwroot/images/Badges"))
{
string file = System.IO.Path.GetFileName(path);
<tr>
<td>
<div class="badge" style="background-image: url(/images/Badges/@(file))" title="@(file)"></div>
</td>
<td>@file</td>
<td>
@if (Model.Any(i => i.Image + ".png" == file))
{
<span class="hide-l2" title="Delete or edit correlated badges linked with the image in order to delete it">No available actions</span>
}
else
{
<a asp-action="DeleteBadgeImage" asp-route-id="@file" onclick="return ConfirmDetetion('@file')">Delete</a>
}
</td>
</tr>
}
</tbody>
</table>
</article>
@section Imports
{
<style type="text/css">
.badge
{
height: 25px;
width: 25px;
background-size: contain;
}
.files-table
{
max-width: 500px;
}
td span
{
color: gray;
cursor: help;
}
td span:after
{
content: " (?)";
}
</style>
<script type="text/javascript">
function ConfirmDetetion(filename)
{
return confirm("Are you really want to delete \"" + filename + "\"? This action cannot be undone");
}
function Upload()
{
var form = document.createElement("form");
form.method = "post";
form.hidden = true;
document.body.appendChild(form);
var input = document.createElement("input");
input.type = "file";
input.name = "badgeImage";
input.click();
input.onchange = function ()
{
form.appendChild(input);
form.submit();
}
}
</script>
}