@gameap/frontend 4.1.0-dev1 → 4.1.0-dev11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/AdminClientCertificatesView-Bg8X_Ouc.js +370 -0
  2. package/dist/AdminDaemonTaskListView-DbJp0aqQ.js +316 -0
  3. package/dist/AdminDaemonTaskOutputView-DNCHQfxx.js +87 -0
  4. package/dist/AdminGamesEdit-jco7cBfk.js +473 -0
  5. package/dist/AdminGamesList-CMjsgEpx.js +518 -0
  6. package/dist/AdminModEdit-BlRu_09M.js +529 -0
  7. package/dist/AdminNodeShowView-BHxJkjYJ.js +175 -0
  8. package/dist/AdminNodesCreateView-DihmM46W.js +87 -0
  9. package/dist/AdminNodesEditView-CVACSido.js +65 -0
  10. package/dist/AdminNodesView-CHtiU6dZ.js +167 -0
  11. package/dist/AdminPluginsView-CRjF3BPs.js +984 -0
  12. package/dist/AdminServersCreate-5f8x6eZO.js +342 -0
  13. package/dist/AdminServersEdit-CA7711nJ.js +400 -0
  14. package/dist/AdminServersList-De5ZMEGZ.js +168 -0
  15. package/dist/AdminUsersEditView-DeYo98vi.js +308 -0
  16. package/dist/AdminUsersView-C8fKEhpr.js +446 -0
  17. package/dist/CreateModForm-CqkvVLfN.js +123 -0
  18. package/dist/CreateNodeModal-DOXVtVLQ.js +100 -0
  19. package/dist/DsIpSelector-C676Y19X.js +90 -0
  20. package/dist/EmptyView-Bf6zmQQt.js +9 -0
  21. package/dist/FileManager-DSa9v4Ex.js +5932 -0
  22. package/dist/GameIcon-DaYNlnur.js +87 -0
  23. package/dist/GameModSelector-CQBT8ZLu.js +95 -0
  24. package/dist/InputManyList-DUOtepb8.js +110 -0
  25. package/dist/InputTextList-lPhVIV04.js +63 -0
  26. package/dist/PluginPendingView-DaDaN30Q.js +34 -0
  27. package/dist/ProfileView-Dw2T3X8m.js +295 -0
  28. package/dist/RconConsole-CvxNBv0B.js +74 -0
  29. package/dist/RconPlayers-odUKa0Ps.js +424 -0
  30. package/dist/ServerConsole-B9v2PcWb.js +99 -0
  31. package/dist/ServerControlButton-D_zJbxr6.js +186 -0
  32. package/dist/ServerIdView-_vGQRk7y.js +609 -0
  33. package/dist/ServerSelector-6fCqL3e9.js +52 -0
  34. package/dist/ServerSettings-C6-tkLTH.js +84 -0
  35. package/dist/ServerStatus-CcqB0h1r.js +63 -0
  36. package/dist/ServerTasks-BcaZzvz7.js +857 -0
  37. package/dist/ServersView-S_G_kuGj.js +313 -0
  38. package/dist/SettingsParameters-u3Awy4Vf.js +89 -0
  39. package/dist/SmartPortSelector-BRSQFVqT.js +174 -0
  40. package/dist/TokensView-C1RFJSB5.js +392 -0
  41. package/dist/UpdateNodeForm-BAhzQLt-.js +652 -0
  42. package/dist/UserServerPrivileges-Q2wQMyHi.js +319 -0
  43. package/dist/_createCompounder-CXjx5-CF.js +241 -0
  44. package/dist/camelCase-CSrB2MWj.js +8 -0
  45. package/dist/capitalize-BZSBvd6d.js +40 -0
  46. package/dist/clientCertificates-C0FlDwsb.js +53 -0
  47. package/dist/favicon-32x32.png +0 -0
  48. package/dist/favicon-96x96.png +0 -0
  49. package/dist/favicon.ico +0 -0
  50. package/dist/fonts/gicon.eot +0 -0
  51. package/dist/fonts/gicon.svg +33 -0
  52. package/dist/fonts/gicon.ttf +0 -0
  53. package/dist/fonts/gicon.woff +0 -0
  54. package/dist/fonts/gicon.woff2 +0 -0
  55. package/dist/frontend.css +6 -0
  56. package/dist/gameList-kucszmx0.js +115 -0
  57. package/dist/gameap.svg +3 -0
  58. package/dist/gameap_full.svg +9 -0
  59. package/dist/images/gap_logo_white.png +0 -0
  60. package/dist/images/gap_logo_white_mini.png +0 -0
  61. package/dist/images/gicon.svg +18 -0
  62. package/dist/images/icons/save-white.svg +1 -0
  63. package/dist/images/icons/save.svg +1 -0
  64. package/dist/index-9fvX7FD-.js +3840 -0
  65. package/dist/index.js +1 -0
  66. package/dist/isEmpty-D0Z8Rneq.js +263 -0
  67. package/dist/join-CmlzL0H9.js +7 -0
  68. package/dist/loader-qtG-Lf6M.js +131 -0
  69. package/dist/mockServiceWorker.js +349 -0
  70. package/dist/snakeCase-nnM4dAra.js +7 -0
  71. package/dist/validators-ChBGsKft.js +65 -0
  72. package/package.json +6 -4
