127 lines
4.3 KiB
JavaScript
127 lines
4.3 KiB
JavaScript
// Register functions for settings management
|
|
bricks.RF.register('save_general_settings', async function(params) {
|
|
try {
|
|
const formData = params.form_data || {};
|
|
|
|
const response = await fetch('/hermes-web-cli/settings/save/general/', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify(formData)
|
|
});
|
|
const result = await response.json();
|
|
|
|
if (result.success) {
|
|
bricks.showMessage('General settings saved successfully', 'success');
|
|
} else {
|
|
bricks.showMessage(result.error || 'Failed to save settings', 'error');
|
|
}
|
|
} catch (error) {
|
|
bricks.showMessage('Network error: ' + error.message, 'error');
|
|
}
|
|
});
|
|
|
|
bricks.RF.register('save_security_settings', async function(params) {
|
|
try {
|
|
const response = await fetch('/hermes-web-cli/settings/save/security/', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
'require-auth': params.require_auth,
|
|
'encrypt-storage': params.encrypt_storage
|
|
})
|
|
});
|
|
const result = await response.json();
|
|
|
|
if (result.success) {
|
|
bricks.showMessage('Security settings saved successfully', 'success');
|
|
} else {
|
|
bricks.showMessage(result.error || 'Failed to save settings', 'error');
|
|
}
|
|
} catch (error) {
|
|
bricks.showMessage('Network error: ' + error.message, 'error');
|
|
}
|
|
});
|
|
|
|
bricks.RF.register('save_appearance_settings', async function(params) {
|
|
try {
|
|
const response = await fetch('/hermes-web-cli/settings/save/appearance/', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
'theme-select': params.theme
|
|
})
|
|
});
|
|
const result = await response.json();
|
|
|
|
if (result.success) {
|
|
bricks.showMessage('Appearance settings saved successfully', 'success');
|
|
// Apply theme change
|
|
document.body.className = params.theme;
|
|
} else {
|
|
bricks.showMessage(result.error || 'Failed to save settings', 'error');
|
|
}
|
|
} catch (error) {
|
|
bricks.showMessage('Network error: ' + error.message, 'error');
|
|
}
|
|
});
|
|
|
|
// Register functions for models management
|
|
bricks.RF.register('add_model', async function(params) {
|
|
// Navigate to add model page
|
|
const mainContent = bricks.getWidgetById('app.main-content');
|
|
if (mainContent) {
|
|
mainContent.loadURL(bricks.entire_url('add_model.ui'));
|
|
}
|
|
});
|
|
|
|
bricks.RF.register('update_model', async function(params) {
|
|
try {
|
|
const response = await fetch('/hermes-web-cli/models/update/', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
'model_id': params.model_id,
|
|
'model_name': params.model_name,
|
|
'model_provider': params.model_provider
|
|
})
|
|
});
|
|
const result = await response.json();
|
|
|
|
if (result.success) {
|
|
bricks.showMessage('Model updated successfully', 'success');
|
|
// Refresh the models list if needed
|
|
} else {
|
|
bricks.showMessage(result.error || 'Failed to update model', 'error');
|
|
}
|
|
} catch (error) {
|
|
bricks.showMessage('Network error: ' + error.message, 'error');
|
|
}
|
|
});
|
|
|
|
bricks.RF.register('remove_model', async function(params) {
|
|
try {
|
|
const response = await fetch('/hermes-web-cli/models/remove/?id=' + params.model_id);
|
|
const result = await response.json();
|
|
|
|
if (result.success) {
|
|
bricks.showMessage('Model removed successfully', 'success');
|
|
// Refresh the models list
|
|
const modelsList = bricks.getWidgetById('app.models-list');
|
|
if (modelsList) {
|
|
modelsList.reload();
|
|
}
|
|
} else {
|
|
bricks.showMessage(result.error || 'Failed to remove model', 'error');
|
|
}
|
|
} catch (error) {
|
|
bricks.showMessage('Network error: ' + error.message, 'error');
|
|
}
|
|
}); |