From 9cf22998d2b54ea1d1bf726c945fb89c8714ad28 Mon Sep 17 00:00:00 2001 From: Daniel Ceregatti Date: Fri, 9 Aug 2024 10:56:41 -0700 Subject: [PATCH] Add support for experimental. Add streaming text modal for steamcmd operations that run over time with output that will do the same. So far this is just as a test, but it works. Refactor the store to use actions to set variables that are required to be boolean. Continue staging test components so when it comes time to do things for real, they'll be ready. Working backwards, always. Implement Steam login. Needs polish. Figure out styles. Our index.css is still being loaded before the theme, and its overrides only take effect when those don't set anything in the theme beforehand. Still not working. Consolidate the config between Vue and express. Monitor config changes in nodemon. Everything is WIP. --- docker-compose.yml | 9 +- web/docroot/src/components/Error.vue | 27 +++- web/docroot/src/components/Files.vue | 24 ++- web/docroot/src/components/Header.vue | 13 ++ web/docroot/src/components/Home.vue | 2 +- web/docroot/src/components/Modinfo.vue | 3 +- web/docroot/src/components/Status.vue | 114 +++++++++++--- web/docroot/src/components/Steam.vue | 91 ++++++++---- web/docroot/src/components/XmlFile.vue | 3 +- web/docroot/src/config.js | 34 ++++- web/docroot/src/css/index.css | 5 - web/docroot/src/locales/en.js | 15 +- web/docroot/src/locales/pt.js | 21 ++- web/docroot/src/store.js | 58 +++++++- web/index.js | 198 +++++++++++++------------ web/package.json | 2 +- web/vite.config.js | 2 +- 17 files changed, 449 insertions(+), 172 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a902d44..925eef1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,15 @@ volumes: # Only in the web container. # For steamcmd files and resource files used by the scripts. - homedir_main: + homedir: # Shared by all containers. # Mods. mods: - # Server files + # Server files for release serverfiles: + # Server files for experimental + serverfiles_experimental: # Upstream mission files mpmissions: @@ -21,8 +23,9 @@ services: user: ${USER_ID} hostname: dayzdockerserver volumes: - - homedir_main:/home/user + - homedir:/home/user - serverfiles:/serverfiles + - serverfiles_experimental:/serverfiles_experimental - mpmissions:/serverfiles/mpmissions - mods:/serverfiles/steamapps/workshop/content - mods:/mods diff --git a/web/docroot/src/components/Error.vue b/web/docroot/src/components/Error.vue index 9bce847..61e0e58 100644 --- a/web/docroot/src/components/Error.vue +++ b/web/docroot/src/components/Error.vue @@ -5,7 +5,32 @@ const store = useAppStore() + + diff --git a/web/docroot/src/components/Files.vue b/web/docroot/src/components/Files.vue index bfca58c..33d50f4 100644 --- a/web/docroot/src/components/Files.vue +++ b/web/docroot/src/components/Files.vue @@ -3,17 +3,33 @@ import Button from 'primevue/button' import { useFetch } from '@vueuse/core' import { useAppStore } from '@/store.js' const store = useAppStore() +import { useI18n } from 'vue-i18n' +const { t } = useI18n() async function base() { let which = '/installbase' - if (store.steamStatus.installed) { + if (store.steamStatus.stableInstalled) { which = '/updatebase' } const { data } = await useFetch(which).get().json() - store.errorText = data.value.message + store.setAlert(t(data.value.message)) } diff --git a/web/docroot/src/components/Header.vue b/web/docroot/src/components/Header.vue index 483c036..d92e63a 100644 --- a/web/docroot/src/components/Header.vue +++ b/web/docroot/src/components/Header.vue @@ -48,3 +48,16 @@ import Status from '@/components/Status.vue' + + \ No newline at end of file diff --git a/web/docroot/src/components/Home.vue b/web/docroot/src/components/Home.vue index 5e1c03f..1d38b56 100644 --- a/web/docroot/src/components/Home.vue +++ b/web/docroot/src/components/Home.vue @@ -2,7 +2,7 @@ \ No newline at end of file diff --git a/web/docroot/src/components/Modinfo.vue b/web/docroot/src/components/Modinfo.vue index 4a4c0a3..0ccf1a6 100644 --- a/web/docroot/src/components/Modinfo.vue +++ b/web/docroot/src/components/Modinfo.vue @@ -3,8 +3,7 @@ import { useFetch } from "@vueuse/core" import XmlFile from '@/components/XmlFile.vue' import { useAppStore } from '@/store.js' const store = useAppStore() -import { config } from '@/config' -const { data, error } = useFetch(() => config.baseUrl + `/mod/${store.modId}`, { +const { data, error } = useFetch(() => `/mod/${store.modId}`, { immediate: false, refetch: true }).get().json() diff --git a/web/docroot/src/components/Status.vue b/web/docroot/src/components/Status.vue index f6f16b0..5de9d4b 100644 --- a/web/docroot/src/components/Status.vue +++ b/web/docroot/src/components/Status.vue @@ -1,27 +1,107 @@ diff --git a/web/docroot/src/components/Steam.vue b/web/docroot/src/components/Steam.vue index 98dcef3..bffea9a 100644 --- a/web/docroot/src/components/Steam.vue +++ b/web/docroot/src/components/Steam.vue @@ -1,4 +1,5 @@