admins.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * ЭЛЕКТРОННЫЙ ЖУРНАЛ «ШКАЛА»: БЛОК РАБОТЫ СО СПИСКОМ АДМИНИСТРАТОРОВ
  3. * Copyright © 2019, А.М.Гольдин. Modified BSD License
  4. */
  5. "use strict";
  6. // Разжалование из администраторов
  7. // (в вызове API второй аргумент set - назначить, unset - разжаловать)
  8. const unsetAdmin = async (login) => {
  9. if (!confirm("Вы уверены?")) return;
  10. let apiResp = await apireq("usSetAdmin", [login, "unset"]);
  11. if (apiResp == "none") info(1, "Запрашиваемая операция отклонена.");
  12. else if (apiResp == "already")
  13. info(1, `Пользователь ${login} не является администратором.`);
  14. else {
  15. info(0, `Пользователь ${login} успешно удален из администраторов.`);
  16. getContent.admins();
  17. }
  18. }
  19. // Формирование контента странички
  20. createSection("admins", `<h3>Администраторы</h3><table></table>`);
  21. // Динамически подгружаем список администраторов в таблицу
  22. // Имя метода = имени пункта меню!
  23. getContent.admins = async () => {
  24. let apiResp = await apireq("adminsList");
  25. if (apiResp == "none") info(1, "Запрашиваемая операция отклонена.");
  26. else {
  27. let tableInner = '';
  28. let admListArr = userSort(JSON.parse(apiResp));
  29. if (!admListArr.length)
  30. tableInner = "<tr><td>Администраторов не найдено</td></tr>";
  31. else for (let currAdm of admListArr) {
  32. if (currAdm.block) continue;
  33. tableInner += `<tr>
  34. <td>${currAdm.Ulogin}</td>
  35. <td>${currAdm.Ufamil}</td>
  36. <td>${currAdm.Uname}</td>
  37. <td>${currAdm.Uotch}</td>
  38. <td title="Удалить из администраторов"
  39. onClick="unsetAdmin('${currAdm.Ulogin}')">&#9747;</td>
  40. </tr>`;
  41. }
  42. dqs("#admins table").innerHTML = tableInner;
  43. }
  44. }