serverList.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <div class="container no-gutters" id="serverList">
  3. <div class="row" id="titles">
  4. <div class="col-4">
  5. Server name
  6. </div>
  7. <div class="col-3">
  8. Server Type
  9. </div>
  10. <div class="col-3">
  11. Address
  12. </div>
  13. <div class="col-2">
  14. Players
  15. </div>
  16. </div>
  17. <server v-for="server in servers" :server="server" :update="update"></server>
  18. <serveredit :update="update" :onSubmit="update"></serveeditr>
  19. </div>
  20. </template>
  21. <script>
  22. export default {
  23. created: function () {
  24. this.servers = this.$root.servers;
  25. this.update();
  26. },
  27. watch: {
  28. "$root.servers": function (val, old) {
  29. this.servers = val;
  30. }
  31. },
  32. data: function () {
  33. return {
  34. servers: [],
  35. serversId: {}
  36. }
  37. },
  38. methods: {
  39. update: function () {
  40. var self = this;
  41. var req = new XMLHttpRequest();
  42. req.open('GET', '/api/details');
  43. req.send(null);
  44. req.onreadystatechange = function () {
  45. if (req.readyState == XMLHttpRequest.DONE &&
  46. req.status === 200) {
  47. self.servers = JSON.parse(req.response);
  48. var a;
  49. self.$root.servers = self.servers;
  50. self.$root.serversId = {};
  51. for (a in self.servers) {
  52. if (!self.servers.hasOwnProperty(a)) {
  53. continue;
  54. }
  55. var obj = self.servers[a];
  56. self.$root.serversId[obj.id] = a;
  57. }
  58. }
  59. };
  60. }
  61. }
  62. }
  63. </script>
  64. <style>
  65. </style>