fix: correct settings.ui to use get_setting() function instead of get_url
This commit is contained in:
parent
5e3067a92a
commit
607718ac21
@ -255,6 +255,72 @@ def generate_session_id() -> str:
|
||||
"""Generate a unique session ID."""
|
||||
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_NAME = "hermes-web-cli"
|
||||
MODULE_VERSION = "0.1.0"
|
||||
@ -275,6 +341,8 @@ __all__ = [
|
||||
'get_session_by_id',
|
||||
'validate_service_url',
|
||||
'generate_session_id',
|
||||
'get_setting',
|
||||
'save_setting',
|
||||
'MODULE_NAME',
|
||||
'MODULE_VERSION'
|
||||
]
|
||||
@ -16,7 +16,7 @@
|
||||
"marginBottom": "20px"
|
||||
}
|
||||
},
|
||||
{% set settings_data = get_url('/hermes-web-cli/settings/') %}
|
||||
{% set settings_data = get_setting() %}
|
||||
{
|
||||
"widgettype": "TabPanel",
|
||||
"id": "settings-tabs",
|
||||
|
||||
@ -2,14 +2,11 @@
|
||||
# This .dspy file uses functions provided by load_hermes_web_cli()
|
||||
|
||||
try:
|
||||
theme = request.form.get('theme-select', 'dark')
|
||||
theme = request.form.get('theme', 'dark')
|
||||
|
||||
settings = {
|
||||
'theme': theme
|
||||
}
|
||||
# Save settings using the module function
|
||||
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"}
|
||||
|
||||
except Exception as e:
|
||||
|
||||
@ -12,14 +12,10 @@ try:
|
||||
session_timeout = 30
|
||||
|
||||
# Save settings using the module function
|
||||
settings = {
|
||||
'default_model': default_model,
|
||||
'session_timeout': session_timeout,
|
||||
'auto_save': auto_save
|
||||
}
|
||||
save_setting('general', 'default_model', default_model)
|
||||
save_setting('general', 'session_timeout', session_timeout)
|
||||
save_setting('general', '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"}
|
||||
|
||||
except Exception as e:
|
||||
|
||||
@ -5,13 +5,10 @@ try:
|
||||
require_auth = request.form.get('require-auth', 'false') == 'true'
|
||||
encrypt_storage = request.form.get('encrypt-storage', 'false') == 'true'
|
||||
|
||||
settings = {
|
||||
'require_auth': require_auth,
|
||||
'encrypt_storage': encrypt_storage
|
||||
}
|
||||
# Save settings using the module function
|
||||
save_setting('security', 'require_auth', require_auth)
|
||||
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"}
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user