From 097101bce80c0d85585b85b8e003237321588140 Mon Sep 17 00:00:00 2001 From: neroduckale Date: Thu, 4 Jan 2024 03:28:56 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A5=D0=90=D0=A5=D0=90=D0=A5=D0=90=20=D0=AF?= =?UTF-8?q?=20=D0=A9=D0=90=20=D0=94=D0=95=D0=9B=D0=90=D0=9B=20=D0=92=D0=9E?= =?UTF-8?q?=D0=9E=D0=91=D0=A9=D0=95=D0=9C=20=D0=9C=D0=98=D0=9D=D0=98=20?= =?UTF-8?q?=D0=97=D0=90=D0=A9=D0=98=D0=A2=D0=A3=20=D0=9D=D0=90=20=D0=90?= =?UTF-8?q?=D0=94=D0=9C=D0=98=D0=9D=D0=90=20=D0=98=20=D0=9F=D0=9E=D0=9D?= =?UTF-8?q?=D0=AF=D0=9B=20=D0=A7=D0=A2=D0=9E=20=D0=98=D0=A1=D0=A5=D0=9E?= =?UTF-8?q?=D0=94=D0=9D=D0=AB=D0=99=20=D0=9A=D0=9E=D0=A2=20=D0=9E=D0=A2?= =?UTF-8?q?=D0=9A=D0=A0=D0=AB=D0=A2=20=D0=98=20=D0=9C=D0=AF=D0=A3=D0=9A?= =?UTF-8?q?=D0=90=D0=A2=D0=AC=20=D0=9C=D0=9E=D0=96=D0=9D=D0=9E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nrdkwebsite/Pages/users.cshtml | 39 +++++++++++++++++--- nrdkwebsite/Pages/users.cshtml.cs | 7 ++-- nrdkwebsite/wwwroot/js/admin.js | 60 +++++++++++++++++++++++++++++++ nrdkwebsite/wwwroot/js/site.js | 34 +++++++----------- 4 files changed, 112 insertions(+), 28 deletions(-) create mode 100644 nrdkwebsite/wwwroot/js/admin.js diff --git a/nrdkwebsite/Pages/users.cshtml b/nrdkwebsite/Pages/users.cshtml index 6435bed..cfe3133 100644 --- a/nrdkwebsite/Pages/users.cshtml +++ b/nrdkwebsite/Pages/users.cshtml @@ -1,6 +1,6 @@ @page @model Users - +@{ViewData["Title"] = "users";} -
+
АйдиНикнеймМасть
Loading...Loading...Loading...
- + @{ + if (ViewData["Admin"] == "true") + { + + } + }
- +@{ + if (ViewData["Admin"] == "true") + { +
+ +
nickname
+ +
масть
+ +
+ +
+
+ + } + } \ No newline at end of file diff --git a/nrdkwebsite/Pages/users.cshtml.cs b/nrdkwebsite/Pages/users.cshtml.cs index 01bcfde..8898873 100644 --- a/nrdkwebsite/Pages/users.cshtml.cs +++ b/nrdkwebsite/Pages/users.cshtml.cs @@ -4,8 +4,11 @@ namespace nrdkwebsite.Pages; public class Users : PageModel { - public void OnGet() + public void OnGet(string user) { - + if (user == "admin") + { + ViewData["Admin"] = "true"; + } } } \ No newline at end of file diff --git a/nrdkwebsite/wwwroot/js/admin.js b/nrdkwebsite/wwwroot/js/admin.js new file mode 100644 index 0000000..c2e0c60 --- /dev/null +++ b/nrdkwebsite/wwwroot/js/admin.js @@ -0,0 +1,60 @@ +function admin() { + document.body.style.background = "black"; + document.getElementById("admin").remove(); + let adminbuttons = document.getElementsByClassName("ADMINBUT"); + for (let item of adminbuttons) { + item.style.display = ""; + } + let createuser = document.createElement("button"); + createuser.append("НОВЫЙ ПОЛЬЗОВАТЕЛЬ"); + createuser.className = "admin"; + createuser.addEventListener("click", createclick); + document.getElementById("divine").append(createuser); +} +async function deleteUser(id) { + const response = await fetch(`/api/users/${id}`, { + method: "DELETE", + headers: { "Accept": "application/json" } + }); + if (response.ok === true) { + const user = await response.json(); + document.getElementById(user.id).remove(); + } + else { + const error = await response.json(); + console.log(error.message); + } +} + +function createclick() { + let form = document.getElementById("newuser"); + form.style.visibility = "visible"; +} + +async function createUser(nickname, mast) { + + const response = await fetch("api/users", { + method: "POST", + headers: { "Accept": "application/json", "Content-Type": "application/json" }, + body: JSON.stringify({ + nickname: nickname, + mast: mast + }) + }); + if (response.ok === true) { + const user = await response.json(); + document.getElementById("users").append(createrow(user, false)); + } + else { + const error = await response.json(); + console.log(error.message); + } +} +function neworupdate() { + let nickname = document.getElementById("nickname"); + let mast = document.getElementById("mast"); + + createUser(nickname.value, mast.value); + nickname.value = ""; + mast.value = ""; +} \ No newline at end of file diff --git a/nrdkwebsite/wwwroot/js/site.js b/nrdkwebsite/wwwroot/js/site.js index df8d396..e67ecc7 100644 --- a/nrdkwebsite/wwwroot/js/site.js +++ b/nrdkwebsite/wwwroot/js/site.js @@ -1,5 +1,5 @@ const loading = document.getElementById("loading"); -let loadingLive = true +let loadingLive = true; async function getUsers() { // отправляет запрос и получаем ответ const response = await fetch("/api/users", { @@ -15,41 +15,31 @@ async function getUsers() { loading.remove(); loadingLive = false } - users.forEach(user => table.append(create(user))); + users.forEach(user => table.append(createrow(user, true))); return users; } } - -function create(user) { +function createrow(user, hidebut) { let tr = document.createElement("tr"); let tdName = document.createElement("td"); let tdMast = document.createElement("td"); let tdId = document.createElement("td"); let tdBut = document.createElement("td"); let ButtDel = document.createElement("button"); - let ButtEdit = document.createElement("button"); tdId.append(user.id); tdName.append(user.nickname); tdMast.append(user.mast); + ButtDel.className = "AdminButtons"; ButtDel.append("УДАЛИТЬ"); - ButtEdit.append("ИЗМЕНИТЬ"); - tdBut.append(ButtDel, ButtEdit); - tdBut.id = "ADMINBUT" + user.id; - tdBut.className = "ADMINBUT" - tdBut.style.display = "none"; + ButtDel.addEventListener("click", async() => await deleteUser(user.id)); + tdBut.append(ButtDel); + tdBut.className = "ADMINBUT"; + if (hidebut) { + tdBut.style.display = "none"; + } tr.append(tdId, tdName, tdMast, tdBut); + tr.id = user.id; return tr; } -// Добавление пользователя -console.log(getUsers()); -console.log("loaded!"); - -function admin() { - document.body.style.background = "black"; - document.getElementById("admin").remove(); - let adminbuttons = document.getElementsByClassName("ADMINBUT"); - for (let item of adminbuttons) { - item.style.display = "inline"; - } -} \ No newline at end of file +getUsers(); \ No newline at end of file