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."""
|
"""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'
|
||||||
]
|
]
|
||||||
@ -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",
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user