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 && details.traffic.players !== undefined && details.traffic.maxplayers !== 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. <servergraph :server="parseInt($route.params.id)" :maxplayers="server.maxPlayers"></servergraph>
  37. </div>
  38. </div>
  39. </template>
  40. <script>
  41. import swal from "sweetalert2";
  42. import $ from "jquery";
  43. export default {
  44. created: function () {
  45. this.update();
  46. },
  47. data: function () {
  48. return {
  49. details: {
  50. traffic: {
  51. }
  52. },
  53. server: {}
  54. }
  55. },
  56. watch: {
  57. "$root.servers": function () {
  58. this.server = this.$root.servers[parseInt(this.$root.serversId[this.$route.params.id])];
  59. }
  60. },
  61. methods: {
  62. update: function () {
  63. if(this.$root.servers.length !== 0 && this.$root.serversId){
  64. this.server = this.$root.servers[parseInt(this.$root.serversId[this.$route.params.id])];
  65. }
  66. var self = this;
  67. $.getJSON('/api/servers/get/'+this.$route.params.id)
  68. .done(function (details) {
  69. self.details = details;
  70. });
  71. },
  72. remove: function (id) {
  73. var self = this;
  74. swal({
  75. title: 'Are you sure?',
  76. text: "You won't be able to revert this!",
  77. type: 'warning',
  78. showCancelButton: true,
  79. confirmButtonColor: '#3085d6',
  80. cancelButtonColor: '#d33',
  81. confirmButtonText: 'Yes, delete it!'
  82. }).then(function () {
  83. $.getJSON('/api/servers/remove/'+ id)
  84. .done(function (res) {
  85. });
  86. self.$router.push("/");
  87. }).catch(console.log);
  88. }
  89. }
  90. }
  91. </script>