Просмотр исходного кода

feat: add demo site configuration flag

- Introduce `DemoSiteEnabled` variable in operation settings
- Provide a configurable flag to enable/disable demo site functionality
1808837298@qq.com 1 год назад
Родитель
Сommit
a0fe527047

+ 1 - 0
controller/misc.go

@@ -66,6 +66,7 @@ func GetStatus(c *gin.Context) {
 			"enable_online_topup":      setting.PayAddress != "" && setting.EpayId != "" && setting.EpayKey != "",
 			"mj_notify_enabled":        setting.MjNotifyEnabled,
 			"chats":                    setting.Chats,
+			"demo_site_enabled":        setting.DemoSiteEnabled,
 		},
 	})
 	return

+ 3 - 0
model/option.go

@@ -104,6 +104,7 @@ func InitOptionMap() {
 	common.OptionMap["MjForwardUrlEnabled"] = strconv.FormatBool(setting.MjForwardUrlEnabled)
 	common.OptionMap["MjActionCheckSuccessEnabled"] = strconv.FormatBool(setting.MjActionCheckSuccessEnabled)
 	common.OptionMap["CheckSensitiveEnabled"] = strconv.FormatBool(setting.CheckSensitiveEnabled)
+	common.OptionMap["DemoSiteEnabled"] = strconv.FormatBool(setting.DemoSiteEnabled)
 	common.OptionMap["CheckSensitiveOnPromptEnabled"] = strconv.FormatBool(setting.CheckSensitiveOnPromptEnabled)
 	//common.OptionMap["CheckSensitiveOnCompletionEnabled"] = strconv.FormatBool(constant.CheckSensitiveOnCompletionEnabled)
 	common.OptionMap["StopOnSensitiveEnabled"] = strconv.FormatBool(setting.StopOnSensitiveEnabled)
@@ -220,6 +221,8 @@ func updateOptionMap(key string, value string) (err error) {
 			setting.MjActionCheckSuccessEnabled = boolValue
 		case "CheckSensitiveEnabled":
 			setting.CheckSensitiveEnabled = boolValue
+		case "DemoSiteEnabled":
+			setting.DemoSiteEnabled = boolValue
 		case "CheckSensitiveOnPromptEnabled":
 			setting.CheckSensitiveOnPromptEnabled = boolValue
 		//case "CheckSensitiveOnCompletionEnabled":

+ 3 - 0
setting/operation_setting.go

@@ -0,0 +1,3 @@
+package setting
+
+var DemoSiteEnabled = false

+ 1 - 0
web/src/components/OperationSetting.js

@@ -58,6 +58,7 @@ const OperationSetting = () => {
     DefaultCollapseSidebar: false, // 默认折叠侧边栏
     RetryTimes: 0,
     Chats: "[]",
+    DemoSiteEnabled: false,
   });
 
   let [loading, setLoading] = useState(false);

+ 18 - 0
web/src/pages/Setting/Operation/SettingsGeneral.js

@@ -21,6 +21,7 @@ export default function GeneralSettings(props) {
     DisplayInCurrencyEnabled: false,
     DisplayTokenStatEnabled: false,
     DefaultCollapseSidebar: false,
+    DemoSiteEnabled: false,
   });
   const refForm = useRef();
   const [inputsRow, setInputsRow] = useState(inputs);
@@ -188,6 +189,23 @@ export default function GeneralSettings(props) {
                 />
               </Col>
             </Row>
+            <Row>
+              <Col span={8}>
+                <Form.Switch
+                  field={'DemoSiteEnabled'}
+                  label={t('演示站点模式')}
+                  size='default'
+                  checkedText='|'
+                  uncheckedText='〇'
+                  onChange={(value) =>
+                    setInputs({
+                      ...inputs,
+                      DemoSiteEnabled: value
+                    })
+                  }
+                />
+              </Col>
+            </Row>
             <Row>
               <Button size='default' onClick={onSubmit}>
                 {t('保存通用设置')}