serverDetails.vue 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <div class="container no-gutters">
  3. <div class="row">
  4. <h1>{{server.name}} <small class="text-muted">{{details.name}}</small></h1>
  5. </div>
  6. <div class="row">
  7. <div class="col-5">
  8. <ul class="list-unstyled">
  9. <li v-if="server && server.address !== undefined">
  10. Address: {{server.address}}
  11. </li>
  12. <li v-if="details && details.map !== undefined">
  13. Map: {{details.map}}
  14. </li>
  15. <li v-if="details && details.password !== undefined">
  16. Password: {{details.password?"true":"false"}}
  17. </li>
  18. <li v-if="details && details.traffic !== undefined">
  19. Actual: {{details.traffic.players}}/{{details.traffic.maxplayers}}
  20. </li>
  21. </ul>
  22. </div>
  23. <div class="col-5">
  24. <div v-if="details.players !== undefined && details.traffic">
  25. Players:<span>{{details.players.length}}/{{details.traffic.maxplayers}}</span>
  26. </div>
  27. <ul class="list-group" v-if="details.players !== undefined">
  28. <li v-for="player in details.players" class="list-group-item">{{player.name}}</li>
  29. </ul>
  30. </div>
  31. <div class="col-2">
  32. <button type="button" class="btn btn-danger" @click="remove($route.params.id)">Remove</button>
  33. </div>
  34. </div>
  35. <div class="row">
  36. </div>
  37. </div>
  38. </template>
  39. <script>
  40. import swal from "sweetalert2";
  41. export default {
  42. created: function () {
  43. this.update();
  44. },
  45. data: function () {
  46. return {
  47. details: {},
  48. server: {}
  49. }
  50. },
  51. methods: {
  52. update: function () {
  53. if(this.$root.servers.length !== 0 && this.$root.serversId){
  54. this.server = this.$root.servers[parseInt(this.$root.serversId[this.$route.params.id])];
  55. }
  56. var self = this;
  57. var req = new XMLHttpRequest();
  58. req.open('GET', '/api/servers/get/'+this.$route.params.id);
  59. req.send(null);
  60. req.onreadystatechange = function () {
  61. if (req.readyState == XMLHttpRequest.DONE &&
  62. req.status === 200) {
  63. self.details = JSON.parse(req.response);
  64. }
  65. };
  66. },
  67. remove: function (id) {
  68. var self = this;
  69. swal({
  70. title: 'Are you sure?',
  71. text: "You won't be able to revert this!",
  72. type: 'warning',
  73. showCancelButton: true,
  74. confirmButtonColor: '#3085d6',
  75. cancelButtonColor: '#d33',
  76. confirmButtonText: 'Yes, delete it!'
  77. }).then(function () {
  78. var req = new XMLHttpRequest();
  79. req.open('GET', '/api/servers/remove/'+ id);
  80. req.send(null);
  81. req.onreadystatechange = function () {
  82. if (req.readyState == XMLHttpRequest.DONE &&
  83. req.status === 200) {
  84. }
  85. };
  86. self.$router.push("/");
  87. }, function () {
  88. }).catch(console.log);
  89. }
  90. }
  91. }
  92. </script>