fix: correct settings.ui to use get_setting() function instead of get_url

This commit is contained in:
yumoqing 2026-04-22 21:55:19 +08:00
parent 5e3067a92a
commit 607718ac21
5 changed files with 78 additions and 20 deletions

View File

@ -255,6 +255,72 @@ def generate_session_id() -> str:
"""Generate a unique session ID.""" """Generate a unique session ID."""
return str(uuid.uuid4()) return str(uuid.uuid4())
# Settings management
def get_setting() -> Dict:
"""Get current user settings from config file or return defaults."""
import json
from pathlib import Path
config_path = Path.home() / ".hermes" / "hermes-web-cli-config.json"
default_settings = {
"security": {
"require_auth": False,
"encrypt_storage": False
},
"general": {
"default_model": "",
"session_timeout": 30,
"auto_save": True
},
"appearance": {
"theme": "dark"
}
}
if config_path.exists():
try:
with open(config_path, 'r') as f:
saved_settings = json.load(f)
# Merge with defaults to ensure all keys exist
for section, defaults in default_settings.items():
if section not in saved_settings:
saved_settings[section] = defaults
else:
for key, value in defaults.items():
if key not in saved_settings[section]:
saved_settings[section][key] = value
return saved_settings
except (json.JSONDecodeError, IOError):
pass
return default_settings
def save_setting(section: str, key: str, value) -> bool:
"""Save a specific setting value to config file."""
import json
from pathlib import Path
config_path = Path.home() / ".hermes" / "hermes-web-cli-config.json"
# Ensure directory exists
config_path.parent.mkdir(parents=True, exist_ok=True)
# Load existing settings or start with defaults
settings = get_setting()
# Update the specific setting
if section not in settings:
settings[section] = {}
settings[section][key] = value
try:
with open(config_path, 'w') as f:
json.dump(settings, f, indent=2)
return True
except (IOError, TypeError):
return False
# Module metadata # Module metadata
MODULE_NAME = "hermes-web-cli" MODULE_NAME = "hermes-web-cli"
MODULE_VERSION = "0.1.0" MODULE_VERSION = "0.1.0"
@ -275,6 +341,8 @@ __all__ = [
'get_session_by_id', 'get_session_by_id',
'validate_service_url', 'validate_service_url',
'generate_session_id', 'generate_session_id',
'get_setting',
'save_setting',
'MODULE_NAME', 'MODULE_NAME',
'MODULE_VERSION' 'MODULE_VERSION'
] ]

View File

@ -16,7 +16,7 @@
"marginBottom": "20px" "marginBottom": "20px"
} }
}, },
{% set settings_data = get_url('/hermes-web-cli/settings/') %} {% set settings_data = get_setting() %}
{ {
"widgettype": "TabPanel", "widgettype": "TabPanel",
"id": "settings-tabs", "id": "settings-tabs",

View File

@ -2,14 +2,11 @@
# This .dspy file uses functions provided by load_hermes_web_cli() # This .dspy file uses functions provided by load_hermes_web_cli()
try: try:
theme = request.form.get('theme-select', 'dark') theme = request.form.get('theme', 'dark')
settings = { # Save settings using the module function
'theme': theme save_setting('appearance', 'theme', theme)
}
# This would call a function from the hermes-web-cli module
# For now, we'll simulate success
return {"success": True, "message": "Appearance settings saved successfully"} return {"success": True, "message": "Appearance settings saved successfully"}
except Exception as e: except Exception as e:

View File

@ -12,14 +12,10 @@ try:
session_timeout = 30 session_timeout = 30
# Save settings using the module function # Save settings using the module function
settings = { save_setting('general', 'default_model', default_model)
'default_model': default_model, save_setting('general', 'session_timeout', session_timeout)
'session_timeout': session_timeout, save_setting('general', 'auto_save', auto_save)
'auto_save': auto_save
}
# This would call a function from the hermes-web-cli module
# For now, we'll simulate success
return {"success": True, "message": "General settings saved successfully"} return {"success": True, "message": "General settings saved successfully"}
except Exception as e: except Exception as e:

View File

@ -5,13 +5,10 @@ try:
require_auth = request.form.get('require-auth', 'false') == 'true' require_auth = request.form.get('require-auth', 'false') == 'true'
encrypt_storage = request.form.get('encrypt-storage', 'false') == 'true' encrypt_storage = request.form.get('encrypt-storage', 'false') == 'true'
settings = { # Save settings using the module function
'require_auth': require_auth, save_setting('security', 'require_auth', require_auth)
'encrypt_storage': encrypt_storage save_setting('security', 'encrypt_storage', encrypt_storage)
}
# This would call a function from the hermes-web-cli module
# For now, we'll simulate success
return {"success": True, "message": "Security settings saved successfully"} return {"success": True, "message": "Security settings saved successfully"}
except Exception as e: except Exception as e: