diff --git a/wwwroot/settings.js b/wwwroot/settings.js index 5242ff3..f93f46e 100644 --- a/wwwroot/settings.js +++ b/wwwroot/settings.js @@ -1,121 +1,121 @@ - 1|// Register functions for settings management - 2|bricks.RF.register('save_general_settings', async function(params) { - 3| try { - 4| const formData = new FormData(); - 5| formData.append('default-model', params.default_model); - 6| formData.append('session-timeout', params.session_timeout); - 7| formData.append('auto-save', params.auto_save); - 8| - 9| const response = await fetch('/hermes-web-cli/settings/save/general/', { - 10| method: 'POST', - 11| body: formData - 12| }); - 13| const result = await response.json(); - 14| - 15| if (result.success) { - 16| bricks.showMessage('General settings saved successfully', 'success'); - 17| } else { - 18| bricks.showMessage(result.error || 'Failed to save settings', 'error'); - 19| } - 20| } catch (error) { - 21| bricks.showMessage('Network error: ' + error.message, 'error'); - 22| } - 23|}); - 24| - 25|bricks.RF.register('save_security_settings', async function(params) { - 26| try { - 27| const formData = new FormData(); - 28| formData.append('require-auth', params.require_auth); - 29| formData.append('encrypt-storage', params.encrypt_storage); - 30| - 31| const response = await fetch('/hermes-web-cli/settings/save/security/', { - 32| method: 'POST', - 33| body: formData - 34| }); - 35| const result = await response.json(); - 36| - 37| if (result.success) { - 38| bricks.showMessage('Security settings saved successfully', 'success'); - 39| } else { - 40| bricks.showMessage(result.error || 'Failed to save settings', 'error'); - 41| } - 42| } catch (error) { - 43| bricks.showMessage('Network error: ' + error.message, 'error'); - 44| } - 45|}); - 46| - 47|bricks.RF.register('save_appearance_settings', async function(params) { - 48| try { - 49| const formData = new FormData(); - 50| formData.append('theme-select', params.theme); - 51| - 52| const response = await fetch('/hermes-web-cli/settings/save/appearance/', { - 53| method: 'POST', - 54| body: formData - 55| }); - 56| const result = await response.json(); - 57| - 58| if (result.success) { - 59| bricks.showMessage('Appearance settings saved successfully', 'success'); - 60| // Apply theme change - 61| document.body.className = params.theme; - 62| } else { - 63| bricks.showMessage(result.error || 'Failed to save settings', 'error'); - 64| } - 65| } catch (error) { - 66| bricks.showMessage('Network error: ' + error.message, 'error'); - 67| } - 68|}); - 69| - 70|// Register functions for models management - 71|bricks.RF.register('add_model', async function(params) { - 72| // Navigate to add model page - 73| const mainContent = bricks.getWidget('app.main-content'); - 74| if (mainContent) { - 75| mainContent.loadURL(bricks.entire_url('add_model.ui')); - 76| } - 77|}); - 78| - 79|bricks.RF.register('update_model', async function(params) { - 80| try { - 81| const formData = new FormData(); - 82| formData.append('model_id', params.model_id); - 83| formData.append('model_name', params.model_name); - 84| formData.append('model_provider', params.model_provider); - 85| - 86| const response = await fetch('/hermes-web-cli/models/update/', { - 87| method: 'POST', - 88| body: formData - 89| }); - 90| const result = await response.json(); - 91| - 92| if (result.success) { - 93| bricks.showMessage('Model updated successfully', 'success'); - 94| // Refresh the models list if needed - 95| } else { - 96| bricks.showMessage(result.error || 'Failed to update model', 'error'); - 97| } - 98| } catch (error) { - 99| bricks.showMessage('Network error: ' + error.message, 'error'); - 100| } - 101|}); - 102| - 103|bricks.RF.register('remove_model', async function(params) { - 104| try { - 105| const response = await fetch('/hermes-web-cli/models/remove/?id=' + params.model_id); - 106| const result = await response.json(); - 107| - 108| if (result.success) { - 109| bricks.showMessage('Model removed successfully', 'success'); - 110| // Refresh the models list - 111| const modelsList = bricks.getWidget('models-list'); - 112| if (modelsList) { - 113| modelsList.reload(); - 114| } - 115| } else { - 116| bricks.showMessage(result.error || 'Failed to remove model', 'error'); - 117| } - 118| } catch (error) { - 119| bricks.showMessage('Network error: ' + error.message, 'error'); - 120| } - 121|}); \ No newline at end of file +// Register functions for settings management +bricks.RF.register('save_general_settings', async function(params) { + try { + const formData = new FormData(); + formData.append('default-model', params.default_model); + formData.append('session-timeout', params.session_timeout); + formData.append('auto-save', params.auto_save); + + const response = await fetch('/hermes-web-cli/settings/save/general/', { + method: 'POST', + body: 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 formData = new FormData(); + formData.append('require-auth', params.require_auth); + formData.append('encrypt-storage', params.encrypt_storage); + + const response = await fetch('/hermes-web-cli/settings/save/security/', { + method: 'POST', + body: formData + }); + 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 formData = new FormData(); + formData.append('theme-select', params.theme); + + const response = await fetch('/hermes-web-cli/settings/save/appearance/', { + method: 'POST', + body: formData + }); + 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.getWidget('app.main-content'); + if (mainContent) { + mainContent.loadURL(bricks.entire_url('add_model.ui')); + } +}); + +bricks.RF.register('update_model', async function(params) { + try { + const formData = new FormData(); + formData.append('model_id', params.model_id); + formData.append('model_name', params.model_name); + formData.append('model_provider', params.model_provider); + + const response = await fetch('/hermes-web-cli/models/update/', { + method: 'POST', + body: formData + }); + 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.getWidget('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'); + } +}); \ No newline at end of file