banip.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <!-- Standard Meta -->
  5. <meta charset="utf-8" />
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  8. <!-- Site Properties -->
  9. <title>Minecraft Server</title>
  10. <script src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
  11. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
  12. <script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
  13. <!-- MC Skin-->
  14. <link rel="stylesheet" href="/css/minecraft-skinviewer.css">
  15. <!-- Semantic UI Alert-->
  16. <link rel="stylesheet" href="/css/Semantic-UI-Alert.css">
  17. <script src="/js/semantic-ui-alert.js"></script>
  18. <script src="/js/alert.js"></script>
  19. </head>
  20. <body>
  21. <div class="ui divided items" id="userlist">
  22. </div>
  23. <div class="ui fluid input" style="position: fixed;bottom: 10px;width: 99vw;">
  24. <input type="text" id="ip" placeholder="IP">
  25. <div style="width:10px"></div>
  26. <input type="text" id="reason" placeholder="Reason">
  27. <div style="width:10px"></div>
  28. <div class="ui button" onclick="submit()">Submit</div>
  29. </div>
  30. </body>
  31. <script>
  32. updateInfo();
  33. setInterval(function() {
  34. updateInfo()
  35. }, 5000);
  36. function updateInfo() {
  37. $.get("/ban-ip", function(data) {
  38. if (data.length == 0) {
  39. $("#userlist").html(`
  40. <div class="item">
  41. <div class="content">
  42. <div class="header">No record.</div>
  43. </div>
  44. </div>
  45. `)
  46. return
  47. }
  48. $("#userlist").html("");
  49. $.each(data, function(i, item) {
  50. $("#userlist").append(`
  51. <div class="item">
  52. <div class="content">
  53. <div class="header">` + item.ip + `</div>
  54. <div class="meta">
  55. <span>` + item.reason + `</span>
  56. </div>
  57. </div>
  58. <div class="ui right floated buttons" style="display:block;margin:auto" ip="` + item.ip + `">
  59. <button onclick="unban(this)" class="ui red button">UnBan</button>
  60. </div>
  61. </div>
  62. `)
  63. })
  64. $("#userlist").append('<div style="height:40px"></div>');
  65. });
  66. }
  67. function unban(btn) {
  68. var data = $(btn).parent().attr("ip");
  69. $.get("/ban-ip/remove?field=ip&search=" + data, function(data) {
  70. if (data == "OK") {
  71. msgbox("Removed");
  72. } else {
  73. errmsg("Fail to remove the item.");
  74. }
  75. updateInfo();
  76. });
  77. }
  78. function submit() {
  79. var ip = $("#ip").val();
  80. var reason = $("#reason").val();
  81. $("#ip").val("");
  82. $("#reason").val("");
  83. $.get("/ban-ip/add?ip=" + ip + "&reason=" + reason, function(data) {
  84. if (data == "OK") {
  85. msgbox("Added");
  86. } else {
  87. errmsg(data);
  88. }
  89. updateInfo();
  90. });
  91. }
  92. </script>
  93. </html>