Browse Source

fix: settings were not saved to file

0xJacky 1 year ago
parent
commit
477bec07d8

+ 1 - 1
frontend/src/version.json

@@ -1 +1 @@
-{"version":"2.0.0-beta.3","build_id":11,"total_build":215}
+{"version":"2.0.0-beta.3","build_id":12,"total_build":216}

+ 2 - 2
frontend/src/views/preference/NginxLogSettings.vue → frontend/src/views/preference/NginxSettings.vue

@@ -11,10 +11,10 @@ const data: IData = inject('data')!
 <template>
     <a-form layout="vertical">
         <a-form-item :label="$gettext('Nginx Access Log Path')">
-            <a-input v-model:value="data.nginx_log.access_log_path"/>
+            <a-input v-model:value="data.nginx.access_log_path"/>
         </a-form-item>
         <a-form-item :label="$gettext('Nginx Error Log Path')">
-            <a-input v-model:value="data.nginx_log.error_log_path"/>
+            <a-input v-model:value="data.nginx.error_log_path"/>
         </a-form-item>
     </a-form>
 </template>

+ 32 - 10
frontend/src/views/preference/Preference.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import {useGettext} from 'vue3-gettext'
-import {provide, ref} from 'vue'
+import {onMounted, provide, ref, watch} from 'vue'
 import FooterToolBar from '@/components/FooterToolbar/FooterToolBar.vue'
 import {useSettingsStore} from '@/pinia'
 import {dark_mode} from '@/lib/theme'
@@ -8,8 +8,9 @@ import settings from '@/api/settings'
 import {message} from 'ant-design-vue'
 import BasicSettings from '@/views/preference/BasicSettings.vue'
 import OpenAISettings from '@/views/preference/OpenAISettings.vue'
-import NginxLogSettings from '@/views/preference/NginxLogSettings.vue'
+import NginxSettings from '@/views/preference/NginxSettings.vue'
 import {IData} from '@/views/preference/typedef'
+import {useRoute, useRouter} from 'vue-router'
 
 const {$gettext} = useGettext()
 
@@ -24,11 +25,16 @@ const data = ref<IData>({
         email: '',
         http_challenge_port: '9180',
         github_proxy: '',
-        ca_dir: ''
+        ca_dir: '',
+        node_secret: ''
     },
-    nginx_log: {
+    nginx: {
         access_log_path: '',
-        error_log_path: ''
+        error_log_path: '',
+        config_dir: '',
+        pid_path: '',
+        reload_cmd: '',
+        restart_cmd: ''
     },
     openai: {
         model: '',
@@ -66,20 +72,36 @@ async function save() {
 provide('data', data)
 provide('theme', theme)
 
-const activeKey = ref('1')
+const router = useRouter()
+const route = useRoute()
+const activeKey = ref('basic')
+
+watch(activeKey, () => {
+    router.push({
+        query: {
+            tab: activeKey.value
+        }
+    })
+})
+
+onMounted(() => {
+    if (route.query?.tab) {
+        activeKey.value = route.query.tab.toString()
+    }
+})
 </script>
 
 <template>
     <a-card :title="$gettext('Preference')">
         <div class="preference-container">
             <a-tabs v-model:activeKey="activeKey">
-                <a-tab-pane :tab="$gettext('Basic')" key="1">
+                <a-tab-pane :tab="$gettext('Basic')" key="basic">
                     <basic-settings/>
                 </a-tab-pane>
-                <a-tab-pane :tab="$gettext('Nginx Log')" key="2">
-                    <nginx-log-settings/>
+                <a-tab-pane :tab="$gettext('Nginx')" key="nginx">
+                    <nginx-settings/>
                 </a-tab-pane>
-                <a-tab-pane :tab="$gettext('OpenAI')" key="3">
+                <a-tab-pane :tab="$gettext('OpenAI')" key="openai">
                     <open-a-i-settings/>
                 </a-tab-pane>
             </a-tabs>

+ 5 - 1
frontend/src/views/preference/typedef.ts

@@ -10,9 +10,13 @@ export interface IData {
         email: string,
         ca_dir: string
     },
-    nginx_log: {
+    nginx: {
         access_log_path: string
         error_log_path: string
+        config_dir: string
+        pid_path: string
+        reload_cmd: string
+        restart_cmd: string
     },
     openai: {
         model: string

+ 1 - 1
frontend/version.json

@@ -1 +1 @@
-{"version":"2.0.0-beta.3","build_id":11,"total_build":215}
+{"version":"2.0.0-beta.3","build_id":12,"total_build":216}

+ 3 - 4
server/api/settings.go

@@ -11,7 +11,6 @@ func GetSettings(c *gin.Context) {
 		"server": settings.ServerSettings,
 		"nginx":  settings.NginxSettings,
 		"openai": settings.OpenAISettings,
-		"git":    settings.GitSettings,
 	})
 }
 
@@ -26,9 +25,9 @@ func SaveSettings(c *gin.Context) {
 		return
 	}
 
-	settings.ServerSettings = &json.Server
-	settings.NginxSettings = &json.Nginx
-	settings.OpenAISettings = &json.Openai
+	settings.ServerSettings = json.Server
+	settings.NginxSettings = json.Nginx
+	settings.OpenAISettings = json.Openai
 
 	settings.ReflectFrom()
 

+ 9 - 19
server/settings/settings.go

@@ -33,8 +33,8 @@ type Server struct {
 type Nginx struct {
 	AccessLogPath string `json:"access_log_path"`
 	ErrorLogPath  string `json:"error_log_path"`
-	ConfigDir     string `json:"nginx_config_dir"`
-	PIDPath       string `json:"nginx_pid_path"`
+	ConfigDir     string `json:"config_dir"`
+	PIDPath       string `json:"pid_path"`
 	ReloadCmd     string `json:"reload_cmd"`
 	RestartCmd    string `json:"restart_cmd"`
 }
@@ -46,15 +46,7 @@ type OpenAI struct {
 	Model   string `json:"model"`
 }
 
-type Git struct {
-	Url                string `json:"url"`
-	AuthMethod         string `json:"auth_method"`
-	Username           string `json:"username"`
-	Password           string `json:"password"`
-	PrivateKeyFilePath string `json:"private_key_file_path"`
-}
-
-var ServerSettings = &Server{
+var ServerSettings = Server{
 	HttpPort:          "9000",
 	RunMode:           "debug",
 	HTTPChallengePort: "9180",
@@ -66,22 +58,19 @@ var ServerSettings = &Server{
 	GithubProxy:       "",
 }
 
-var NginxSettings = &Nginx{
+var NginxSettings = Nginx{
 	AccessLogPath: "",
 	ErrorLogPath:  "",
 }
 
-var OpenAISettings = &OpenAI{}
-
-var GitSettings = &Git{}
+var OpenAISettings = OpenAI{}
 
 var ConfPath string
 
 var sections = map[string]interface{}{
-	"server": ServerSettings,
-	"nginx":  NginxSettings,
-	"openai": OpenAISettings,
-	"git":    GitSettings,
+	"server": &ServerSettings,
+	"nginx":  &NginxSettings,
+	"openai": &OpenAISettings,
 }
 
 func init() {
@@ -123,6 +112,7 @@ func mapTo(section string, v interface{}) {
 }
 
 func reflectFrom(section string, v interface{}) {
+	log.Print(section, v)
 	err := Conf.Section(section).ReflectFrom(v)
 	if err != nil {
 		log.Fatalf("Cfg.ReflectFrom %s err: %v", section, err)