@@ -0,0 +1,400 @@
1
+ import { NForm as Z, NCard as ee, NFormItem as v, NSelect as ae, NSwitch as G, NInput as te } from "naive-ui";
2
+ import { ref as L, computed as f, onMounted as re, resolveComponent as S, createElementBlock as k, openBlock as c, Fragment as R, createVNode as s, unref as t, withCtx as d, createElementVNode as u, createBlock as x, createCommentVNode as w, normalizeClass as N, toDisplayString as g, renderList as le, createTextVNode as oe } from "vue";
3
+ import { x as se, u as ne, t as l, e as y, m as ue, l as U, _ as de, a as ie, n as V } from "./index-9fvX7FD-.js";
4
+ import { useRoute as ve, useRouter as me } from "vue-router";
5
+ import { storeToRefs as C } from "pinia";
6
+ import { u as pe } from "./gameList-kucszmx0.js";
7
+ import { r as m } from "./validators-ChBGsKft.js";
8
+ import { c as I } from "./capitalize-BZSBvd6d.js";
9
+ const ce = { class: "flex flex-wrap mt-2" }, _e = { class: "md:w-1/2 pr-8" }, be = { class: "grid grid-cols-3" }, fe = { class: "pr-8" }, ge = ["innerHTML"], ye = { class: "md:w-1/2" }, he = { class: "md:w-full" }, Pe = { class: "md:w-full" }, qe = { class: "stone-table" }, Se = { class: "stone-table-header" }, ke = { class: "px-2 py-2 w-1/4" }, xe = { class: "px-2 py-2" }, we = { class: "stone-table-row" }, Ne = { class: "px-2 py-2 w-1/4" }, Ue = { class: "bg-stone-100 dark:bg-stone-600 highlighter-rouge p-1 rounded" }, Ce = { class: "px-2 py-2" }, Ie = { class: "hidden lg:inline" }, Te = {
10
+ __name: "AdminServersEdit",
11
+ setup(Me) {
12
+ const M = ve(), F = me(), h = pe(), P = se(), _ = ne(), z = L({}), e = L({
13
+ serverPort: 27015,
14
+ queryPort: 27015,
15
+ rconPort: 27015,
16
+ install: !0,
17
+ user: "gameap"
18
+ }), { games: B } = C(h), { nodes: O } = C(P), { server: n } = C(_), T = f(() => [
19
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
20
+ { route: { name: "admin.servers.index" }, text: l("servers.game_servers") },
21
+ { route: { name: "admin.servers.edit", params: { id: M.params.id } }, text: l("servers.edit") }
22
+ ]);
23
+ re(() => {
24
+ _.setServerId(Number(M.params.id)), _.fetchServer().then(() => {
25
+ e.value.name = n.value.name, e.value.ip = n.value.server_ip, e.value.serverPort = n.value.server_port, e.value.queryPort = n.value.query_port, e.value.rconPort = n.value.rcon_port, e.value.status = n.value.installed, e.value.enabled = n.value.enabled, e.value.blocked = n.value.blocked, e.value.rcon = n.value.rcon, e.value.dir = n.value.dir, e.value.user = n.value.su_user, e.value.startCommand = n.value.start_command, A().then(() => {
26
+ e.value.game = n.value.game_id, e.value.gameMod = n.value.game_mod_id;
27
+ }), H().then(() => {
28
+ e.value.nodeId = n.value.ds_id;
29
+ });
30
+ }).catch((o) => {
31
+ y(o);
32
+ });
33
+ });
34
+ const p = f(() => _.loading || h.loading || P.loading), $ = [
35
+ { value: 0, label: I(l("servers.not_installed")) },
36
+ { value: 1, label: I(l("servers.installed")) },
37
+ { value: 2, label: I(l("servers.installation")) }
38
+ ], j = f(() => {
39
+ let o = {};
40
+ for (const [a, i] of Object.entries(B.value))
41
+ o[i.code] = i.name;
42
+ return o;
43
+ }), D = f(() => {
44
+ let o = {};
45
+ for (const [a, i] of Object.entries(O.value))
46
+ o[i.id] = i.name;
47
+ return o;
48
+ }), E = f(
49
+ () => {
50
+ let o = n.value.aliases;
51
+ return o || (o = {}), o.ip = e.value.ip, o.port = e.value.serverPort, o.query_port = e.value.queryPort, o.rcon_port = e.value.rconPort, o.rcon_password = e.value.rcon, o.uuid = n.value.uuid, o.uuid_short = n.value.uuid_short, Object.entries(o).map(([a, i]) => ({ name: a, value: i }));
52
+ }
53
+ ), A = async () => {
54
+ try {
55
+ await h.fetchGames();
56
+ } catch {
57
+ y(error);
58
+ }
59
+ }, H = async () => {
60
+ P.fetchNodesByFilter([]).catch((o) => {
61
+ y(o);
62
+ });
63
+ }, J = {
64
+ name: {
65
+ required: !0,
66
+ validator: m(l("labels.name"))
67
+ },
68
+ game: {
69
+ required: !0,
70
+ validator: m(l("labels.game_id"))
71
+ },
72
+ gameMod: {
73
+ required: !0,
74
+ validator: m(l("labels.game_mod_id"))
75
+ },
76
+ nodeId: {
77
+ required: !0,
78
+ validator: m(l("labels.ds_id"))
79
+ },
80
+ ip: {
81
+ required: !0,
82
+ validator: m(l("labels.ip"))
83
+ },
84
+ serverPort: {
85
+ required: !0,
86
+ validator: m(l("labels.server_port"))
87
+ },
88
+ queryPort: {
89
+ required: !0,
90
+ validator: m(l("labels.query_port"))
91
+ },
92
+ rconPort: {
93
+ required: !0,
94
+ validator: m(l("labels.rcon_port"))
95
+ }
96
+ }, K = () => {
97
+ z.value?.validate((o, { warnings: a }) => {
98
+ o ? (console.log(o), V({
99
+ content: "Please check the form.",
100
+ type: "error"
101
+ })) : Q();
102
+ });
103
+ }, Q = () => {
104
+ _.save({
105
+ name: e.value.name,
106
+ game_id: e.value.game,
107
+ game_mod_id: e.value.gameMod,
108
+ enabled: e.value.enabled,
109
+ blocked: e.value.blocked,
110
+ installed: e.value.status,
111
+ rcon: e.value.rcon,
112
+ ds_id: n.value.ds_id,
113
+ server_ip: e.value.ip,
114
+ server_port: e.value.serverPort,
115
+ query_port: e.value.queryPort,
116
+ rcon_port: e.value.rconPort,
117
+ dir: e.value.dir,
118
+ su_user: e.value.user,
119
+ start_command: e.value.startCommand
120
+ }).then(() => {
121
+ V({
122
+ content: l("servers.update_success_msg"),
123
+ type: "success"
124
+ }, () => {
125
+ F.push({ name: "admin.servers.index" });
126
+ });
127
+ }).catch((o) => {
128
+ y(o);
129
+ });
130
+ };
131
+ return (o, a) => {
132
+ const i = ae, b = te, W = S("GameModSelector"), q = ee, X = S("DsIpSelector"), Y = S("SmartPortSelector");
133
+ return c(), k(R, null, [
134
+ s(t(ue), { items: T.value }, null, 8, ["items"]),
135
+ s(t(Z), {
136
+ "label-placement": "top",
137
+ "label-width": "auto",
138
+ ref_key: "formRef",
139
+ ref: z,
140
+ model: e.value,
141
+ rules: J
142
+ }, {
143
+ default: d(() => [
144
+ u("div", ce, [
145
+ u("div", _e, [
146
+ s(q, {
147
+ title: t(l)("servers.basic_info"),
148
+ size: "small",
149
+ class: "mb-3",
150
+ "header-class": "g-card-header",
151
+ segmented: {
152
+ content: !0,
153
+ footer: "soft"
154
+ }
155
+ }, {
156
+ default: d(() => [
157
+ p.value ? (c(), x(t(U), { key: 0 })) : w("", !0),
158
+ u("div", {
159
+ class: N(p.value ? "hidden" : "")
160
+ }, [
161
+ u("div", be, [
162
+ u("div", fe, [
163
+ s(t(v), {
164
+ label: t(l)("servers.status")
165
+ }, {
166
+ default: d(() => [
167
+ s(i, {
168
+ value: e.value.status,
169
+ "onUpdate:value": a[0] || (a[0] = (r) => e.value.status = r),
170
+ options: $
171
+ }, null, 8, ["value"])
172
+ ]),
173
+ _: 1
174
+ }, 8, ["label"])
175
+ ]),
176
+ s(t(v), {
177
+ label: t(l)("labels.enabled"),
178
+ path: "enabled"
179
+ }, {
180
+ default: d(() => [
181
+ s(t(G), {
182
+ value: e.value.enabled,
183
+ "onUpdate:value": a[1] || (a[1] = (r) => e.value.enabled = r)
184
+ }, null, 8, ["value"])
185
+ ]),
186
+ _: 1
187
+ }, 8, ["label"]),
188
+ s(t(v), {
189
+ label: t(l)("labels.blocked"),
190
+ path: "blocked"
191
+ }, {
192
+ default: d(() => [
193
+ s(t(G), {
194
+ value: e.value.blocked,
195
+ "onUpdate:value": a[2] || (a[2] = (r) => e.value.blocked = r),
196
+ "rail-style": ({ checked: r }) => r ? { background: "#b91c1c" } : {}
197
+ }, null, 8, ["value", "rail-style"])
198
+ ]),
199
+ _: 1
200
+ }, 8, ["label"])
201
+ ]),
202
+ s(t(v), {
203
+ label: t(l)("labels.name"),
204
+ path: "name"
205
+ }, {
206
+ default: d(() => [
207
+ s(b, {
208
+ value: e.value.name,
209
+ "onUpdate:value": a[3] || (a[3] = (r) => e.value.name = r),
210
+ type: "text"
211
+ }, null, 8, ["value"])
212
+ ]),
213
+ _: 1
214
+ }, 8, ["label"]),
215
+ s(W, {
216
+ games: j.value,
217
+ "game-path": "game",
218
+ "game-mod-path": "gameMod",
219
+ "game-select-disabled": !0,
220
+ game: e.value.game,
221
+ "onUpdate:game": a[4] || (a[4] = (r) => e.value.game = r),
222
+ "game-mod": e.value.gameMod,
223
+ "onUpdate:gameMod": a[5] || (a[5] = (r) => e.value.gameMod = r)
224
+ }, null, 8, ["games", "game", "game-mod"]),
225
+ s(t(v), {
226
+ label: t(l)("labels.rcon"),
227
+ path: "rcon"
228
+ }, {
229
+ default: d(() => [
230
+ s(b, {
231
+ value: e.value.rcon,
232
+ "onUpdate:value": a[6] || (a[6] = (r) => e.value.rcon = r),
233
+ type: "password",
234
+ "show-password-on": "click",
235
+ "input-props": { autocomplete: "one-time-code" }
236
+ }, null, 8, ["value"])
237
+ ]),
238
+ _: 1
239
+ }, 8, ["label"]),
240
+ s(t(v), {
241
+ label: t(l)("labels.dir"),
242
+ class: "mb-4",
243
+ path: "dir"
244
+ }, {
245
+ feedback: d(() => [
246
+ u("small", {
247
+ innerHTML: t(l)("servers.d_dir")
248
+ }, null, 8, ge)
249
+ ]),
250
+ default: d(() => [
251
+ s(b, {
252
+ value: e.value.dir,
253
+ "onUpdate:value": a[7] || (a[7] = (r) => e.value.dir = r),
254
+ type: "text"
255
+ }, null, 8, ["value"])
256
+ ]),
257
+ _: 1
258
+ }, 8, ["label"]),
259
+ s(t(v), {
260
+ label: t(l)("labels.su_user"),
261
+ path: "user"
262
+ }, {
263
+ default: d(() => [
264
+ s(b, {
265
+ value: e.value.user,
266
+ "onUpdate:value": a[8] || (a[8] = (r) => e.value.user = r),
267
+ type: "text"
268
+ }, null, 8, ["value"])
269
+ ]),
270
+ _: 1
271
+ }, 8, ["label"])
272
+ ], 2)
273
+ ]),
274
+ _: 1
275
+ }, 8, ["title"])
276
+ ]),
277
+ u("div", ye, [
278
+ s(q, {
279
+ title: t(l)("servers.ds_ip_ports"),
280
+ size: "small",
281
+ class: "mb-3",
282
+ "header-class": "g-card-header",
283
+ segmented: {
284
+ content: !0,
285
+ footer: "soft"
286
+ }
287
+ }, {
288
+ default: d(() => [
289
+ p.value ? (c(), x(t(U), { key: 0 })) : w("", !0),
290
+ u("div", {
291
+ class: N(p.value ? "hidden" : "")
292
+ }, [
293
+ s(X, {
294
+ "ds-list": D.value,
295
+ "node-id": e.value.nodeId,
296
+ "onUpdate:nodeId": a[9] || (a[9] = (r) => e.value.nodeId = r),
297
+ ip: e.value.ip,
298
+ "onUpdate:ip": a[10] || (a[10] = (r) => e.value.ip = r),
299
+ "node-select-disabled": !0,
300
+ "node-id-path": "nodeId",
301
+ "ip-path": "ip"
302
+ }, null, 8, ["ds-list", "node-id", "ip"]),
303
+ s(Y, {
304
+ "server-port": e.value.serverPort,
305
+ "onUpdate:serverPort": a[11] || (a[11] = (r) => e.value.serverPort = r),
306
+ "rcon-port": e.value.rconPort,
307
+ "onUpdate:rconPort": a[12] || (a[12] = (r) => e.value.rconPort = r),
308
+ "query-port": e.value.queryPort,
309
+ "onUpdate:queryPort": a[13] || (a[13] = (r) => e.value.queryPort = r),
310
+ "initial-server-ip": t(n).server_ip,
311
+ "initial-server-port": t(n).server_port,
312
+ "initial-query-port": t(n).query_port,
313
+ "initial-rcon-port": t(n).rcon_port,
314
+ "server-port-path": "serverPort",
315
+ "rcon-port-path": "rconPort",
316
+ "query-port-path": "queryPort"
317
+ }, null, 8, ["server-port", "rcon-port", "query-port", "initial-server-ip", "initial-server-port", "initial-query-port", "initial-rcon-port"])
318
+ ], 2)
319
+ ]),
320
+ _: 1
321
+ }, 8, ["title"])
322
+ ]),
323
+ u("div", he, [
324
+ s(q, {
325
+ title: t(l)("servers.start_command"),
326
+ size: "small",
327
+ class: "mb-3",
328
+ "header-class": "g-card-header",
329
+ segmented: {
330
+ content: !0,
331
+ footer: "soft"
332
+ }
333
+ }, {
334
+ default: d(() => [
335
+ p.value ? (c(), x(t(U), { key: 0 })) : w("", !0),
336
+ u("div", {
337
+ class: N(p.value ? "hidden" : "")
338
+ }, [
339
+ s(t(v), {
340
+ label: t(l)("labels.start_command"),
341
+ path: "startCommand"
342
+ }, {
343
+ default: d(() => [
344
+ s(b, {
345
+ value: e.value.startCommand,
346
+ "onUpdate:value": a[14] || (a[14] = (r) => e.value.startCommand = r),
347
+ type: "textarea",
348
+ autosize: { minRows: 4 }
349
+ }, null, 8, ["value"])
350
+ ]),
351
+ _: 1
352
+ }, 8, ["label"]),
353
+ u("div", Pe, [
354
+ u("table", qe, [
355
+ u("thead", Se, [
356
+ u("tr", null, [
357
+ u("th", ke, g(t(l)("labels.name")), 1),
358
+ u("th", xe, g(t(l)("labels.the_value")), 1)
359
+ ])
360
+ ]),
361
+ u("tbody", null, [
362
+ (c(!0), k(R, null, le(E.value, (r) => (c(), k("tr", we, [
363
+ u("td", Ne, [
364
+ u("span", Ue, [
365
+ a[15] || (a[15] = u("span", null, "{", -1)),
366
+ oe(g(r.name), 1),
367
+ a[16] || (a[16] = u("span", null, "}", -1))
368
+ ])
369
+ ]),
370
+ u("td", Ce, g(r.value), 1)
371
+ ]))), 256))
372
+ ])
373
+ ])
374
+ ])
375
+ ], 2)
376
+ ]),
377
+ _: 1
378
+ }, 8, ["title"])
379
+ ]),
380
+ s(de, {
381
+ color: "green",
382
+ onClick: K
383
+ }, {
384
+ default: d(() => [
385
+ s(t(ie), { name: "save" }),
386
+ u("span", Ie, " " + g(t(l)("main.save")), 1)
387
+ ]),
388
+ _: 1
389
+ })
390
+ ])
391
+ ]),
392
+ _: 1
393
+ }, 8, ["model"])
394
+ ], 64);
395
+ };
396
+ }
397
+ };
398
+ export {
399
+ Te as default
400
+ };
@@ -0,0 +1,168 @@
1
+ import { computed as d, ref as L, onMounted as $, createElementBlock as D, openBlock as z, Fragment as E, createVNode as r, unref as n, withCtx as c, createElementVNode as F, toDisplayString as I, h as a } from "vue";
2
+ import { j as P, x as T, t as s, e as m, m as R, _ as u, a as f, l as w } from "./index-9fvX7FD-.js";
3
+ import { storeToRefs as g } from "pinia";
4
+ import { NDataTable as A, NEmpty as V } from "naive-ui";
5
+ import { _ as j } from "./GameIcon-DaYNlnur.js";
6
+ import { RouterLink as q } from "vue-router";
7
+ const U = {
8
+ __name: "AdminServersList",
9
+ setup(G) {
10
+ const i = P(), o = T(), _ = d(() => [
11
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
12
+ { route: { name: "admin.servers.index" }, text: s("servers.game_servers") }
13
+ ]), v = () => [
14
+ {
15
+ title: s("servers.name"),
16
+ key: "name"
17
+ },
18
+ {
19
+ title: s("servers.game"),
20
+ key: "game",
21
+ render: (e) => [
22
+ a(j, { game: e.gameCode, class: "mr-2" }),
23
+ e.game
24
+ ]
25
+ },
26
+ {
27
+ title: s("servers.ip_port"),
28
+ key: "ipPort"
29
+ },
30
+ {
31
+ title: s("servers.dedicated_server"),
32
+ render: (e) => {
33
+ let t = b.value.find((l) => l.id === e.nodeId);
34
+ return a(
35
+ q,
36
+ {
37
+ to: { name: "admin.nodes.view", params: { id: t.id } },
38
+ class: "text-blue-600 underline dark:text-blue-500 hover:no-underline"
39
+ },
40
+ { default: () => t.name }
41
+ );
42
+ }
43
+ },
44
+ {
45
+ title: s("main.actions"),
46
+ render(e) {
47
+ return [
48
+ a(u, {
49
+ color: "blue",
50
+ size: "small",
51
+ class: "mr-0.5",
52
+ route: { name: "admin.servers.edit", params: { id: e.id } }
53
+ }, { default: () => [
54
+ a(f, { name: "edit" }),
55
+ a("span", { class: "hidden lg:inline" }, s("main.edit"))
56
+ ] }),
57
+ a(u, {
58
+ color: "red",
59
+ size: "small",
60
+ text: s("main.delete"),
61
+ onClick: () => {
62
+ N(e.id);
63
+ }
64
+ }, { default: () => [
65
+ a(f, { name: "delete" }),
66
+ a("span", { class: "hidden lg:inline" }, s("main.delete"))
67
+ ] })
68
+ ];
69
+ }
70
+ }
71
+ ], { servers: h } = g(i), { nodes: b } = g(o), x = d(() => i.loading || o.loading), k = L(v()), y = {
72
+ pageSize: 20
73
+ };
74
+ $(() => {
75
+ p(), S();
76
+ });
77
+ const p = () => {
78
+ i.fetchServersByFilter([]).catch((e) => {
79
+ m(e);
80
+ });
81
+ }, S = () => {
82
+ o.fetchNodesByFilter([]).catch((e) => {
83
+ m(e);
84
+ });
85
+ }, C = d(() => {
86
+ let e = [];
87
+ return h.value.forEach((t) => {
88
+ e.push({
89
+ id: t.id,
90
+ name: t.name,
91
+ game: t.game.name,
92
+ gameCode: t.game.code,
93
+ nodeId: t.ds_id,
94
+ ipPort: t.server_ip + ":" + t.server_port
95
+ });
96
+ }), e;
97
+ }), N = (e) => {
98
+ let t = !1;
99
+ window.$dialog.success({
100
+ title: s("servers.delete_confirm_msg"),
101
+ content: () => a("div", { class: "mt-4 mb-4" }, [
102
+ a("input", {
103
+ type: "checkbox",
104
+ id: "delete-files-checkbox",
105
+ onChange: () => {
106
+ t = !0;
107
+ }
108
+ }),
109
+ a("label", { class: "ms-1", for: "delete-files-checkbox" }, s("servers.delete_files"))
110
+ ]),
111
+ positiveText: s("main.yes"),
112
+ negativeText: s("main.no"),
113
+ closable: !1,
114
+ onPositiveClick: () => {
115
+ B(e, t);
116
+ },
117
+ onNegativeClick: () => {
118
+ }
119
+ });
120
+ }, B = (e, t) => {
121
+ i.deleteById(e, t).catch((l) => {
122
+ m(l);
123
+ }).finally(() => {
124
+ p();
125
+ });
126
+ };
127
+ return (e, t) => (z(), D(E, null, [
128
+ r(n(R), { items: _.value }, null, 8, ["items"]),
129
+ r(u, {
130
+ color: "green",
131
+ size: "middle",
132
+ class: "mb-5",
133
+ route: { name: "admin.servers.create" }
134
+ }, {
135
+ default: c(() => [
136
+ r(n(f), {
137
+ name: "add-square",
138
+ class: "mr-0.5"
139
+ }),
140
+ F("span", null, I(n(s)("servers.create")), 1)
141
+ ]),
142
+ _: 1
143
+ }),
144
+ r(n(A), {
145
+ ref: "tableRef",
146
+ bordered: !1,
147
+ "single-line": !0,
148
+ columns: k.value,
149
+ data: C.value,
150
+ loading: x.value,
151
+ pagination: y
152
+ }, {
153
+ loading: c(() => [
154
+ r(n(w))
155
+ ]),
156
+ empty: c(() => [
157
+ r(n(V), {
158
+ description: n(s)("servers.empty_list")
159
+ }, null, 8, ["description"])
160
+ ]),
161
+ _: 1
162
+ }, 8, ["columns", "data", "loading"])
163
+ ], 64));
164
+ }
165
+ };
166
+ export {
167
+ U as default
168
+ };