73 lines
2.4 KiB
JavaScript
73 lines
2.4 KiB
JavaScript
const changeuserform = document.querySelector(".changeuserform");
|
|
const changeuserformbody = document.querySelector(".changeuserformbody");
|
|
const changeuserformusername = document.querySelector(
|
|
"#changeuserformusername",
|
|
);
|
|
const changeuserformemail = document.querySelector("#changeuserformemail");
|
|
const changeuserformgroup = document.querySelector("#changeuserformgroup");
|
|
const changeuserformissuperuser = document.querySelector(
|
|
"#changeuserformissuperuser",
|
|
);
|
|
const cancelchangeuser = document.querySelector("#cancelchangeuser");
|
|
|
|
let changedatauserid = "";
|
|
let userdata = "";
|
|
|
|
const change_user_data = async (userid) => {
|
|
changeuserform.classList.add("active");
|
|
changedatauserid = userid;
|
|
const all_users = await fetch(routes.all_users(), {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: `{"token":"${localStorage.getItem("token")}"}`,
|
|
})
|
|
.then((data) => data.json())
|
|
.then((jsondata) => jsondata)
|
|
.catch((error) => {
|
|
notification(`Ошибка на сервере: ${error}`, "error");
|
|
});
|
|
userdata = all_users.find((usr) => usr.id === userid);
|
|
changeuserformusername.value = userdata.username;
|
|
changeuserformgroup.value = userdata.group;
|
|
changeuserformissuperuser.checked = userdata.is_superuser === "1";
|
|
changeuserformemail.value = userdata.email;
|
|
};
|
|
|
|
cancelchangeuser.addEventListener("click", (e) => {
|
|
e.preventDefault();
|
|
changeuserform.classList.remove("active");
|
|
});
|
|
|
|
changeuserformbody.addEventListener("submit", async (e) => {
|
|
e.preventDefault();
|
|
let request = {
|
|
token: localStorage.getItem("token"),
|
|
id: changedatauserid,
|
|
username: changeuserformusername.value,
|
|
email: changeuserformemail.value,
|
|
is_superuser: changeuserformissuperuser.checked,
|
|
group: changeuserformgroup.value,
|
|
};
|
|
const status = await fetch(routes.change_user(), {
|
|
method: "PUT",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify(request),
|
|
})
|
|
.then((data) => data.json())
|
|
.then((jsondata) => jsondata)
|
|
.catch((error) => {
|
|
notification(`Ошибка на сервере: ${error}`, "error");
|
|
});
|
|
if (!status.error) {
|
|
notification("Данные пользователя успешно изменены", "success");
|
|
changeuserform.classList.remove("active");
|
|
await get_all_users();
|
|
} else {
|
|
notification(status.error, "error");
|
|
}
|
|
});
|