adm.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Admin</title>
  8. <style>
  9. .container{
  10. display: flex;
  11. flex-direction: column;
  12. width: 75%;
  13. box-shadow: 4px 4px 16px #aaaaaa;
  14. margin: 0 auto;
  15. padding: 8px;
  16. background-color: white;
  17. border-radius: 2px;
  18. box-sizing: border-box;
  19. }
  20. .table-header{
  21. width: 100%;
  22. padding: 8px;
  23. background-color: #EEE;
  24. box-sizing: border-box;
  25. border-style: solid;
  26. border-width: 1px;
  27. border-color: #CCC;
  28. border-radius: 8px 8px 0 0;
  29. display: flex;
  30. flex-direction: row;
  31. }
  32. .table-item-white{
  33. width: 100%;
  34. padding: 8px;
  35. box-sizing: border-box;
  36. border-style: solid;
  37. border-width: 0 1px 1px 1px;
  38. border-color: #CCC;
  39. display: flex;
  40. flex-direction: row;
  41. }
  42. .table-item-gray{
  43. width: 100%;
  44. padding: 8px;
  45. box-sizing: border-box;
  46. border-style: solid;
  47. border-width: 0 1px 1px 1px;
  48. border-color: #CCC;
  49. display: flex;
  50. flex-direction: row;
  51. background-color: #EEE;
  52. }
  53. </style>
  54. </head>
  55. <body>
  56. <h1 style="text-align: center;">Usuarios conectados</h1>
  57. <div class="container" id="container">
  58. <div class="table-header" id="tHead">
  59. <div style="width: 50%;">#</div>
  60. <div style="width: 50%;">Nombre del usuario</div>
  61. </div>
  62. <div id="table-items">
  63. <div class="table-item-white">
  64. </div>
  65. </div>
  66. </div>
  67. <script src="/socket.io/socket.io.js"></script>
  68. <script>
  69. var socket = io();
  70. var tableItems = document.getElementById("table-items");
  71. var arrConnections = [];
  72. window.onload = () => {
  73. socket.emit('get_connections');
  74. }
  75. socket.on('current_connections', (msg) => {
  76. let connections = JSON.parse(msg);
  77. arrConnections = [];
  78. refresh(connections);
  79. });
  80. socket.on('new_connection', (msg) => {
  81. let connections = JSON.parse(msg);
  82. arrConnections = [];
  83. refresh(connections);
  84. });
  85. socket.on('disconnection', (msg) => {
  86. let connections = JSON.parse(msg);
  87. arrConnections = [];
  88. refresh(connections);
  89. });
  90. function refresh(connections){
  91. let cont = 0;
  92. tableItems.innerHTML = "";
  93. var tableContent = "";
  94. connections.forEach(element => {
  95. let elementArr = element.split(".");
  96. if(!arrConnections.includes(elementArr[0])) arrConnections.push(elementArr[0]);
  97. });
  98. console.log(arrConnections);
  99. arrConnections.forEach(element => {
  100. console.log(element);
  101. cont++;
  102. let mod = cont % 2;
  103. let elementArr = element.split(".");
  104. if(mod == 1){
  105. tableContent += "<div class=\"table-item-white\">";
  106. }else{
  107. tableContent += "<div class=\"table-item-gray\">";
  108. }
  109. tableContent += "<div style=\"width: 50%;\">" + cont + "</div>";
  110. tableContent += "<div style=\"width: 50%;\">" + element + "</div>";
  111. tableContent += "</div>";
  112. tableItems.innerHTML = tableContent;
  113. });
  114. }
  115. </script>
  116. </body>
  117. </html>