From e0366f949ff7783bcef6edcb694e448f53cfacde Mon Sep 17 00:00:00 2001 From: Jacky Date: Wed, 8 May 2024 15:32:45 +0800 Subject: [PATCH] feat: reload cluster node settings from settings file #169 --- api/cluster/environment.go | 18 ++++++++++++ api/cluster/router.go | 1 + app/src/App.vue | 3 ++ app/src/api/environment.ts | 14 +++++++++- app/src/api/translations.ts | 19 +++++++++++++ .../components/SetLanguage/SetLanguage.vue | 28 ++++++++----------- app/src/views/environment/Environment.vue | 18 ++++++++++-- app/src/views/other/Error.vue | 2 -- internal/{kernal => cluster}/cluster.go | 4 +-- internal/{kernal => cluster}/cluster_test.go | 2 +- internal/kernal/boot.go | 3 +- settings/cluster.go | 10 +++++++ settings/settings.go | 22 +++++++++------ 13 files changed, 110 insertions(+), 34 deletions(-) create mode 100644 app/src/api/translations.ts rename internal/{kernal => cluster}/cluster.go (96%) rename internal/{kernal => cluster}/cluster_test.go (98%) diff --git a/api/cluster/environment.go b/api/cluster/environment.go index a471cad8..703c9ff4 100644 --- a/api/cluster/environment.go +++ b/api/cluster/environment.go @@ -3,9 +3,11 @@ package cluster import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/analytic" + "github.com/0xJacky/Nginx-UI/internal/cluster" "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" + "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" "github.com/spf13/cast" "net/http" @@ -75,3 +77,19 @@ func DeleteEnvironment(c *gin.Context) { c.JSON(http.StatusNoContent, nil) } + +func LoadEnvironmentFromSettings(c *gin.Context) { + err := settings.ReloadCluster() + if err != nil { + api.ErrHandler(c, err) + return + } + + cluster.RegisterPredefinedNodes() + + go analytic.RestartRetrieveNodesStatus() + + c.JSON(http.StatusOK, gin.H{ + "message": "ok", + }) +} diff --git a/api/cluster/router.go b/api/cluster/router.go index b9ec1067..8c61c79c 100644 --- a/api/cluster/router.go +++ b/api/cluster/router.go @@ -5,6 +5,7 @@ import "github.com/gin-gonic/gin" func InitRouter(r *gin.RouterGroup) { // Environment r.GET("environments", GetEnvironmentList) + r.POST("environments/load_from_settings", LoadEnvironmentFromSettings) envGroup := r.Group("environment") { envGroup.GET("/:id", GetEnvironment) diff --git a/app/src/App.vue b/app/src/App.vue index 19b31e09..06b1a5b2 100644 --- a/app/src/App.vue +++ b/app/src/App.vue @@ -10,6 +10,7 @@ import en_US from 'ant-design-vue/es/locale/en_US' import { useSettingsStore } from '@/pinia' import gettext from '@/gettext' +import loadTranslations from '@/api/translations' const media = window.matchMedia('(prefers-color-scheme: dark)') @@ -49,6 +50,8 @@ const lang = computed(() => { const settings = useSettingsStore() const is_theme_dark = computed(() => settings.theme === 'dark') + +loadTranslations()