From 7daf801c9962430bd5acad86d510b98c8d31d53e Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 22 Apr 2026 16:43:09 +0800 Subject: [PATCH] Fix JavaScript files: use correct bricks.getWidgetById API with proper ID format --- wwwroot/new-session.js | 29 ++++++++++++------------ wwwroot/services.js | 2 +- wwwroot/settings.js | 50 +++++++++++++++++++++++------------------- 3 files changed, 44 insertions(+), 37 deletions(-) diff --git a/wwwroot/new-session.js b/wwwroot/new-session.js index 78f84d4..54703fb 100644 --- a/wwwroot/new-session.js +++ b/wwwroot/new-session.js @@ -1,36 +1,37 @@ // Register function for creating new sessions bricks.RF.register('create_session', async function(params) { try { - // Get form data from the new session form - const sessionName = bricks.getWidget('session-name').value; - const modelSelect = bricks.getWidget('model-select').value; - const initialPrompt = bricks.getWidget('initial-prompt').value; + // Get form data from the new session form using correct API + const formWidget = bricks.getWidgetById('app.new-session-form'); + const formData = formWidget ? formWidget.getData() : {}; - if (!sessionName) { + if (!formData['session-name']) { bricks.showMessage('Please enter a session name', 'error'); return; } - if (!modelSelect) { + if (!formData['model-select']) { bricks.showMessage('Please select an AI model', 'error'); return; } - const formData = new FormData(); - formData.append('session-name', sessionName); - formData.append('model-select', modelSelect); - formData.append('initial-prompt', initialPrompt || ''); - const response = await fetch('/hermes-web-cli/sessions/create/', { method: 'POST', - body: formData + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + 'session-name': formData['session-name'], + 'model-select': formData['model-select'], + 'initial-prompt': formData['initial-prompt'] || '' + }) }); const result = await response.json(); if (result.success) { bricks.showMessage('Session created successfully', 'success'); // Navigate back to sessions list - const mainContent = bricks.getWidget('app.main-content'); + const mainContent = bricks.getWidgetById('app.main-content'); if (mainContent) { mainContent.loadURL(bricks.entire_url('sessions.ui')); } @@ -49,7 +50,7 @@ async function loadModelsForNewSession() { const models = await response.json(); if (Array.isArray(models)) { - const modelSelect = bricks.getWidget('model-select'); + const modelSelect = bricks.getWidgetById('app.model-select'); if (modelSelect && modelSelect.options) { // Format models as items for UiCode component const modelItems = models.map(model => ({ diff --git a/wwwroot/services.js b/wwwroot/services.js index 08eca45..ad15c80 100644 --- a/wwwroot/services.js +++ b/wwwroot/services.js @@ -6,7 +6,7 @@ bricks.RF.register('remove_service', async function(params) { if (result.success) { // Refresh the services list - const listWidget = bricks.getWidget('services-list'); + const listWidget = bricks.getWidgetById('app.services-list'); if (listWidget) { listWidget.reload(); } diff --git a/wwwroot/settings.js b/wwwroot/settings.js index f93f46e..9843bfd 100644 --- a/wwwroot/settings.js +++ b/wwwroot/settings.js @@ -1,14 +1,14 @@ // 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 formData = params.form_data || {}; const response = await fetch('/hermes-web-cli/settings/save/general/', { method: 'POST', - body: formData + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(formData) }); const result = await response.json(); @@ -24,13 +24,15 @@ bricks.RF.register('save_general_settings', async function(params) { 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 + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + 'require-auth': params.require_auth, + 'encrypt-storage': params.encrypt_storage + }) }); const result = await response.json(); @@ -46,12 +48,14 @@ bricks.RF.register('save_security_settings', async function(params) { 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 + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + 'theme-select': params.theme + }) }); const result = await response.json(); @@ -70,7 +74,7 @@ bricks.RF.register('save_appearance_settings', async function(params) { // 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'); + const mainContent = bricks.getWidgetById('app.main-content'); if (mainContent) { mainContent.loadURL(bricks.entire_url('add_model.ui')); } @@ -78,14 +82,16 @@ bricks.RF.register('add_model', async function(params) { 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 + 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(); @@ -108,7 +114,7 @@ bricks.RF.register('remove_model', async function(params) { if (result.success) { bricks.showMessage('Model removed successfully', 'success'); // Refresh the models list - const modelsList = bricks.getWidget('models-list'); + const modelsList = bricks.getWidgetById('app.models-list'); if (modelsList) { modelsList.reload(); }