1
0

Added basic and projects admin layouts

This commit is contained in:
Michael Gordeev
2019-11-13 15:30:54 +03:00
parent db0f8d3b1f
commit 25afd71b35
5 changed files with 176 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MyWebsite.Models;
using Newtonsoft.Json;
namespace MyWebsite.Controllers
{
public class AdminController : Controller
{
public IActionResult Index()
{
return View();
}
public async Task<IActionResult> Projects(int? id)
{
if (id == null)
return View();
else
{
Project[] projects = JsonConvert.DeserializeObject<Project[]>(await new HttpClient().GetStringAsync($"{Request.Scheme}://{Request.Host}/Projects.json"));
ViewData["Project"] = projects[id.Value];
ViewData["Badges"] = new Dictionary<string, string>
{
{ "csharp", "C# Programming language" },
{ "dotnet", ".NET Framework" },
{ "xamarin", "Xamarin Framework" },
{ "unity", "Unity Engine" },
{ "uwp", "Universal Windows Platform" },
{ "windows", "Windows Platform" },
{ "win32", "Windows Platform (Win32)" },
{ "android", "Android Platform" },
{ "ios", "iOS Platform" }
};
return View("Views/Admin/ProjectEditor.cshtml");
}
}
}
}
+27
View File
@@ -0,0 +1,27 @@
@{
ViewData["Title"] = "Admin panel";
}
<header>
<h1>Administration</h1>
<h3><b style="color: red">Note:</b> Any write/read operations in this section will require an admin password</h3>
</header>
<article>
<form>
<input type="password" placeholder="Password" /><br />
<label for="area">Go to section:</label><br />
<div class="select-container">
<select id="area">
<option>Contact links</option>
<option>Artworks</option>
<option>Projects</option>
<option>Resume</option>
</select>
</div>
<button>Proceed</button>
</form>
</article>
<link rel="stylesheet" type="text/css" href="~/css/Admin.css" />
@@ -0,0 +1,35 @@
@{
ViewData["Title"] = "Project editor";
Project project = ViewData["Project"] as Project;
}
<header>
<h1>Project editor</h1>
<h2>@project.Title</h2>
</header>
<article>
<form>
<label for="langSelector">Language:</label>
<div class="select-container">
<select id="langSelector">
<option>English</option>
<option>Russian</option>
</select>
</div>
<label for="title">Title:</label>
<input id="title" placeholder="Title" type="text" value="@project.Title"/>
<label for="description">Description:</label>
<textarea id="description" placeholder="Description" type="text">@project.Description</textarea>
<label for="thumbnail">Thumbnail:</label>
<input id="thumbnail" placeholder="Thumbnail" type="file" />
<button>Submit</button>
</form>
</article>
<link rel="stylesheet" type="text/css" href="~/css/Admin.css" />
+7
View File
@@ -0,0 +1,7 @@
@{
ViewData["Title"] = "Projects list";
}
<h2>Projects</h2>
+62
View File
@@ -0,0 +1,62 @@
input {
padding: 10px;
border-radius: 10px;
border: 1px solid black;
width: 100%;
box-sizing: border-box;
}
select {
padding: 10px;
border: 1px solid black;
border-radius: 10px;
width: 100%;
-moz-appearance: none; /* Firefox */
-webkit-appearance: none; /* Safari and Chrome */
}
button {
margin: 10px;
border-radius: 10px;
border: 0px;
padding: 10px 20px;
background-color: #343434;
color: white;
}
textarea {
resize: none;
width: 100%;
border-radius: 10px;
border: 1px solid black;
padding: 10px;
box-sizing: border-box;
height: 200px;
font-family: Consolas;
}
.select-container::after {
content: '>';
transform: rotate(90deg);
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
right: 11px;
top: 11px;
position: absolute;
pointer-events: none;
}
.select-container {
position: relative;
}
form {
max-width: 50%;
}
@media only screen and (max-width: 700px) {
form {
max-width: initial;
}
}